所以我根本没有计算机网络方面的经验。
我需要从我的笔记本电脑到 PC 进行 ssh(实际上我需要通过 x2go 连接,但我猜它是等效的)。我知道 PC 本地 IP 地址,当我的笔记本电脑位于同一本地网络中时,我可以通过 x2go 进行 ssh 和连接。
但我如何从外部连接呢?谢谢
[解决方案] 作为一个菜鸟,对我来说最直接的解决方案是使用免费的动态 DNS 提供商服务。我使用了 noip.com 服务。我设置的名称是我的动态 IP 的别名。我还在路由器设置中转发了端口,这也很容易完成。不,我可以通过以下方式访问我的电脑ssh -p port_forwarded username@aliasIP
小智 7
三种方法:
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
Run Code Online (Sandbox Code Playgroud)
(但是笔记本电脑也在路由器后面,这次端口必须从笔记本电脑的路由器转发到笔记本电脑的端口。)
在笔记本电脑端,您只需 ssh 即可:
ssh -v -p port_of_laptop@localhost
Run Code Online (Sandbox Code Playgroud)
3) 或者您可以设置一个 OpenVPN 服务器,侦听 UDP 1194 端口(最好的方法是在 AWS 上使用具有弹性 IP 的免费微型 EC2 实例)。然后,您将使笔记本电脑和 PC 客户端位于同一 VPN 内。这样,通过 tun0 接口连接到 VPN,所有客户端都可以互相访问,就像它们在同一 LAN 上一样,即使它们实际上不在同一 LAN 上。还必须启用客户端到客户端的连接。这种方法的好处是,您不必跟踪 PC 连接到的路由器的地址(如果它有一个在每次重新启动/重新连接时都会更改的动态 IP)。
ssh PCuser@IP_of_PC_given_by_tun0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46488 次 |
| 最近记录: |