我最近在家更换了路由器。旧的是D-Link DIR-300,新的是Keenetic Lite。家里有两台计算机,我们称它们为desktop
和laptop
。
问题是,在我更换路由器之前,我能够像这样从laptop
进行连接desktop
:
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
。
这是我的问题:
ssh user@desktop
,程序如何找出它应该连接到哪个IP?ssh
使用本地IP地址进行连接?您的旧路由器可能已经运行了自己的dns服务,有时您输入了名称laptop
,desktop
并告诉它始终为它们分配相同的地址。或者,您的计算机实际上可能已被命名laptop
,desktop
并且旧路由器的DHCP服务在询问地址时就使用了该名称。
因此..要解决此问题,您需要在路由器中找到等效的设置,或解决该问题。对于非移动设备(iThings和'droids等),通常的解决方法是使用该hosts
文件提供名称到IP地址的映射。或者,使用第三台设备来提供该服务-我使用Raspberry Pi提供DHCP,本地网络DNS(desktop.home.test
),仅用于外部查找的缓存DNS服务器以及DHCP服务。涉及到更多的手动配置,但是作为sysadmin / dev的家伙并不多...
至于不能通过IP地址进行连接,假设地址正确,则可能是您的路由器将无线连接从有线连接分离到了另一个子网,并阻止了它们之间的通信。这对于提供访客访问权限可能很常见,因此客户端可以访问Internet,但是无法查看/访问本地到子网上的计算机。同样,解决方案实际上取决于路由器,它正在运行的软件/固件版本等。
根据您当前路由器/调制解调器的功能,您可能希望在其上安装第三方固件/操作系统之一,它们都倾向于提供所有这些服务以及更多服务(例如QoS等)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句