Windows下使用Xshell建立反向隧道

时间:2024-10-17 08:34:44

反向隧道是一个进行内网穿透的简单而有用的方法。在Linux下通过OpenSSH和AutoSSH可以很容易地建立稳定的反向隧道。但是在Windows下,还能看到有人特意装个Cygwin来运行这些工具……其实使用Xshell 5(家庭使用免费)就可以很容易完成这个工作。

Update: 若需要在命令行环境下建立一个文档的SSH隧道,参考这个:Windows下使用AutoSSH,并作为服务自启动(不用安装Cygwin)

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

Windows下使用Xshell建立反向隧道

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

Windows下使用Xshell建立反向隧道

添加一个隧道。

Windows下使用Xshell建立反向隧道

设置隧道参数。这些参数和OpenSSH的参数基本上是对应的。比如下图中,则将服务器的9900端口,映射为localhost:80这个端口。

如果需要使任意的IP(而不是仅限服务器本地),都能连接到服务器的9900端口,那么源主机就设置为0.0.0.0,并且不要勾选“仅接受本地连接”。另外需要把服务器上SSH服务的GatewayPorts设置为clientspecified或者yes。见如何通过反向 SSH 隧道访问 NAT 后面的 Linux 服务器

Windows下使用Xshell建立反向隧道

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

Windows下使用Xshell建立反向隧道

最后进行连接即可。

Windows下使用Xshell建立反向隧道

另外,Xshell支持启动参数。已会话名作为参数启动则可让Xshell自动连接该会话。

新建个Xshell的快捷方式,目标后追加Example作为参数,那么打开这个快捷方式就会让Xshell自动连接Example这个会话。

Windows下使用Xshell建立反向隧道