我为我的 Raspberry Pi 设置了端口转发,以便能够通过 ssh 从互联网连接。当我尝试通过手机互联网连接到我的 Pi 时,它运行正常。当我尝试通过本地连接进行连接时,它无法使用外部 ip。只能使用我网络中 Pi 的本地 ip。我有一个 AVM FritzBox 4020 GM 路由器连接到我的 Speedport W723V 路由器,用作 DSL 调制解调器。
答案1
无法使用本地网络的公共 IP 连接到内部资源
这仅当您的路由器支持时才可行NAT 反射/NAT 环回/NAT 发夹结构。
许多消费级路由器不支持此功能。
有一个列表NAT 环回路由器路由器做具有此功能。
AVM FRITZ!Box 确实支持环回(根据上面的链接),因此你应该能够让它在你的特定情况下发挥作用。
为什么需要 NAT 环回?
许多 DSL 路由器/调制解调器都具有防止环回连接的安全功能。
这意味着您本地网络上的机器(例如,在您的 DSL 路由器/调制解调器后面)无法连接到您本地网络上的机器的前向 IP 地址(例如 199.149.252.44)。
连接到同一台机器的本地 IP 地址(例如 192.168.2.40)可以正常工作。
答案2
在移动设备上的 ssh 客户端中拥有两个帐户不是更简单吗?一个帐户用于从本地网络外部连接,另一个帐户用于在本地网络内部连接。只需在两个帐户中使用不同的 IP 即可。
如果你有不错的防火墙/路由器,例如普福斯例如,如果您拥有某个域名,那么您可以将外部 IP 映射到您的域/子域,并在 LAN 端通过将其指向 Raspberry Pi 的本地 IP 地址来覆盖域名。这样,您只需在 SSH 客户端中将域名设置为要连接的目标 IP。当您在 LAN 之外时,您的客户端将使用公共 DNS 来查找您的 Pi,否则当您连接到 LAN 时,您的防火墙/路由器将通过将 Pi 的本地 IP 替换为该特定域来覆盖公共 DNS