在我的笔记本电脑上我这样做:
openssl s_client -connect w00d8dd4.kasserver.com:465
我可以看到连接正常。我还可以执行以下操作:
telnet w00d8dd4.kasserver.com 465
也没问题。
现在,如果我登录到我的云服务器 - 并运行与上面相同的命令 - 例如:
openssl s_client -connect w00d8dd4.kasserver.com:465
然后就没有输出,几秒钟后什么也没有发生。
但是,如果我这样做:
openssl s_client -connect kyle.com:443 -showcerts
它立即连接。我还用 -tls1 和 -debug 开关测试过。没有区别。
我认为这可能是由于某些传出连接被防火墙阻止。我该如何调试?
我见过这个问题- 但我找不到合适的指南。我已经安装了 ca-certificates (20211016ubuntu0.22.04.1)。云服务器正在运行 UBuntu :
uname -a 说:
Linux myStep-ubuntu-4gb-nbg1-2 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
更新
我已经tcptraceroute -p 465 w00d8dd4.kasserver.com
从云服务器尝试过了。它找到了一条到目标的路线,结果是:
1 172.31.1.1 6.736 ms 5.755 ms 5.271 ms
2 17332.your-cloud.host (49.12.141.110) 0.447 ms 0.311 ms 0.280 ms
3 * * *
4 static.173.0.47.78.clients.your-server.de (78.47.0.173) 1.230 ms 0.834 ms 0.914 ms
5 spine12.cloud1.nbg1.hetzner.com (78.47.3.45) 16.399 ms 0.911 ms 1.044 ms
6 213-239-239-141.clients.your-server.de (213.239.239.141) 1.003 ms 0.515 ms 0.701 ms
7 core0.fra.hetzner.com (213.239.252.25) 3.715 ms 3.788 ms 3.842 ms
8 ipv4.de-cix.fra.de.as34788.all-inkl.com (80.81.192.119) 21.491 ms 21.468 ms 21.351 ms
9 dd5114.kasserver.com (85.13.130.50) [open] 21.720 ms 21.228 ms 21.275 ms
答案1
如果你在自己的服务器上测试这个,数据包捕获是一个很好的开始。它告诉您目标系统(必须执行捕获)是否确实正在接收数据包。
tcpdump
和tshark
是两个通过 SSH 工作的常用工具(Wireshark 是图形化工具)。例如,要捕获来自和/或到端口 465 的所有数据包,请使用:
tcpdump -n -i eth0 "port 465"
tshark -n -i eth0 -f "port 465"
您还可以在源系统上运行相同的捕获 - 如果您看到某些数据包离开源机器但未到达目标,这直接意味着沿途的某些东西阻止了它们。
同时,如果目标服务器做如果服务器在其端口 465 上收到 TCP SYN 数据包,但没有返回任何内容,则可能是服务器自己的防火墙阻止了该数据包。(在目标系统的防火墙(如 iptables)有机会丢弃数据包之前,就会捕获收到的数据包 - 当然,在所有中间防火墙之后。)