我在中搜索了解决方案谷歌三天后,我决定写在这里。我有路由器,所以我家有无线局域网。我在家时使用笔记本电脑。在另一个城市,我的办公室有第二台计算机(PC)。我可以使用 SSH 协议连接这台 PC。不幸的是,我无法从 PC 连接我的笔记本电脑。当我尝试这样做时,我看到以下语句:
ssh: connect to host XX.XX.XX.XX port 22: Network is unreachable
守护进程 SSHD 正在我的笔记本电脑上运行。有趣的是,几个月前这个连接工作正常,但我重新安装了 SSHD,现在出现了问题。
/sbin/路线显示:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.9.1 0.0.0.0 UG 0 0 0 wlan0
192.168.9.0 * 255.255.255.0 U 2 0 0 wlan0
/sbin/ifconfig印刷:
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:47
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:169 errors:0 dropped:0 overruns:0 frame:0
TX packets:169 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:13189 (12.8 Kb) TX bytes:13189 (12.8 Kb)
wlan0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.9.107 Bcast:192.168.9.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:76455 errors:0 dropped:0 overruns:0 frame:0
TX packets:82766 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:53583517 (51.1 Mb) TX bytes:13182981 (12.5 Mb)
我想,问题与网关的设置有关,但我在这个主题(计算机网络)方面是外行。这个建议是基于我的谷歌调查。
答案1
由于您没有提供更多信息,我将详细说明我的评论至于我认为这里发生的事情。
作为序言,请原谅我假设你犯了这个错误,我只是继续你所说的:
我对这个学科(计算机网络)是门外汉。”
我相信您正在尝试使用您的家用计算机私有IP地址当尝试从工作中通过 SSH 连接到它时。这将产生以下两种行为之一,具体取决于您家庭和工作场所的网络配置:
- 您的家庭和办公室网络使用相同的私有 IP 地址空间,在这种情况下,您将尝试连接到办公室的一台机器,该机器恰好与您的家庭计算机具有相同的私有 IP 1或(更有可能),您不会在办公室网络上找到这样的计算机,并且会收到类似“主机无法访问”或“没有到主机的路由”的信息。
- 您的家庭和办公室网络使用不同的私有 IP 地址空间(到目前为止更可能的情况),在这种情况下,你正在尝试访问不同私有网络中的一台机器,并且您将收到“网络无法访问”错误。
那为什么之前还可以呢?
我的猜测是,这种情况发生在您带着笔记本电脑工作时,在这种情况下,两台设备都位于同一个专用网络上。当您报告它“工作”时,您认为问题与您的 SSH 守护程序有关,而不是与您的网络配置有关。
那么我该如何解决这个问题呢?
有几种解决方案。以下是我能想到的一些:
- 按照红蟋蟀的评论,早上出门前请确保您的笔记本电脑已连接到公司的 VPN。这将使两个设备看起来是在同一个专用网络上。
- 掏钱买一个静态IP地址由您的 ISP 提供。不过,对于您获得的好处而言,这可能成本太高、风险太大2 。由您决定。
- 看一个动态域名解析服务。其中大部分也是有代价的。但似乎有一些网站愿意免费提供这项服务。同样,在这种情况下,您需要注意您的安全和隐私。
- 你可以使用 Dropbox 运行简单的命令/脚本在您的笔记本电脑上。免责声明:我没有尝试过这种方法,也不一定保证其成功/安全。
请注意,在上述解决方案 2 和 3 中,您需要某种机制将笔记本电脑侦听的 SSH 端口(默认情况下为端口 22)从网关路由器(连接所在的位置)转发到您的笔记本电脑。这通常可以从路由器本身内部完成。在路由器界面中,查看 NAT(网络地址转换)选项。在某些路由器中,这可能会归档在“游戏”类别下。
1当然,该办公室计算机可能运行也可能没有 SSH 守护程序。因此,您要么被要求提供您尝试登录的用户的凭据(这些凭据与您笔记本电脑的凭据相同的可能性也很小),要么您会收到“连接被拒绝”错误,因为那里该设备上没有运行 SSH 侦听器(在标准 SSH 端口上)。
2 您的设备拥有静态 IP,使其成为攻击者的固定目标,因此在这种情况下您可能需要考虑防火墙和严格的访问控制。