所以,我有多个设备通过以太网电缆连接到我的路由器。所有设备都运行某种 SSH 服务,并且可以通过“ssh [email protected]”通过 WAN/Internet 访问。
我还为我的路由器设置了一个 dynDNS 服务,因此我无需知道确切的公共 IPv4 地址就可以访问它,因为它是动态分配的(以循环间隔变化)。
问题:现在,所有设备都有一个 SSH 服务器在 LAN 内的端口 22 上侦听。我需要找到一种方法,如何以相对安全的方式从 Internet/WAN 访问这些设备。
我该怎么做呢?
只有 1 个设备可以定义端口 22 的端口转发。
对于其他人,您必须在路由器上设置不同的端口转发,为每个设备在公共 IP 地址上提供不同的端口号,并转发到设备内部 IP 地址上的端口 22。
例如:
public-ip:22 ->
device1:22 public-ip:222 -> device2:22
public-ip:223 -> device3:22
为了连接到 device3 你会做 ssh
user@public-ip:223
今天,大约半年的广泛 IT 培训和陡峭的学习曲线之后,这是一个非常容易回答的问题。
这是有关如何执行此操作的简单草图:(WAN = 广域网,路由器“互联网端”的所有内容;LAN = 局域网,家庭网络中连接到路由器的所有内容)
广域网________局域网______________
|-> 外部端口 22000 -> 设备编号的端口 22。0
|-> 外部端口 22001 -> 设备编号 22 的端口。1
|-> 外部端口 22002 -> 设备编号 22 的端口。2
|-> 外部端口 22003 -> 设备编号 22 的端口。3
这背后的系统称为“端口映射”和“端口转发”。在某些路由器设置中,您可以在“允许访问”或“端口重定向”下找到它。
这个想法是,路由器扫描来自 WAN 端的所有传入流量,并将其(通过其防火墙)路由到 LAN 端的正确设备。由于所有连接的设备默认侦听端口 22,您可以告诉您的路由器在 WAN 侧请求多个不同的端口(例如提到的 22000、22001、22002 等)并将它们映射到设备的相应端口LAN 端,因此路由器接收例如端口 22001 上的流量,并通过设备 Nr 中的端口 22 上的防火墙重定向此流量。1,所以它收到了它需要的东西。
在大量(家庭)路由器品牌中,如何做到这一点的确切过程有些不同(在非消费者设置中,流量的引导将是交换机的工作)。
通常你应该找到一个看起来有点像这样的设置:
用于连接允许端口通过和外部请求端口。
例如,您可以说:
对于连接到 91.233.142.110(任意 IP)的 device_1,允许端口 22 到 22 并从外部请求端口 22001。
此设置将做两件事:
允许来自 WAN 的流量通过路由器防火墙(安全风险 - 阅读最后一部分)
确保外部端口(来自互联网)22001 上的所有流量都将映射到 device_1 的端口 22
这样,问题就解决了。您可以使用映射到相应设备端口并允许通过防火墙连接到您的设备的多个外部端口来执行此操作。
但要小心外面的邪恶!防火墙已到位,可保护您的 LAN 免受有害和潜在有害流量的影响。因此,您应该被告知如何采取安全措施,以确保您的 LAN 尽可能安全,并且不会受到黑客的攻击。
相关方法例如只允许 VPN 连接或对您的 SSH 登录使用 RSA 密钥身份验证。请务必阅读有关网络设备强化的指南,以保护您的服务器/NAS 免受任何坏人的伤害!
(还有另一种解决此问题的方法:更改有问题的程序(在本例中为 SSH 服务器)正在侦听的默认端口并放弃使用它的端口映射,但是当我当时遇到这个问题时,我什至不知道 sshd 或端口的垃圾是什么,所以我对任何新手来说都保持相对简单,因为配置家庭路由器几乎在所有情况下都是基于 GUI 的,您不必乱搞配置文件, nano/vim 或者通常这个可怕的黑色窗口,我们称之为终端 :)