写了个简单的脚本测试了一下本地 ISP (某地电信)对个人用户屏蔽了哪些 TCP 端口。
测试方法:
- 设置本地路由器的防火墙默认的入站规则为 Reject,即用 ICMP 消息拒绝对未开放端口的连接。
- 找一台远程的机器(跨 ISP,防止出现两台机器在同一个防火墙区域的情况),使用 nc 依次连接 1-9999 端口,超时时间 1 秒左右。如果显示” Connection Refused “则表示这个端口是由本地路由器拒绝的,如果显示” Connection timed out “,则表示被 ISP 屏蔽了(这里有一个假设的前提是,ISP 屏蔽端口的方式是丢包)。 注意:可能会有误测,为了结果可靠就多测试几遍吧。
参考脚本: https://gist.github.com/vfreex/32b7de2e36422dbee94454afc762305e
经测试,楼主所在地的 ISP 屏蔽了以下 TCP 端口:
42
80
135
136
137
138
139
443
539
901
1023
1025
1068
1434
2745
3127
3128
3129
3130
3332
3333
4444
5554
5800
5900
6129
6176
6667
6669
8080
8998
9437
9995
9996