我家里有 ubuntu 服务器,我想从其他地方访问它。我的 ubuntu 服务器上没有公共地址 IP,所以我无法从互联网访问它。我有静态 DNS 等。我听说过 hamachi,但我必须在每台想要连接到家里的 ubuntu 服务器的电脑上安装它。我只想访问终端。
答案1
您需要设置一个反向 SSH 隧道
ssh -nNT -R 1100:local.mydomain.com:22 [email protected]
这样做的目的是将远程服务器端口 1100 上的所有连接转发到本地系统的端口 22。您必须提前准备此连接,而且它不如 VPN 那么可靠。
如果您想要更高的可靠性(ssh 连接可能会断开),请选择 openvpn。
答案2
您可以在路由器/NAT/防火墙中设置反向 NAT 规则,这样从外部端口到路由器的任何连接都将被转换为本地网络中另一台机器的地址和端口。
因此,路由器上的端口 22 可以转换为服务器上的端口 22。然后,您只需要在 DNS 中使用路由器的全局 IPv4 地址注册您的服务器即可。
或者您可以设置 IPv6,这样您的所有机器都可以拥有正确的全局地址。但是您随后连接的机器也需要位于 IPv6 网络上。不要忘记在您的 IPv6 路由器和机器上设置防火墙。使用 ufw 可以很容易地做到这一点。