xshell通过SOCKS隧道和代理实现ssh登录其他内网服务器
场景:
假定有如下场景(PC可以ssh到B,但是没法直接到D,B和D内网可通):
PC <——> Server B(公网123.123.123.123, 内网10.10.10.10) <——> Server D(无公网ip, 内网10.10.10.11)
需求:实现PC使用xshell到Server D的ssh连接,并且能直接用xftp传输文件。
实现:
- 首先PC通过xshell登录的Server B的ssh连接配置:
主机选Server B公网地址:123.123.123.123,端口:22,协议:SSH,身份验证:正常的Server B用户密码或public key。
记得添加一个“隧道”:类型:Dynamic(SOCKS4/5),侦听端口:22222(确保没被PC上其他程序占用的端口)。

- 接着PC通过xshell登录Server D的配置:
主机选Server D内网地址:10.10.10.11,端口:22,协议:SSH,身份验证:正常的Server D的用户密码或public key。
记得选择“代理”:添加一个代理:类型:SOCKS5,主机:127.0.0.1(其实就是能连接到上面隧道PC上即可),端口:22222,用户名、密码空即可。
选择该代理后,直接确定再连接,就直接连接到了Server D上,非常方便好用。

扩展说明:
a. 连接到Server D之后,通过xshell使用xftp可以直接连接到Server D上上传下载文件(重点是xftp连接的是Server D而不是Server B,非常方便)。
b. 其他web等同样可以设置代理服务器为 127.0.0.1:22222 直接打开Server D上的url连接。