反向隧道是一个进行内网穿透的简单而有用的方法。在Linux下通过OpenSSH和AutoSSH可以很容易地建立稳定的反向隧道。但是在Windows下,使用Xshell 5就可以很容易完成这个工作。

1.新建会话

首先按一般使用方法新建会话,填好主机信息。注意勾选自动重新连接。
image.png

2.不分配终端

为安全起见,服务器上用于建立反向隧道的用户,都被设置为不允许通过Shell登录的。所以这里需要使Xshell不分配终端。
image.png

3.添加一个隧道

image.png

4.设置隧道参数。

这些参数和OpenSSH的参数基本上是对应的。比如下图中,则将服务器的9900端口,映射为localhost:80这个端口。
如果需要使任意的IP(而不是仅限服务器本地),都能连接到服务器的9900端口,那么源主机就设置为0.0.0.0,并且不要勾选“仅接受本地连接”。另外需要把服务器上SSH服务的GatewayPorts设置为clientspecified或者yes。见如何通过反向 SSH 隧道访问 NAT 后面的 Linux 服务器
image.png

5.让Xshell打印出隧道相关的日志

image.png

6.连接

image.png

7.启动参数

另外,Xshell支持启动参数。已会话名作为参数启动则可让Xshell自动连接该会话。
新建个Xshell的快捷方式,目标后追加Example作为参数,那么打开这个快捷方式就会让Xshell自动连接Example这个会话。
image.png