分享一个“关于浏览器非默认端口”的发现

2021-03-09 11:19:34 +08:00
 dier
今天同事让帮忙给新项目加个 web 端口,因为是本地测试环境,就顺着前面的端口号依次排,于是顺手监听了一个 87 号端口,结果发现浏览器死活访问不到。一路排查服务状态、端口监听情况、防火墙。都没发现问题。直到怀疑新代码有问题,把一个正常项目的代码直接复制过来后发现仍然访问不到。一看浏览器错误代码:ERR_UNSAFE_PORT
搜索了一下才发现原来 chrome 将部分端口标为非安全端口,导致服务不能访问。

以前只知道 1024 以内的端口大部分有明确服务使用,尽量不要随意占用。想着只有 nginx 不至于会出现端口号被占用的情况。没想到直接让浏览器给拦住了。。。。

不知道我是不是最后一个知道的😂🤦‍♂️
1401 次点击
所在节点    分享发现
6 条回复
walpurgis
2021-03-09 12:00:00 +08:00
第一次是 6000 撞到的这个错误的
端口列表写死在源码里的
https://chromium.googlesource.com/chromium/src.git/+/refs/heads/master/net/base/port_util.cc#63
leeyuzhe
2021-03-09 13:40:53 +08:00
同 6000,当时起了几个服务 6000 、7000 、8000,唯独 6000 的死活访问不了
ffLoveJava
2021-03-09 13:48:00 +08:00
真第一次知道 为什么啊 即便这些端口有特殊作用, 但我就像让他做 web 的 server 端口 浏览器为啥不行啊
dier
2021-03-09 14:03:38 +08:00
@ffLoveJava 我猜应该是防止故意用这些端口进行钓鱼?毕竟这些端口被原本的服务使用时是可以通过浏览器访问的,比如 FTP 的 21 号端口,如果用 nginx 监听时浏览器就访问不了,用 FTP 监听时,浏览器就能正常访问
no1xsyzy
2021-03-09 14:17:20 +08:00
@ffLoveJava 看 #1 的注释……
估计是避免混乱的链接尝试损坏一些设施。
比如,IRC + TLS,假如我知道一个 IRC 地址,我把它当作 <img src="https://example.com:6697/foo" /> 标签插进我的网页、或者发在其他地方的内嵌图片里,所有人访问网页时就会 GET /foo 就直接打进这个 IRC 里去形成 spam
iminto
2021-03-10 10:42:40 +08:00
2021 年 1 月,谷歌又阻止了对另外 7 个端口的 HTTP 、HTTPS 和 FTP 访问,包括 69 、137 、161 、1719 、1720 、1723 和 6566 端口
Chrome 浏览器将阻止浏览器对 TCP 554 端口的访问,以防止利用 NAT Slipstreaming 2.0 漏洞的攻击行为。
谷歌和 Safari 开发者也在讨论屏蔽 10080 端口,Firefox 已经屏蔽了这一端口

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/759898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX