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