假设我有两台运行 Linux 的 PC(例如 Ubuntu 20.04)。其中一台是我的,另一台属于住在另一个城区的人。
这些都是普通的PC:它们都通过本地提供商的网络访问互联网,因此您不能仅通过IP地址访问它们。
我该如何在这两台电脑上设置路由以便能够通过 ssh 连接?
答案1
B(ssh 服务器)必须向 A(ssh 客户端)传输 B 的当前的IP 地址。然后 ssh 就可以工作了。
有很多种方式:电话、电子邮件、网站。
最常见的自动化方法之一是 DDNS(动态 DNS)。DDNS 服务将关联一个常量名称 ( B.ddns.net
),并使其与 B 不断变化的 IP 地址保持同步。B 必须运行一项小型服务,偶尔更新 DDNS 提供商。有许多免费的 DDNS 服务可用。
因此 A 只需要ssh b.ddns.net
连接到 B。
- 当然,这假设 B 也是转发端口路由器上的 ssh 连接正确,B 已正确配置其 SSH 服务器,并且 B 正确地使用了足够安全的基于身份验证的方法(而非密码)来连接到互联网的 ssh 服务器。
答案2
可以将服务器想象成一部只能拨打外拨电话的电话。没有人可以拨入,但你可以拨出。如果没有第三台可以接听来电的服务器的帮助,这两台服务器就无法相互通话。话虽如此,你在哪里可以找到互联网上的第三台服务器来连接两台外拨 PC?
https://portmap.io/提供免费解决方案,允许防火墙或 NAT 后面的服务器有一个可从互联网访问的端口。这需要服务器与 portmap.io 保持 openVPN 连接
继续使用电话类比,您连接到 portmap.io,他们会为您提供自己的域(和端口),只要您保持连接,您就可以接听来电。从互联网上,portmap.io 在您的域/端口上建立传入连接,并将音频/数据转发到您的分机(如果您已连接)。
在实施此解决方案之前,您需要了解其安全性和隐私影响。祝您好运!