一直比较懒,没有为开源事业做出过什么贡献,最近痛定思痛,写了一个开源软件,解决网络通信问题,附上github地址,供大家共同交流。 https://github.com/wsrf16/anchor
本软件针对跨区、跨网段等网络不通场景,或需要批量网络代理场景而开发,可实现:
- 基于http协议的转发(正、反向代理)
- 基于tcp协议的转发(正、反向代理)
- 基于udp协议的转发(反向代理)
- 基于socks5协议的代理
- 基于ssh协议的转发以及建立隧道,可用于通过ssh协议中转的方式搭建ssh代理机或http代理机
- 搭建http服务器,以http接口形式调用服务端shell脚本,或以服务器为中转机,访问远端ssh服务器
- 以伪终端的形式,访问远程ssh服务器,类似putty、xshell等工具
3.1 命令行模式
适用于单一端口转发,启动方式简单,无需额外配置,可以通过无参数方式执行,查看帮助:
3.1.1 http转发
该类转发在应用层实现,仅适用于http协议,因为https需要证书。
·正向代理
·反向代理
3.1.2 tcp转发
该类转发在会话层实现,支持http、https、ssh等大部分基于tcp的协议。
·正向代理
·反向代理
3.1.3 udp转发
该类转发在会话层实现,支持udp协议。
·反向代理
3.1.4 socks代理
该类转发在会话层实现,支持http、https、ssh等大部分基于tcp的协议。
·正向代理
3.1.5 建立ssh隧道
3.1.6 搭建http服务器,以http形式执行shell或访问远程ssh
本模式由于参数较多,仅支持配置文件方式启动。
3.1.7 访问远程ssh服务器
3.2 配置文件模式
以配置文件方式启动,一次启动同时支持多种转发方式,listen为本地监听地址(必填),forward为转发目标地址(非必填)。
$ cat config.yaml
3.3 搭建http服务器
这里详细说一下搭建http服务器,以下配置内容说明:监听本地8080端口,客户端可访问本地8080端口执行shell命令,或通过该服务器访问其他ssh服务器执行shell命令。
除支持linux平台外,同时也支持windows平台的dos命令
3.3.1 第一步:搭建http服务器
3.3.2 远程调用ssh
经过以上配置后,可以通过调用以下http接口,ssh连接到id为“mecs.com:22”的机器上执行命令
$ curl -XPOST “http://localhost:8089/ssh” -H “Content-Type: applicaton/json” -d “{“commands”:[“whoami”, “aaaa”, “curl”],“serverId”:“mecs.com:22”}” 返回以下类似内容:
3.3.3 调用shell
也可在服务器本地执行shell命令,使用方法与ssh类似,此时无需指定serverId
$ curl -XPOST “http://localhost:8089/shell” -H “Content-Type: applicaton/json” -d “{“commands”:[“whoami”, “aaaa”, “curl”]}”