![如何使用公共动态 IP 通过 SSH 连接到路由器后面的私有 IP](https://linux22.com/image/1503227/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%85%AC%E5%85%B1%E5%8A%A8%E6%80%81%20IP%20%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E8%B7%AF%E7%94%B1%E5%99%A8%E5%90%8E%E9%9D%A2%E7%9A%84%E7%A7%81%E6%9C%89%20IP.png)
我的办公室里有 2 台电脑,它们都位于路由器后面,有自己的私有 IP。我尝试通过 SSH 连接到它们,但只有当我的笔记本连接到同一个 Wifi 时(即所有电脑都在同一个网络中),它似乎才有效。我如何通过 SSH 在家工作?
我猜它使用的是公共 IP(从 www.whatismyip.com 或类似网站获取的 IP),但我找不到方法来告诉 SSH 连接到特定的 PC。
另外,我有一个动态 IP,所以我设置了一个 DNS 服务器(使用 my.noip.com)。
顺便说一下,所有这些都在 Ubuntu 上。
提前致谢。
编辑:
我在路由器(苹果 Time Capsule A1470)的 Internet 选项卡下添加了一些选项(启用 NAT 端口映射协议),并使用端口 22 和我感兴趣的 PC 的私有 IP 地址添加了端口映射设置。但仍然不知道如何使用公共 IP 进入私有 IP。
编辑2:
显然,我的端口转发功能正在工作,但我认为我有两个 IP,一个用于路由器,一个用于公共 IP,尽管公共 IP 似乎无法到达路由器 IP。在我的路由器信息中,有一个 IP 类似于 172.xxx;当我通过该 IP 进行 ssh 并指定一个端口时,我无法进入我办公室中我感兴趣的两台 PC 中的一台,如果我更改端口(我之前在端口转发中设置的端口),我可以进入另一台 PC。问题是网络外的 PC 无法使用路由器中报告的 IP。公共 IP 也不起作用,即使是来自同一网络也不行。
答案1
您必须在路由器中添加端口转发规则,并设置所需计算机的目标 IP 地址 LAN IP 和端口 22。
您无法指定 SSH 想要连接到哪台计算机,您只能连接到 IP 地址(或可解析的域名)和端口(默认为 22)。只能连接到您在路由器上设置了端口转发规则的那些。
但是,您可以为每台计算机添加多条规则,但每台计算机的 WAN 侧端口必须不同,即您只能使用端口 22 一次。
例如:
- WAN 端口 22 ---> LAN IP:192.168.1.1 端口:22
- WAN 端口 2220 ---> LAN IP:192.168.1.2 端口:22
- WAN 端口 2221 ---> LAN IP:192.168.1.3 端口:22
请参阅我对一个非常相似的问题的回答: 为什么我无法从网络外部访问我的网络服务器?
答案2
检查调制解调器是否充当网关。听起来您有双重 NAT。看看您是否可以关闭调制解调器上的 NAT。(设置为桥接模式)