服务器刚拿到手,SSH 上去顺手敲一条 ss -lntp,屏幕上哗啦一列:22、80、443、3306、8888 全在。很多人第一反应是把不认识的端口挨个关掉——方向不算错,顺序错了。端口不是按“你认不认识”决定去留的,是按“谁在监听、监听给谁”决定的。开放端口的分类说白了就三个筐:给外面人用的、给自己人用的、谁都不该用的。三个筐里只有最后一个真需要你动手;前两个乱关,轻则自己进不去,重则站点直接白屏,还得半夜爬起来救。

开放端口的分类,按“谁在听”来切才靠谱
分类方式有很多种。教材上按号段分:1–1023 是知名端口,1024 以上是动态端口;也按 TCP、UDP 分。这些分类考试有用,对你决定关不关没半点帮助。真要看的是 ss 输出里 Local Address:Port 那一列——监听在 127.0.0.1 的,公网根本够不着,你关它纯属给自己找事;监听在 0.0.0.0 或者具体公网 IP 的,才是暴露面。所以下面这三类,我按“暴露给谁”来切。
第一类:对外服务端口,动了就是自断门户
80 和 443 是老熟人,Nginx、Apache 都趴在这两个口上。还有你现在跑业务的真实端口,比如某些程序默认走 8080。这类端口关掉,等于把大门砌死——这不叫安全,叫自断门户。它真正的风险不在“开着”,在“开着的服务是不是带着漏洞、是不是几年没打过补丁”。与其折腾换端口,不如把证书、反代、WAF 和程序本身的版本管好。顺便说一句,把 80 挪到 8080 这种操作我劝你别干:一部分企业网和运营商侧的策略会拦非标端口,你自己半年后也记不住哪个是哪个。
22、3389、面板自带的 8888、Webmin 这些属于第二类。它们的矛盾点不是“该不该开”,是“开给谁”。做法很朴素:安全组里把源 IP 收到自己的办公段或者固定 IP;SSH 改成密钥登录、关掉密码认证;面板地址别用默认路径;再装个 fail2ban 之类的顶一下爆破。做不做这些,差别很大,比你在那儿纠结要不要关端口有用得多。远程办公、临时出差的,就临时加一条规则,用完删掉。
第三类:本机监听和遗留调试口,这类才真该关
数据库和缓存的默认端口是重灾区:MySQL 3306、Redis 6379、Memcached 11211、Elasticsearch 9200、MongoDB 27017。装完默认配置就往 0.0.0.0 上摊着,密码还是空的或者弱口令,扫描器满世界在扫这几个号。这类东西本来就只该在 127.0.0.1 上给本机的 web 程序用;真要让另一台机器连,绑内网 IP,再在安全组里把内网段放进来,别图省事。所谓“三类里只有一类真该关”,说的就是这一筐——严格讲不是关,是“收”:把监听地址从 0.0.0.0 收回到 127.0.0.1,端口对外自然就没了。剩下那些早年测试脚本、临时开的调试口、装完忘了删的组件,才是直接关掉完事。
查端口别只看防火墙,三层要分开查
这里有个常见混淆,得拆成三层:进程有没有在监听(ss -lntp)、本机防火墙放不放(iptables、firewalld、ufw)、云厂商安全组放不放。三层全放行,才叫真对公网开放。有人只改了 firewalld 就以为关掉了,云安全组那边还留着,外网照样能连;反过来也常见——安全组关了,本机还监听在 0.0.0.0,某天换机器、加块网卡,就又露出去了。ss -lntp 输出里看 State 是 LISTEN 的行,Local Address 那列最关键;老机器没装 iproute2,就用 netstat -tunlp 顶一下。
顺序千万别反过来。改 SSH 端口这种操作,先在安全组放行新端口、开个新会话验证能登进去,再去动旧端口和配置文件。手写 iptables 规则的时候,忘了放行已建立连接(-m state –state ESTABLISHED,RELATED)那一条,回车下去当前会话就断,剩下的只能去控制台开 VNC 救。云主机一般都有救援模式或者 web 终端,动手之前先确认它在哪儿、能不能进——这个比规则本身重要。
关完怎么验证才算数
关完不算完,得从外面验。本机测自己没意义,你在另一台机器上 nmap -Pn 扫一下那个 IP,或者偷懒用 telnet ip 端口 也行。返回 connection refused,说明确实没在监听;返回 filtered 或者干脆超时,多半是防火墙、安全组挡住了。这两种结果的含义不一样,别混着理解,不然你以为关上了,其实只是被拦了一道。
所以真不用把 ss 那一屏端口当敌人挨个砍。先分筐:对外服务那一筐,管好版本和证书;管理入口那一筐,收源 IP、换密钥登录;只有本机监听和遗留调试口那一筐,才值得你动手关或者收回去。动手前留条后路,动完从外网验一遍——三步走完,比背一堆“必须关闭的危险端口”清单实在得多。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!