本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme
telnet命令可以测试TCP端口连通性,最近在家庭网络环境下发现telnet 任意 IP + 端口都是通的,这属实有点不正常。
问题复现
比如我telnet一个百度的IP:14.215.177.38
,然后随便指定了一个端口7890
,这个IP百度并未开放7890
端口,正常情况下是不可能连通的,但telnet测试结果却是正常的。
尝试更换一台Linux机器,结果也是正常连通。
于是使用WireShark抓包,可以看到TCP三次握手成功,但发生了重传,这就让人搞不明白了。
问题解决
主路由使用的爱快,感觉和路由有关系,于是去咨询了爱快的客服,得到的回答如下(给爱快的客服点个赞,响应及时并解决了问题)。
爱快给出的解释是“流控分流 - 协议分流 - 开启了增强分流”会导致部分功能失效,于是关闭“增强分流”后这个现象消失,问题得以解决。
但问题的根因依然没找到,去V2EX发帖求助,大部分给出的可能性是透明代理导致,因此猜测爱快的“增强分流”应该通过透明代理实现,流量全部劫持到代理上面了(未做验证)。
总结
如果你的网络情况也存在telnet任意IP + 端口都是连通的,不妨通过以下途径排查:
- 如果使用了爱快路由系统,可以检查“增强分流”是否开启,如果开启,可以将其关闭
- 检查内网设备是否使用了透明代理
- 如果任意IP邮件端口都是通的,检查是否开启了“火绒安全”的邮件防护