我用手机将 2 台不同的设备(笔记本电脑和台式机)连接到互联网。我通过 USB 将手机连接到台式机并启用了 USB 网络共享。我还启用了热点以通过 Wi-Fi 连接笔记本电脑。现在,两台设备都连接到我的手机,我想从一台设备 ssh 到另一台设备。
# my laptop
❯ ifconfig | grep 192 -B1
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.43.186 netmask 255.255.255.0 broadcast 192.168.43.255
# my desktop
❯ ifconfig | grep 192 -B1
enp0s26u1u3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.42.17 netmask 255.255.255.0 broadcast 192.168.42.255
在我的笔记本电脑上,我运行:
ssh "[email protected]"
但它什么也没做。我读到过,为了做到这一点,两个设备都需要在同一个网络中,但我无法将我的桌面连接到 wifi,因为我没有 wifi 适配器。在当前设置下,我应该进行哪些更改才能使其正常工作?
答案1
我读到过,为了做到这一点,两个设备需要在同一网络中
这句话太过笼统了。从某种意义上说,这句话一半正确,从另一种意义上说,这句话一半错误。
“同一网络”不同于“同一子网”——单个网络可以由多个子网组成,如果路由器配置正确,则它们将允许来自不同子网的设备进行通信。
(即便如此,“同一网络”仅在使用私有寻址(例如 192.168.x)的特定情况下才重要,一般情况下并不重要。例如,superuser.com 既不在您自己的子网中,也不在您 ISP 的更广泛的网络中,但您却能够连接到它。)
然而,路由器可能明确地禁止其管理的子网之间的某些通信,通常是通过使用防火墙规则来选择性地接受或阻止特定类型的流量。(这通常是将网络划分为子网的全部目的。)这就是 Android 所做的 - 它专门阻止“USB 网络共享”接口和“Wi-Fi 热点”接口之间的流量。
因此,您的设备无法相互连接的原因并不是因为它们通常位于不同的子网中,而是因为您的路由器(即 Android 手机)配置为专门阻止不同子网之间的通信。