由于实验室服务器没有公网IP,如果在校外网的话只能通过teamviewer远程桌面连接,然而teamviewer的数据传输是基于图像的,反应太慢了,所以一直在寻找ssh版的teamviewer,经过谷歌,发现只需要一台公网服务器作为中转站,就可以实现在任何地方登录处于内网的实验室服务器,前提是实验室服务器要能正常连接外网。
SSH反向代理
假设有两台服务器A和B:A处于内网无公网IP,B是一个云主机如阿里云有公网IP,现在手头上有一台处于校外网的电脑C,想用ssh登录服务器A完成一些骚操作,怎么弄呢?很简单,原理是让B建立对A的临时ssh反向代理通道,然后用C登录B就可以直接ssh进入A了。
-
首先在A上操作,使用以下语句向B发起反向代理请求(最好root执行),这里会要求输入B对应用户的密码,执行成功后,会在B的7280端口映射向A的ssh请求(端口22),通过
netstat -tnlp
和ps aux | grep ssh
检查A上这条语句执行是否成功ssh -fCNR 7280:localhost:22 aliyun_user@aliyun_IP
具体解释:
ssh -fCNR [B机器IP或省略]:[B机器端口]:[A机器的IP]:[A机器端口] [登陆B机器的用户名@服务器IP]
-
然后登录B,若上面语句执行成功的话,我们用
netstat -tnlp
能检查到反向代理在端口7280的进程: