常用端口号对照表
很多人配防火墙规则时,常用看到一条“允许 443”就放行了,端口问他为什么不是号对 8443,答不上来。照表端口号这东西,常用背下来没用,端口理解它为什么是号对这个数才有用。IANA 把 0 到 1023 划成“知名端口”,照表这个区间不是常用随便定的——Unix 系统里,绑定 1024 以下的端口端口需要 root 权限。这条规则至今还在用,号对也是照表为什么普通用户起的服务默认监听 8080 而不是 80。 先看几个每天都会碰到的常用。80 是端口 HTTP,443 是号对 HTTPS,这俩不用多说。22 是 SSH,运维的命根子。我第一次自己搭服务器,把 SSH 端口从 22 改成 2222,以为能躲过扫描,结果日志里爆破请求确实少了一大半——但后来发现,那只是因为扫描器默认只扫 22,针对性扫描照样能找到。改端口是降噪,不是安全措施。 21 是 FTP 的控制端口,20 是数据端口。这个设计现在看很别扭:控制连接一直开着,数据连接每次传输临时建立。主动模式下服务器从 20 端口连客户端,客户端防火墙基本都会拦。所以后来有了被动模式,服务器开一个随机高位端口等客户端来连。企业网络里 FTP 经常配不通,八成卡在这儿。 25 是 SMTP,发邮件用的。但你现在用云服务器起个邮件服务,监听 25,大概率发不出去——阿里云、腾讯云、AWS 默认封禁 25 端口的出站流量。想发邮件得走 465(SMTPS)或者 587(提交端口)。这个坑我踩过,折腾了一下午查日志,最后发现是云厂商在网关层面就拦了,跟本机配置没半点关系。 53 是 DNS,UDP 和 TCP 都用。查询走 UDP,区域传送走 TCP。有人问为什么 DNS 查询不用 TCP——早年是为了省资源,UDP 无连接,开销小。但现在 DNS 响应越来越大,UDP 装不下就截断,客户端再改用 TCP 重试。所以只放 UDP 53 不放 TCP 53,偶尔会遇到解析失败,尤其是 DNSSEC 场景。 3306 是 MySQL,6379 是 Redis,27017 是 MongoDB。这三个端口出现在公网 IP 上,基本等于把数据库密码写在门口。我扫过一些暴露的 Redis,连密码都没设,直接 3389 是 Windows 远程桌面。这个端口被爆破的程度比 22 还夸张。我见过一台机器,开放 3389 三天,日志里累计几十万次登录失败。后来换成 AnyDesk 或者加个 VPN 跳板,清净多了。 8080 是 Tomcat 默认端口,也是各种代理和备用 HTTP 服务的常用选择。8443 对应 HTTPS 的备用端口。这些高位端口没有特权限制,普通用户就能监听,开发环境里到处都是。 端口号本身没有魔法。它只是一个 16 位的数字,范围 0 到 65535。真正重要的是:谁在监听、监听在哪个地址、防火墙放不放行、以及这个服务有没有必要暴露出去。下次看到一条端口规则,别只记数字,想一下它背后跑的是什么进程,谁需要连它,从哪儿连。这三个问题答清楚了,端口表就不用背了。keys * 就能拿走全部数据。Redis 作者后来加了 protected-mode,默认只监听 127.0.0.1,但很多人部署时图省事改成 0.0.0.0,再把 bind 注释掉,等于裸奔。
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-