Centos 6.5と最新のアップデートを使用しています。
私の問題は、ローカルサービスに接続しようとすると、いつでもハングすることです。
wget 127.0.0.1
--2014-03-11 12:43:42-- http://127.0.0.1/
Connecting to 127.0.0.1:80...
After a while timeout...
# ssh 127.0.0.1 -p 6060 -v
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 6060.
debug1: connect to address 127.0.0.1 port 6060: Connection timed out
ssh: connect to Host 127.0.0.1 port 6060: Connection timed out
そして、それはタイムアウトにたむろします。
Telnetと同じ、ircサーバーへの接続と同じ。外部接続は正常に動作しています...
# netstat -tpln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 589/sendmail
tcp 0 0 127.0.0.1:6060 0.0.0.0:* LISTEN 520/sshd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 619/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 478/sshd
tcp 0 0 ::1:6060 :::* LISTEN 520/sshd
tcp 0 0 :::22 :::* LISTEN 478/sshd
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 venet0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
私は運がなくてもiptablesをフラッシュアウトすることを認めました。 iptablesからの出力:
# iptables -nvL
Chain INPUT (policy ACCEPT 634 packets, 49819 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 517 packets, 47027 bytes)
pkts bytes target prot opt in out source destination
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope Host lo
inet6 ::1/128 scope Host
valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/void
inet 127.0.0.1/32 scope Host venet0
inet 176.122.224.115/32 brd 176.122.224.115 scope global venet0:0
SELinuxをオンにしても、何も改善されませんでした。
# ip route show table local
local 176.122.224.115 dev venet0 proto kernel scope Host src 176.122.224.115
broadcast 176.122.224.115 dev venet0 proto kernel scope link src 176.122.224.115
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope Host src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope Host src 127.0.0.1
# traceroute 127.0.0.1
traceroute to 127.0.0.1 (127.0.0.1), 30 Hops max, 60 byte packets
1 localhost.localdomain (127.0.0.1) 0.029 ms 0.014 ms 0.012 ms
大丈夫
# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.036 ms
それについての最も奇妙なことは、私がexternalアドレスからssh、nginxサーバーに問題なく接続できることです(例:sshを実行する元のコンピューターの場合)。
これは、ISPがサーバーを再起動した後に起こります。役に立つかもしれないことは、サーバーが再起動せずに頻繁に更新されたことです。
投稿したifconfig
出力によると、ループバックアドレス127.0.0.1
2つのインターフェイスに設定します。
試す
ip addr del 127.0.0.1/32 dev venet0
ループバックアクセスが復元されているかどうかを確認します。
あなたが説明しているのとまったく同じ問題がありました。ローカルからホストのリスニングポートに接続できませんでしたが、リモートの場合は接続できました。
私の解決策は、何らかの理由でダウンしていて起動時に起動しないloインターフェースをアップに戻すことでした。
ifconfig lo up
インターフェイスを元に戻し、lo
インターフェイスが表示されることを確認した後...
ifconfig -a
私は私の一日を始めることができました... :)
ip a
を実行すると、lo:インターフェースに127.0.0.1が割り当てられていないことに気づきました。これは、そのインターフェイスも実行する必要があるという事実に私を導きました...
Flupは正解ですが、この質問には別の理由があることがわかりました。別の答えが必要だと思います。サーバー、私はIPv6ソケットへのバインドを開始しました。他のアドレスを使用して接続する必要があります。
nc ::1 8080
または
curl http://[::1]:8080/