当我启动计算机时,一切都运行正常,但从暂停状态恢复后,应用程序无法打开新的本地套接字。我的连接和 DNS 都很好。我可以 ping 域。我可以浏览网站,我可以通过 SSH 退出,我可以连接到恢复之前启动的服务。但我无法启动任何想要绑定到新本地套接字的东西。如果我重新启动,一切都会恢复正常,但我必须强制重新启动,因为停止 Tomcat 会停滞在等待网络。
亚行:
adb F 05-03 15:31:03 54241 54241 main.cpp:148] could not install *smartsocket* listener: Address family not supported by protocol
* failed to start daemon
adb: failed to check server version: cannot connect to daemon
雄猫:
java.net.BindException: Cannot assign requested address (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:428)
at org.apache.catalina.startup.Catalina.await(Catalina.java:800)
at org.apache.catalina.startup.Catalina.start(Catalina.java:746)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
网络猫:
$ nc -vkl 12345
Listening on 0.0.0.0 12345
$ telnet localhost 12345
Trying 127.0.0.1...
我尝试过重启 network-manager、systemd-udevd、systemd-sysctl 和 docker。但都无济于事。我还比较了ip link|route|addr
恢复前后的情况,发现它们是相同的。
我完全不知道问题出在哪里。有什么建议吗?
答案1
我能够解决这个问题。我在 Docker 中运行 haproxy 和 dnsmasq,因此我需要为环回接口分配第二个 ip 并添加名称服务器。我使用 netplan 完成了此操作,如下所示:
network:
ethernets:
lo:
renderer: networkd
addresses:
- 10.10.10.10/8
nameservers:
addresses:
- 10.10.10.10
启动时一切正常,但恢复后 lo 仅具有 IP 10.10.10.10,而不是 127.0.0.1。
为了解决这个问题,我在 netplan 中添加了正常 ip,现在一切都按预期运行。
network:
ethernets:
lo:
renderer: networkd
match:
name: lo
addresses:
- 127.0.0.1/8
- ::1/128
- 10.10.10.10/32
nameservers:
addresses:
- 10.10.10.10
我不知道这是否是在 Ubuntu 中执行此操作的最惯用方法,但它对我来说是有效的。