从外部本地网络进行 ssh

从外部本地网络进行 ssh

所以我根本没有计算机网络方面的经验。

我需要从笔记本电脑到 PC 进行 ssh(实际上我需要通过 x2go 连接,但我想这等效于此)。我知道 PC 的本地 IP 地址,当我的笔记本电脑位于同一本地网络中时,我可以通过 x2go 进行 ssh 和连接。

但是我怎样才能从外面连接呢?谢谢

[解决方案] 作为一个完全的新手,对我来说最直接的解决方案是使用免费的动态 DNS 提供商服务。我使用了 noip.com 服务。我设置了作为动态 IP 别名的名称。我还在路由器设置中转发了端口,这也是一项简单的任务。不,我可以通过ssh -p port_forwarded username@aliasIP

答案1

三种方法:

1) 您可以将路由器上的端口 22 转发到守护程序正在监听的 PC 上的端口。当您ssh PCuser@Public_IP_of_PC(22 是默认端口,如果转发了其他端口,请使用 -p 参数传递它)时,您将访问路由器后面的 PC。此处详细说明了该过程的确切动态:https://unix.stackexchange.com/questions/19620/ssh-port-forward-to-access-my-home-machine-from-anywhere

2)从路由器后面的 PC 到笔记本电脑创建反向 ssh 隧道(假设笔记本电脑具有特定的 IP),如下所示:

ssh -v -N -R port_of_laptop:localhost:local_port_of_pc laptop_user@$laptop_ip

(但是笔记本电脑也在路由器后面,这时必须将端口从笔记本电脑的路由器转发到笔记本电脑的端口。)

在笔记本电脑端,你只需像这样 ssh:

ssh -v -p port_of_laptop@localhost

3) 或者您可以设置一个监听 UDP 1194 端口的 OpenVPN 服务器(最好的方法是使用 AWS 上具有弹性 IP 的免费微型 EC2 实例)。然后,您将使您的笔记本电脑和 PC 客户端位于同一个 VPN 中。这样,通过 tun0 接口连接到 VPN,所有客户端都可以相互访问,就像它们在同一个 LAN 上一样,即使它们实际上不在。还必须启用客户端到客户端的连接。这种方法的好处是,您不必跟踪 PC 连接到的路由器的地址(如果它有一个动态 IP,每次重启/重新连接时都会更改)。

ssh PCuser@IP_of_PC_given_by_tun0

相关内容