Mr.2 是什么
可以帮助你将内网服务器暴露在外网. 支持 TCP/UDP 协议, 当然也支持 HTTP 协议.
https://github.com/txthinking/mr2 服务端
mr2 server -l :9999 -p password
本地监听9999端口,客户端连接密码为password
客户端
mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:1234
将本地的1234端口暴露,转换为外网的5678。
mr2 client -s server_address:port -p password -P 5678 –clientDiretory /path/to/www
将本地目录 /path/to/www, 以 HTTP 协议暴露在外网: server_address:5678
示例
SSH 登录到内网机器
mr2 client -s server_address:port -p password -P 5678 -c 127.0.0.1:22
然后 ssh -oPort=5678 user@
server_address 即可
它自带的脚本可以编辑为各个平台的可执行程序,比如arm6,mips等。
我的应用是:
服务器上开启mr2服务,Nginx服务
在Nginx上设置域名对应的本地端口,例如 sc.scwy.net对应127.0.0.1:9988
本地启动客户端,将本地端口映射为服务器上的端口,例如9988。则可以实现通过域名访问本地服务。
得益于golang的多平台,它可以运行在我的Pi上,让它来承担我的客户端。比如买一个每年不到百元的云服务器,将域名映射好,加上Pi上的服务,就可以完成许多东西了。为此,家里还买了一台UPS,支持基本的网络可以有几个小时。现在停电还是少了。
2020.8.19
在树莓派的使用中,发现 dial tcp x.x.x.x:xx: i/o timeout,然后对应端口的系统就连接不上了。
不知道是mr2本身问题,还是使用环境导致的。暂时没想到解决的办法,每次都需要手动中断再运行。