基本做法就是通过ssh建立主机和服务器之间的隧道,然后把服务器当地的端口转发到主机。
值得注意的是ssh尤其是开放端口的ssh存在安全风险,使用需谨慎。
建立SSH隧道
关于ssh的应用可以参考ssh -D -L -R 差异。(这篇文章里的host1可以看作客户端,host2看作服务器,host3是中间转接主机3)
主要困难在于服务器位于内网,外网客户端不可见。客户端分两种情况,分别是客户端位于内网和外网。(外网指的是有公网IP,世界任意位置可以通过其IP地址找到该电脑; 而内网指的是无公网IP,只能通过局域网其他主机访问。)
情况一:客户端位于外网
此种情况下,服务器可以通过IP地址寻址客户端,所以在服务器端建立与客户端的反向链接。通过-N -f后台运行。具体命令为:
在服务器主机上执行:
ssh -f -NR <client_port>:localhost:<server_port> [username@]<client_ip_address>
情况二:客户端位于内网
此种情况下,服务器和客户端互相找不到对方,但是存在某个可以共同访问的主机3(如果不存在就需