有时我朋友家里的 VPN 会中断,最终导致无法远程访问他的计算机。
我正在查找 SSH 端口转发,但并不真正明白我在读什么。
假设他的电脑 IP 是 10.1.10.213。我通常会使用 VPN 连接,然后直接使用 ssh[电子邮件保护]访问。如果 VPN 断开,我该如何继续访问?
我正在看这个:http://www.debianadmin.com/howto-use-ssh-local-and-remote-port-forwarding.html。我还在他的网络上对端口 22 进行了端口转发。
答案1
VPN 代表虚拟专用网络。VPN 连接 2 个不同的私有网络跨公共网络,或单个主机到私有网络。所谓私有,是指不可公开路由。你朋友的地址 10.1.10.213 位于不可公开路由的私有网络范围内,因此他可能有一个小型家庭/办公室路由器正在运行NAT(网络地址转换)对他来说。NAT将内部私有网络地址和端口转换为公共IP地址和端口。
当你使用 VPN 连接时,你必须先告诉你的 VPN 客户端他的公共 IP 地址或他的 host.domain.name。问题是大多数家庭互联网连接都会收到他们的IP 地址仅暂时然后发生变化。他可以通过电话、电子邮件告诉你,也可以定期更新动态 DNS 服务使用他的新 IP 地址。
假设你知道他的公网 IP 地址或主机域名,接下来你需要一种方法来连接到他的内部机器 10.1.10.213 的端口 22。这意味着,在他的路由器上,他需要端口转发他的外部 IP 地址和端口(例如 22)更改为他的内部 IP 地址 10.1.10.213 端口 22。
一旦您知道他的公共 IP 地址或动态 DNS 主机名,并且他已设置端口转发,那么您需要做的就是:
ssh yourusername@address
或者如果他的外部 IP 地址和端口转发不同于 22,那么使用:
ssh yourusername@address -p PortNumber
进一步说明:他的机器的地址应该是静态分配的,而不是通过 DHCP 分配的。这样,他的路由器的端口转发将始终转到正确的计算机。
如果路由器的端口转发配置为正确的内部 IP 地址,并且您和他都能够访问互联网,并且您正在使用 ssh 连接到他路由器上的正确端口,那么可能是:
- 他的服务提供商正在阻止到该端口的入站连接,在这种情况下,让他将一个高端口号映射到他的 ssh 服务器;或者
- 他的路由器或计算机都有防火墙规则,阻止连接到各自的端口。