无法连接到任何本地主机连接

bad*_*ray 12 linux networking centos

我正在使用带有最新更新的 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...
Run Code Online (Sandbox Code Playgroud)

ssh

# 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
Run Code Online (Sandbox Code Playgroud)

它挂出超时。

与 telnet 相同,与连接到 irc 服务器相同。外部连接运行良好...

netstat -tpln

# 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            
Run Code Online (Sandbox Code Playgroud)

netstat -rn

# 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
Run Code Online (Sandbox Code Playgroud)

iptables

我已经清除了 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         
Run Code Online (Sandbox Code Playgroud)

环回配置

# 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
Run Code Online (Sandbox Code Playgroud)

关闭 SELinux 并没有带来任何改善。

ip 路由显示表本地

# 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 
Run Code Online (Sandbox Code Playgroud)

跟踪路由

# 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
Run Code Online (Sandbox Code Playgroud)

平 127.0.0.1

工作正常

# 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
Run Code Online (Sandbox Code Playgroud)

最奇怪的是,我可以毫无问题地从外部地址(例如,我从中进行 ssh 连接的计算机)连接到 ssh、nginx 服务器。

这发生在 ISP 重新启动我的服务器之后。可能有用的是,服务器经常更新而无需重新启动。

小智 6

我遇到了与您描述的完全相同的问题。我无法从本地连接到主机上的任何侦听端口,但可以在远程连接。

对我来说,解决方案是将 lo 接口重新打开,该接口由于某种原因关闭并且在启动时没有出现。

ifconfig lo up
Run Code Online (Sandbox Code Playgroud)

在重新启动界面并确认我可以看到lo界面后...

ifconfig -a
Run Code Online (Sandbox Code Playgroud)

我能够继续我的一天...... :)

我注意到在运行时ip a我没有看到 127.0.0.1 分配给 lo: 接口。这就是让我知道我也需要该界面运行的事实......


Flu*_*lup 5

根据ifconfig您发布的输出,您127.0.0.1在两个接口上设置了环回地址。

尝试

ip addr del 127.0.0.1/32 dev venet0
Run Code Online (Sandbox Code Playgroud)

并查看您的环回访问是否已恢复。