使用背景

做实验需要用的Linux服务器(A),只分配了内网IP,在实验室有一台连接内网的Windows电脑(B),一般使用B上的XShell软件SSH连接服务器进行操作。如果不在实验室的网络下,比如在宿舍使用电脑(C),希望可以通过XShell转发控制服务器A。

解决办法

使用一台有公网IP的服务器(称为跳板机)作为通道连接宿舍电脑C和实验室电脑B。
在跳板机上开辟一个端口(比如12345),宿舍电脑A SSH连接跳板机12345端口,实验室电脑B使用XShell SSH连接跳板机22端口,在B上的XShell设置隧道,监听跳板机上12345端口数据,并转发给实验室的服务器A。配置示意图如下:
在这里插入图片描述

步骤

1 配置公网ip服务器

这里我使用的是阿里云的学生服务器,9.5一个月,便宜好用。
登录阿里云服务器,设置允许端口转发

vim /etc/ssh/sshd_config

找到文件中被注释掉的GatewayPorts no,去注释,并将no改成yes
如果没找到就在末尾添加上GatewayPorts yes

防火墙中设置端口
在这里插入图片描述
在这里插入图片描述

2 配置实验室电脑

打开XShell,添加连接,设置
在这里插入图片描述
登录账号密码使用阿里云服务器的
在这里插入图片描述
设置隧道
在这里插入图片描述
连接
注意,在实验室电脑上,这个连接必须保持在线,否则无法实现转发。

宿舍电脑配置

随便一个SSH软件
IP:跳板机IP
端口:跳板机开放端口(上文中的12345)
用户名:实验室服务器用户名
密码:实验室服务器密码
连接一下试试,嗯,真香
在这里插入图片描述
上面就解决了如何在外网通过ssh隧道服务连接内网服务器。

扩展

SFTP文件服务

SSH隧道配置连接成功以后,所有ssh相关的服务都可以在外网使用,比如SFTP文件传输。在宿舍电脑上下载任意支持SFTP协议的软件,可以直接连接管理文件(IP、用户名、密码同上),这里我用的是winscp
在这里插入图片描述

最香的应用

在iPad上下载Termius可以使用SSH连接实验室服务器,iPad真香
在这里插入图片描述

这套操作的原理是SSH的隧道协议,具体可以看
SSH Tunnel 一般场景用法

Logo

更多推荐