为什么 openssl 仅适用于内部 IP?

为什么 openssl 仅适用于内部 IP?

我想调试 SSL 连接,因此我按照以下答案进行操作问题并想运行第一个测试:

# openssl s_client -connect SERVER_IP:PORT -state -debug

并得到以下输出:

socket: Connection refused
connect:errno=111

我查了一下,发现它与 SSL 无关,这意味着服务器没有运行,或者端口被防火墙阻止。我登录到服务器并检查它是否确实正在运行,并且端口已打开以侦听所有 IP 地址:

# netstat -plan | grep PORT
tcp        0      0 0.0.0.0:PORT               0.0.0.0:*         LISTEN      PID/java

有趣的是:当我使用服务器的内部 IP 运行上述 openssl 命令时,我得到了预期的输出。

无论我尝试从客户端还是从服务器本身连接到服务器,行为都是相同的。

我将端口添加到了 iptables。它们现在的样子如下:

# iptables -L -v | grep PORT
40  4252 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:PORT
0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:PORT

为什么我无法使用外部IP连接服务器,但使用内部IP却可以?

编辑:我的所有iptables规则都有ACCEPT关键字-该命令iptables -L -v | grep REJECT没有输出。

相关内容