假设我在学校,手里拿着一部安卓手机。我家里有一台电脑,这台电脑上有一个虚拟机。场景如下,客户端和虚拟客户端都有 ssh-client 和 ssh-server,它们可以在本地网络中相互通信。当我想通过互联网用安卓手机从学校连接到我的虚拟客户端时,必须有一个 IP 地址。问题是虚拟机和客户端有相同的公共 IP。那么我该如何连接这两台机器中的一台呢?
答案1
您需要在路由器的设置中为本地网络中的每个设备创建端口转发规则。
例如,您可以创建:
- 规则,路由器的端口1110重定向到端口22(这是标准 SSH 端口)的本地网络中设备,其本地 IP 为 192.168.1。110, 和
- 规则,路由器的端口1115重定向到端口22本地 IP 为 192.168.1 的设备的。115。
假设您的路由器具有公共 IP 地址 77.60.52.10,因此您将能够连接到本地 IP 地址为 192.168.1 的设备。110通过这个命令:
ssh [email protected] -p 1110
此外,您将能够连接到本地 IP 地址为 192.168.1 的设备。115通过:
ssh [email protected] -p 1115
以下是 TP-LINK 家用路由器端口转发的示例:
编辑:家用路由器通常具有即插即用配置界面。在 Ubuntu 中,你可以通过此界面使用一些工具创建端口转发(映射),例如UPnP 端口映射器。
为本地网络中的设备设置静态 IP 地址是个好主意。其中一种方法是通过路由器设置中的地址保留页面:
编辑:静态 IP 分配也可以通过操作系统的配置来完成。下面是如何执行此操作的示例:
进一步阅读: