我昨天在项目中遇到了一个大问题。我有一个本地服务器,我通过 websockets 连接它。一切正常。
项目的下一步是在网络未连接到互联网时使用它。我以为会很顺利。错了!websockets 无法连接。
几个小时后,我发现本地服务器基本上会发送一个帧来尝试解析连接客户端的本地 IP,并会锁定连接直到收到回复,而我的路由器无法回答,因为互联网已被拔掉。
这坏的我发现的解决方法是在 /etc/hosts/ 中添加我的客户端 IP,但我无法将所有本地地址添加到“hosts”文件中。
知道如何防止 ubuntu 解析本地 IP 吗?它配置为 DHCP:
$>更多/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto em1
iface em1 inet dhcp
提前致谢
答案1
您可以将 IP 地址的静态主机名别名添加到 /etc/hosts 文件中,以便无需使用 DNS 即可解析它们。
陷阱:
请小心确保 127.0.0.1 locahost 行保持完整,因为如果缺少该行可能会导致许多其他问题。
当您连接时,hosts 文件仍然会被使用,因此您需要确保它在这种情况下是有意义的,因为您可以使用它将任何主机名别名为任何 ip。
答案2
我和我的同事都遇到了同样的问题,我通过安装 samba 然后重新启动服务解决了这个问题。
sudo apt install samba
然后
sudo service smbd restart
此后,您可以通过输入如下内容连接到其他网络:
smb://domain.something/somepath$