OpenSSL:socket:连接被拒绝 connect:errno=111

23

我正在尝试从客户端连接到一个Linux服务器,

openssl s_client -connect <IP of Server>:443
我收到以下错误信息:
socket: Connection refused connect:errno=111

我应该在哪里提及主机名? - user3345390
从10.188.100.159执行“openssl s_client -connect 10.188.102.92:443”。 - user3345390
@Khanna111GauravKhanna,那我向您道歉,请接受。我刚在审核中看到了这个问题,没有检查修订记录。 - Vogel612
请查看我的评论:如果Linux和iptables是唯一的防火墙,那么您可以定义规则允许连接。 - Khanna111
3个回答

30

使用任何工具检查服务器的端口。 例如,

 nmap <IP>

Starting Nmap 5.21 ( http://nmap.org ) at 2015-05-05 09:33 IST
Nmap scan report for <IP>
Host is up (0.00036s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  *****
139/tcp open  *****
443/tcp open  openssl
MAC Address: 18:03:73:DF:DC:62 (Unknown)

检查端口号是否处于打开状态。


@kayle 我遇到了完全相同的问题,但是我可以在我的列表中看到openssl。 - Bibek Sharma
2
这对于检测问题非常有用。也许提供一些修复的信息? - toraman

14

就像我在评论中提到的那样,缺少主机名。您需要在端口号之前提及它。

 $ openssl s_client -connect myHost.com:443

编辑: 现在你提到命令中有一个主机名,所以我们这方面没问题了。现在检查一下host/port是否被阻止了。要检查这个,可以使用nmap或者telnet或者任何其他端口扫描器

如果你可以ping / 连接到主机,但无法连接到特定端口上可用的服务器进程,则可能存在防火墙阻止访问。

该防火墙可能在主机上,如果iptables是防火墙(假设是Linux),则需要添加规则以允许连接。为了进行快速测试,可以禁用防火墙(不推荐)。或者将服务器进程运行在打开的端口上。


你能ping一下远程主机吗? - Khanna111
如果您可以通过ssh或其他方式访问远程主机,则意味着该端口被阻止,可能会导致您无法完全访问主机。在这两种情况下都存在防火墙。您需要配置它以允许连接。 - Khanna111

3

这与SSL无关。连接被拒绝意味着要么没有服务器,要么连接被防火墙阻止。在您的情况下(在您编辑之前),服务器也是错误的,即“:443”不是有效的服务器名称(缺少主机名)。


我已经使用tcpdump -i eth0 port 443检查了端口是否被防火墙阻止,结果显示它没有被阻止。 - user3345390
在这种情况下,连接被对等方拒绝。您无法使用tcpdump在系统上检查远程防火墙的状态。但是您应该能够看到TCP连接失败的情况。 - Steffen Ullrich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接