注:此消息是您要解决的问题的症状。了解消息的原因最终将引导您解决问题。
消息“连接被拒绝”有两个主要原因:
没有进程在监听。
到目前为止,这是发出此消息的最常见原因。首先,请确保您尝试连接到正确的系统。如果然后确定这是问题所在,请在远程系统上运行 netstat 或 ss1个 例如如果您希望某个进程在端口22222上进行侦听
Sudo netstat -tnlp | grep :22222
要么
ss -tnlp | grep :22222
对于OSX,合适的命令是
Sudo netstat -tnlp tcp | grep '\.80 '
如果什么也没听,那么上面将不会产生任何输出。如果看到一些输出,请确认它是您期望的,然后请参阅下面的防火墙部分。
如果您无权访问远程系统,并且想在将问题报告给相关管理员之前确认问题,则可以使用tcpdump(wireshark或类似工具)。
当尝试连接到没有监听任何内容的IP:port时,从远程系统到初始SYN数据包的响应是带有标志RST,ACK的数据包。这将关闭连接并导致出现连接被拒绝的消息,例如.
$ Sudo tcpdump -n主机192.0.2.1和端口22222
tcpdump:禁止详细输出,请使用-v或-vv进行完整协议解码
收听enp14s0,链接类型为EN10MB(以太网),捕获大小为262144字节
12:31:27.013976 IP 192.0.2.2.34390> 192.0.2.1.22222:标志[S],顺序1207858804,获胜29200,选项[mss 1460,sackOK,TS val 15306344 ecr 0,nop,wscale 7],长度0
12:31:27.020162 IP 192.0.2.1.22222> 192.0.2.2.34390:标志[R。],seq 0, ack 1207858805,赢0,长度0
注意tcpdump使用。到 代表ACK 标志。
端口被防火墙阻止
如果端口被防火墙阻止,并且防火墙已配置为以icmp-port-unreachable
响应,这还将导致连接被拒绝的消息。再次,您可以使用tcpdump(或类似工具)查看此内容
$ Sudo tcpdump -n icmp
tcpdump:禁止详细输出,请使用-v或-vv进行完整协议解码
侦听enp14s0,链接类型EN10MB(以太网),捕获大小262144字节13:03:24.149897 IP 192.0.2.1> 192.0.2.2:ICMP 192.0.2.1 tcp端口22222无法访问,长度68
请注意,这还告诉我们阻止防火墙的位置。
因此,现在您知道导致“连接被拒绝”消息的原因是,您应该采取适当的措施,例如请与防火墙管理员联系或调查该进程未侦听的原因。
1个 其他工具也可能可用。
我的Centos Shorewall防火墙磁盘空间不足。令人困惑的是,某些网站(例如youtube和MS)可以正常工作。其他诸如cnn.com失败。清除一些空间并重新启动服务器对我来说解决了这个问题。