如何在本地 Wi-Fi 网络中设置 SSH

如何在本地 Wi-Fi 网络中设置 SSH

最近家里换了一个路由器,旧的是D-Link DIR-300,新的是Keenetic Lite,家里有两台电脑,就叫和desktoplaptop

问题是,在我更换路由器之前,我能够laptopdesktop这样连接:

ssh user@desktop

并且效果很好;现在当我尝试这样做时,我得到了

ssh: Could not resolve hostname desktop: Name or service not known

这显然意味着 ssh 不再知道desktop是什么了。

当我运行 时,计算机似乎仍然在本地网络中可见,nmap -sP 192.168.1.*两台计算机的 IP 地址都在那里。此外,我认为问题不在于ssh它本身:当我在路由器上设置端口 22 转发时,我能够ssh使用它们的外部 IP 地址进入两台计算机。但是,使用本地 IP 地址会导致port 22: connection refused

以下是我的问题:

  1. 首先,主机名是如何解析的?当我这样做时ssh user@desktop,程序如何找出应该连接到哪个 IP?
  2. 我该如何修复我的设置以便它能够再次执行该操作?
  3. 为什么我无法ssh使用本地 IP 地址进行连接?

答案1

您的旧路由器可能已运行自己的 DNS 服务,并且您曾输入名称laptopdesktop告诉它始终为它们分配相同的地址。或者,您的计算机可能实际上已命名laptop,并且desktop旧路由器的 DHCP 服务在它们请求地址时会获取该名称。

因此,要解决这个问题,您需要在路由器中找到等效设置,或者绕过它。非移动设备(iThings 和 'droids 等)的常见解决方法是使用该hosts文件提供名称到 IP 地址的映射。或者,使用第三个设备提供该服务 - 我使用 Raspberry Pi 提供 DHCP、本地网络 DNS(desktop.home.test)、仅缓存 DNS 服务器(用于外部查找)和 DHCP 服务。涉及更多手动配置,但对于系统管理员/开发人员来说这并不多...

至于无法通过 IP 地址连接,假设地址正确,则可能是您的路由器将无线连接与有线连接分离到不同的子网,并阻止它们之间的通信。这对于提供访客访问来说可能很常见,因此客户端可以访问互联网,但无法查看/访问本地子网上的计算机。同样,这个问题的解决方案实际上取决于路由器、它运行的软件/固件版本等。

根据您当前的路由器/调制解调器的功能,您可能需要考虑在其上安装第三方固件/操作系统之一,它们都倾向于提供所有这些服务以及更多服务(例如 QoS 等)

相关内容