linux – 使用ssl但没有使用telnet的“无路由主机”

前端之家收集整理的这篇文章主要介绍了linux – 使用ssl但没有使用telnet的“无路由主机”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
从我的一台服务器连接到https站点时遇到一个奇怪的问题.

当我输入:

telnet puppet 8140

我看到了一个标准的telnet控制台,可以像往常一样与服务器通信:

Connected to athena.hidden.tld.
Escape character is '^]'.
GET / HTTP/1.1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Reason: You're speaking plain HTTP to an SSL-enabled server port.<br />
Instead use the HTTPS scheme to access this URL,please.<br />
<blockquote>Hint: <a href="https://athena.hidden.tld:8140/"><b>https://athena.hidden.tld:8140/</b></a></blockquote></p>
<hr>
<address>Apache/2.2.16 (Debian) Server at athena.hidden.tld Port 8140</address>
</body></html>
Connection closed by foreign host.

但是当我尝试使用ssl连接到同一主机和端口时:

openssl s_client -connect puppet:8140

它不起作用

connect: No route to host
connect:errno=113

我很迷惑.起初它听起来像防火墙问题,但这不可能,是吗?因为这也会阻止telnet连接.

作为防火墙我在两台服务器上使用ferm.
这些系统是debian squeeze vm-Box.

[编辑1]

即使我尝试直接连接IP地址:

openssl s_client -connect 198.51.100.1:8140 #address exchanged
connect: No route to host
connect:errno=113

用两个主机关闭防火墙

service ferm stop

也没有帮助.

但是,当我这样做

openssl s_client -connect localhost:8140

它在服务器机器上正常连接.

[编辑2]

如果我用telnet连接到IP,它也无法正常工作.

telnet 198.51.100.1 8140
Trying 198.51.100.1...
telnet: Unable to connect to remote host: No route to host

混乱可能来自IPv6.我的所有主机上都有IPv6.似乎telnet默认使用IPv6,这是有效的.
例如:

telnet -6 puppet 8140

工作,但

telnet -4 puppet 8140

不起作用.所以IPv4路由似乎有问题. openssl似乎只是(或默认情况下)使用IPv4,因此失败但telnet使用IPv6并成功.

解决方法

你能检查一下你是否可以ping目标主机吗? (IPv4)好像

>您的IPv4连接已损坏
>有AAAA和A记录
> telnet设法更喜欢IPv6
> openssl避免使用IPv6

这可能只是一个问题,沸腾到IPv4连接不起作用到目标主机.两台计算机上的IPv4路由都正常吗?

猜你在找的Linux相关文章