问题
在使用一个自定义端口 6000 提供网络服务时,总是无法访问。一开始没有留意具体的报错信息,觉得是不是服务程序没有打开端口,是不是路由器没有映射端口,是不是防火墙屏蔽了端口……,直到看到一行小字:ERR_UNSAFE_PORT
无法访问此网站
网址为 http://test:6000/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。
ERR_UNSAFE_PORT
用 IE 浏览器试了一下确实能正常打开,看来就是 Chrome 的问题了。查了一下资料,我用的这个 6000 端口确实是个特殊端口。看来不止 Chrome,Edge 也有同样的问题喽。Firefox 的端口略有不同,也有所限制。
浏览器的限制
Chrome 所限制的端口:
const int kRestrictedPorts[] = {
1, // tcpmux
7, // echo
9, // discard
11, // systat
13, // daytime
15, // netstat
17, // qotd
19, // chargen
20, // ftp data
21, // ftp access
22, // ssh
23, // telnet
25, // smtp
37, // time
42, // name
43, // nicname
53, // domain
69, // tftp
77, // priv-rjs
79, // finger
87, // ttylink
95, // supdup
101, // hostriame
102, // iso-tsap
103, // gppitnp
104, // acr-nema
109, // pop2
110, // pop3
111, // sunrpc
113, // auth
115, // sftp
117, // uucp-path
119, // nntp
123, // NTP
135, // loc-srv /epmap
137, // netbios
139, // netbios
143, // imap2
161, // snmp
179, // BGP
389, // ldap
427, // SLP (Also used by Apple Filing Protocol)
465, // smtp+ssl
512, // print / exec
513, // login
514, // shell
515, // printer
526, // tempo
530, // courier
531, // chat
532, // netnews
540, // uucp
548, // AFP (Apple Filing Protocol)
554, // rtsp
556, // remotefs
563, // nntp+ssl
587, // smtp (rfc6409)
601, // syslog-conn (rfc3195)
636, // ldap+ssl
989, // ftps-data
990, // ftps
993, // ldap+ssl
995, // pop3+ssl
1719, // h323gatestat
1720, // h323hostcall
1723, // pptp
2049, // nfs
3659, // apple-sasl / PasswordServer
4045, // lockd
5060, // sip
5061, // sips
6000, // X11
6566, // sane-port
6665, // Alternate IRC [Apple addition]
6666, // Alternate IRC [Apple addition]
6667, // Standard IRC [Apple addition]
6668, // Alternate IRC [Apple addition]
6669, // Alternate IRC [Apple addition]
6697, // IRC + TLS
10080, // Amanda
};
解除限制的方法
在浏览器快捷方式上右键打开属性,在目标中添加 -explicitly-allowed-ports=端口号
,如果有多个端口号则每个端口号间用半角逗号,
分割。
不过,我的建议是尽量不要使用这些端口号。毕竟浏览器限制这些端口的使用也是出于网络安全防范的目的,况且你的用户很可能不会按你的要求这样搞。