最近在部署项目时遇到只有1台服务器拥有公网ip,其它服务器只有局域网ip,当然其它服务器可以正常访问网络,例如如下模型。之前访问其它几台服务器,都是先通过登录公网IP服务器,然后在Xshell里面执行ssh远程连接,这种方式不够直观而且上传文件到其它服务器很繁琐,非常麻烦。
所以在网上找了下教程,最后结合网上的,在Xshell上面设置代理直接访问其它服务器,Xftp也是如此,当然它的原理也是利用公网服务器做跳转,不过所有操作都是Xshell 完成,不需要我们手动去跳。让我们来模拟下,比如现有公网服务器A 218.56.7.18 局域网服务器B 192.168.1.10。
具体步骤看:
xshell + xftp + MobaXterm 通过代理的方式访问外网不可见服务器
-
首先我们在Xshell创建会话(公网服务器A):
步骤1:名称(备注自定义),协议(SSH),主机(公网服务器IP),端口号(默认22)
步骤2:服务器账号,密码。勾选密码协议验证
步骤3:点击SSH -> 隧道 -> 添加(类型选择Dynamic,端口可以自定义)
-
然后在Xshell在创建一个新会话(局域网服务器B)
步骤1:名称(备注自定义),协议(SSH),主机(局域网服务器IP),端口号(默认22)
步骤2:服务器账号,密码。勾选密码协议验证
步骤3:代理 -> 预览 -> 添加 -> 填写信息(名称自定义,类型选择SOCKS4,主机localhost,端口号为服务器A设置的监听端口)。备注:如添加后下次则可直接选择代理服务器
-
打开局域网服务器B的Xftp
此时不需要配置Xftp,只需要在Xshell局域网服务器B上点击Xftp就可以自动连接了
-
当局域网内网服务器连接上代理后,公网服务器会出现圆圈图标,这说明已经连接上了,都完成了
备注:访问局域网服务器时,Xshell需要把公网服务器窗口打开,不然连接不上。