Я испытываю трудности с системой, которая работала вчера. Я не изменился очень - если что-либо с тех пор. Однако теперь каждый раз, когда я пытаюсь запустить что-то, что использует 127.0.0.1 в качестве его IP-адреса, я получаю ошибки. Например:
user@server:~# tcpserver 127.0.0.1 8080 echo
tcpserver: fatal: unable to bind: address not available
И приложение Java (вещь, которую я действительно пытаюсь запустить) бросает эту ошибку:
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)
те же tcpserver называют работы, если я использую 0.0.0.0 или IP-адрес, присвоенный eth0, но не при определении 127.0.0.1.
Я рыл через все журналы, и я не вижу ничего, что выскакивает во мне. ifconfig -a
вывод ниже в случае, если это полезно. Я попробовал ifdown lo; ifup lo
и даже ifup lo --force
- ничего подобного, кажется, не имеет никакого значения все же. Я также перезагрузил сервер несколько раз без удачи. Я также попробовал rm -rf /var/run/network/*
сопровождаемый другой перезагрузкой (на https://serverfault.com/a/672217/262491), но никакая удача там также. netstat -ano
шоу ничто слушающее на порте 8080 и ничто слушающее на 127.0.0.1.
user@server:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr <redacted>
inet addr:10.252.2.169 Bcast:10.252.2.255 Mask:255.255.255.0
inet6 addr: <redacted>/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9001 Metric:1
RX packets:18970 errors:0 dropped:0 overruns:0 frame:0
TX packets:17158 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4514198 (4.5 MB) TX bytes:4194402 (4.1 MB)
lo Link encap:Local Loopback
LOOPBACK MTU:65536 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:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/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
# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# NOTE: the primary ethernet device is defined in
# /etc/network/interfaces.d/eth0
# See LP: #1262951
source /etc/network/interfaces.d/*.cfg
Я сравнил ifconfig выше с рабочей системой, и похоже, что первопричина этой ошибки может состоять в том, что петлевой адаптер, кажется, не имеет 127.0.0.1 присвоенных. Таким образом, вопрос становится - Как это возможно? и Как я фиксирую его?
Это, как известно по слухам, известная проблема с AMI AWS человечности 14.04 (~May 2017). Фиксация должна перезапустить, пока Вы не становитесь удачливыми или вручную присваиваете IP-адрес через что-то как: ifup lo; ip addr add 127.0.0.1/8 dev lo
, когда это происходит.