这是关于拒绝连接的规范问题
我们看到很多问题
当我尝试连接到系统时,我收到一条消息
拒绝连接
- 对于nginx而言,site-available与conf.d目录有什么不同的用法
- SAN,NAS和DAS有什么区别?
- 在雷击之后评估设备损坏 – 我是否应该计划更多?
- 如何检查Linux中以太网端口的物理状态?
- 为什么以太网电缆有8根电线?
为什么是这样 ?
注意 :此消息是您尝试解决的问题的症状。 了解信息的原因将最终导致你解决你的问题。
“拒绝连接”消息有两个主要原因:
没有进程正在倾听。
这是消息最常见的原因。 首先确保您正在尝试连接到正确的系统。 如果您接下来要确定这是否是问题,请在远程系统上运行netstat或ss 1,例如,如果您希望进程正在侦听端口22222
sudo netstat -tnlp | grep :22222
要么
ss -tnlp | grep :22222
对于OSX,一个合适的命令是
sudo netstat -tnlp tcp | grep '\.80 '
如果没有听,那么上面将不会产生输出。 如果你看到一些输出,然后确认这是你所期望的,然后看到下面的防火墙部分。
如果您无法访问远程系统并想在向相关pipe理员报告之前确认问题,则可以使用tcpdump(wireshark或类似的方法)。
当连接尝试到没有监听的IP:端口时,远程系统对初始SYN数据包的响应是一个标记为RST,ACK的数据包。 这将closures连接并导致连接被拒绝的消息,例如
$ 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] ,seq 1207858804,win 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:Flags [R.] ,seq 0,ack 1207858805,win 0,length 0
请注意,tcpdump使用一个。 来表示ACK标志。
端口被防火墙阻止
如果端口被防火墙阻止,并且防火墙已configuration为使用icmp-port-unreachable
进行响应,则也会导致连接拒绝消息。 再次,你可以看到这与tcpdump(或类似)
$ sudo tcpdump -n icmp
tcpdump:详细输出压缩,使用-v或-vv进行完整的协议解码侦听enp14s0,链接typesEN10MB(以太网),捕获大小262144字节13:03:24.149897 IP 192.0.2.1> 192.0.2.2:ICMP 192.0.2.1 tcp端口22222不可达,长度68
请注意,这也告诉我们阻止防火墙的位置。
因此,现在您知道是什么原因导致Connection refused消息,您应该采取适当的措施,例如联系防火墙pipe理员或调查过程不听的原因。
1其他工具可能可用。
对于我来说,在Debian 6上挤压它就像检查SSH服务一样简单:
sudo service ssh status
并没有发现任何东西存在(与消息ssh: unrecognized service
)只是安装服务 :
sudo apt-get install openssh-server
如果您没有获得SFTP连接,这也适用,因为SFTP是SSH的一个子集(而FTPS是FTP的一个子集)。
我的Centos Shorewall防火墙已经用完了磁盘空间。 令人困惑的是,一些网站,如YouTube和MS工作。 其他像cnn.com失败。 清理一些空间并重新启动服务器为我解决了这个问题。