版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

目录

需求来源

本次修改是对原有功能的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

...