在外网使用ssh连接内网中的多台Linux服务器

时间:2024-03-06 11:06:01

 

最近因为要对全球工控机网络进行协议扫描,需要在实验室配置几台服务器,因为我们只有一个IP地址,所以是用路由器搭建了一个内网(拓扑结构如下图)。但是这样做了之后无法在宿舍通过ssh直接连接服务器,因为那几台服务器对外显示的都是路由器的IP。

一开始也在网上找了很多教程,包括用现成的软件和使用ssh反向连接,但是这些都过于繁琐。最后是发现路由器自带了虚拟服务器的功能,操作特别简单。

 

一、设置服务器静态IP

服务器一般设置成静态IP,方便访问。进入路由器设置界面,选择IP与MAC地址绑定,将各服务器的IP跟MAC地址绑定,这样即使服务器的IP获取方式设置成DHCP,路由器也能给各服务器分配固定的IP地址,同时也避免了在服务器设置静态IP导致可能的IP冲突。

 

二、设置虚拟服务器端口映射

进入路由器设置的虚拟服务器设置界面,将为每一台服务器添加一个端口映射,外部端口可以选择大于5000的任意端口,内部端口设置为22(ssh默认的端口,可以更改),同时填写相应的ip地址,保存。

这里解释一下,外部端口即在外网访问路由器IP时用的端口,路由器将这个端口映射到了对应IP服务器的22端口(如果没有修改默认ssh端口的话),这样就能够用最常用的ssh命令登录服务器了:

ssh username@127.0.0.1 -p 5001

其中username是Linux系统的用户名,127.0.0.1是那个唯一的外网IP,5001是之前设置的外部端口号,换成对应的端口就能够登录不同的服务器了。