学院的服务器在学院的内网,出了学院就不能访问,在宿舍、家里学习很不方便没有服务器的话。之前一直用TeamViewer,但是用着不舒服。最近新找到一个办法,就是利用外网服务器以及反向SSH搭一条通道,使得可以利用外网的服务器登录内网的服务器。简单理解,既然外网无法找到内网的服务器的IP,那就内网服务器自己寻找外网的服务器,主动搭建SSH通道,这样外网就可以通过这条通道连接到内网了。
两台服务器配置
| IP | 登录用户名 | |
| 内网服务器 | 192.168.1.107 | tao |
| 外网服务器 | 1.1.1.1.1 | root |
外网服务器我用的是阿里云的学生服务器。
在内网服务器上执行操作
ssh -NfR 1234:localhost:22 root@1.1.1.1 -p 22
其中,这条命令的意思是在后台执行(-f),不实际连接而是做port forwarding(-N),做反向ssh(-R),将远程服务器的1234端口映射成连接本机与该服务器的反向ssh的端口。root为外网服务器的登录名,1.1.1.1为外网IP(这里我瞎写的IP)执行完这条命令后在外网服务器就可以进行登录了。
ssh tao@localhost -p1234
tao是指你执行 ssh -NfR 1234:localhost:22 root@ip -p 22时所用的用户名
ssh连接中断问题
autossh -M 2222 -NfR 1234:localhost:22 root@1.1.1.1 -p 22
ubuntu安装autossh命令
sudo apt-get install autossh
---------------------------------------------------------分割线--------------------------------------------------------------
使用第二天,报错:write failed, broken pipe
解决办法:编辑 /etc/ssh/ssh_config
增加一行:ServerAliveInterval 120 #每隔20s向服务器发送一次 alive 请求
参考:
本文介绍了一种利用外网服务器及反向SSH通道访问内网服务器的方法,解决了学院服务器仅限内网访问的问题。通过在内网服务器上执行特定SSH命令,建立与外网服务器的连接,从而实现外网对内网服务器的访问。文章还提供了autossh的使用方法,以保持SSH连接的稳定性。
3577

被折叠的 条评论
为什么被折叠?



