这里有一个非常奇怪的问题......
OS X 中内置的 telnet 客户端给了我一些奇怪的结果。我通常使用它来测试是否可以建立 TCP 连接:telnet google.com 80
如果成功,您应该期望:
正在尝试 74.125.237.195... 已连接到 google.com。 转义字符是‘^]’。
从那里您可以发送 HTTP 消息,或执行任何您想做的事情。
我所看到的让我感到十分困惑的是,无论它是否真的能够连接到服务器,连接都已经连接上了。
例如。
mac:~ 用户$ telnet 1.2.3.4 12345 尝试 1.2.3.4... 连接到 1.2.3.4。 转义字符是‘^]’。
1.2.3.4 显然不是真正的服务器,而且肯定没有在端口 12345 上监听的服务。
Wireshark 捕获确认没有发生任何奇怪的事情。我看到 TCP syn 在 12345 上转到 1.2.3.4,但没有返回任何响应。
注意:当我写这个问题时,我找到了答案,所以我会很快发布它。
答案1
Sophos Anti-Virus 导致了此问题。
Sophos 的 Web Protection 功能似乎使其通过自身代理所有 TCP 连接,因此无论目标服务器是否可用,都可以实现即时连接。
我关闭了两个 Web 保护设置,奇怪的行为就停止了。
如果其他人在 Mac/Windows 上遇到此问题...请检查您是否安装了启用了网络过滤/保护的 AV。