目录 |
---|
需求来源
本次修改是对原有功能的Shell命令及NetDispatch的替换,原功能存在较多问题
Shell命令
- 操作不方便
...
- 不支持交互式命令
...
- 能利用漏洞进入服务器后台,
...
- 获取root权限等
NetDispatch
- 连接丢失
...
- 服务端程序崩溃退出等
...
功能演示
本地设备的webssh功能如果从本地web访问
如果从本地网口的web访问,
...
会跳转到局域网的ip
如果从远端omc访问,会跳转到omc的ip
如果从本地wifi的web访问,会跳转到wifi的ip
远端omc效果可以看到,
...
从公网访问到了局域网设备(192.168.1.198),并且通过局域网访问了192.168.1.27(编译服务器)
在公网上写文件时,从本地终端也实时刷新了数据
实现方法
后端
设备端GatewayServer需增加jsoncmd的解析命令
代码块 |
---|
int CWebSSH::Handle(HTTPServerRequest &request, CJSRPCResponseMaker &response, Poco::URI &uri) { response.BeginResult(); response.BeginObj(NULL); response.AddMemberString("url", " http://192.168.1.198:8080"); // demo,具体实现较复杂,参看实际代码 response.EndObj(); response.EndResult(); return 0; } const char *CWebSSH::GetName() { return "webssh"; } |
...
前端
...
本地webssh已经修改成功,需要新增omc上的远程webssh功能
FRPS部署
x86
使用docker部署frps服务端
使用docker部署frpc客户端(x86)部署frp功能
代码块 |
---|
# 服务端 docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps # 客户端 docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc |
...
查看服务端控制面板,客户端已经注册成功,并且已经将ssh端口映射到公网使用
客户端可以直接在控制台修改需要映射的端口
...
终端设备
终端设备一般为arm或者arm64的平台,整套流程终端设备需要使用到的两个软件为frpc和ttyd
...