独立服务器端口有哪些?简单说,常见的有用于远程管理的22(SSH)、Web服务的80(HTTP)和443(HTTPS)、数据库的3306(MySQL)、缓存的6379(Redis)等,具体要放行哪些取决于你的业务场景。
现在的独立服务器不像物理机房时代那样裸奔上网,云服务商一般都会在控制台提供安全组,服务器内部还有防火墙,两层都得管,才能把端口管明白,下面从协议、常用端口、配置方法、故障排查几个方面拆开讲。
独立服务器端口怎么开放?先分清TCP和UDP协议
很多第一次租独立服务器的人,会在控制台看到“TCP”和“UDP”两个选项,直接懵掉,不用慌,记住一点:绝大多数业务都用TCP,因为它可靠,能保证数据按顺序到达,UDP常用于视频直播、DNS查询、游戏语音这类允许丢点的场景。
TCP和UDP到底差在哪
简单打个比方:TCP像寄挂号信,对方收到要回执,没收到就重发;UDP像发广播,只管往外扔,不管别人听没听到,所以你的Web网站、数据库连接、远程桌面,全部走TCP,如果你不确定某个端口用哪种协议,默认选TCP通常没错,但像DNS(53)这种就得同时放行TCP和UDP。
一份独立服务器常用端口对照表
下表根据行业共识整理,覆盖了绝大多数建站和运维场景。
| 端口号 | 服务名称 | 协议 | 典型用途 |
|---|---|---|---|
| 20/21 | FTP | TCP | 文件传输,现在不如SFTP常用 |
| 22 | SSH | TCP | Linux远程管理,必开但建议改端口 |
| 23 | Telnet | TCP | 明文远程管理,极不安全,别开 |
| 25 | SMTP | TCP | 发邮件,容易被运营商限制 |
| 53 | DNS | TCP/UDP | 域名解析,自建DNS时才用 |
| 80 | HTTP | TCP | 网站访问,必须放行 |
| 443 | HTTPS | TCP | 加密网站访问,必须放行 |
| 3306 | MySQL | TCP | 数据库远程连接,建议只允许内网访问 |
| 6379 | Redis | TCP | 缓存服务,绝对不要暴露公网 |
| 3389 | RDP | TCP | Windows远程桌面 |
注意:端口本身没有绝对安全或不安全,决定安全的是你有没有做访问控制,比如3306端口,如果直接暴露公网,暴力破解会来得非常快。
独立服务器安全组和系统防火墙:端口放行顺序
新买的独立服务器,你会发现端口怎么都ping不通,这时候别急着怪服务器,先检查云控制台的安全组,安全组是云厂商的虚拟防火墙,位于物理服务器之外,而系统防火墙是服务器内部的操作系统服务,两者都放行才能通。
国内独立服务器价格与端口配置有关系吗
端口数量本身不单独收费,但不同配置的机器默认带宽和防护能力会影响价格,比如一台4核8G的独立服务器,如果带宽是5M,那么开放80端口做网站是够用的;如果你想跑视频流或者大文件下载,带宽升级的费用可能比机器本身还高。挑选独立服务器时,端口服务能力(即带宽和规则数量)比端口编号更重要。
云服务器和独立服务器端口管理差异
云服务器通常在控制台有“安全组”规则,可以批量放行端口;独立服务器(物理机)则更依赖操作系统防火墙,行业共识认为:直接买的物理服务器,一定要自己装好firewalld或iptables,否则裸奔风险很高,而云服务器因为安全组在外部,即使系统防火墙坏了,还有一层保护。
实际配置时可以这样记:
- 登录控制台,找到“实例”或“网络安全”的入口;
- 创建入方向规则,输入端口号,选择协议;
- 源地址建议填你的固定公网IP,别填
0.0.0/0,尤其是数据库和SSH端口。
独立服务器端口安全配置:从改默认端口开始
默认端口人人皆知,扫描器也就专打这些口,对于22端口,恶意扫描几乎是无时无刻不在。最简单有效的方法就是把SSH端口从22改成别的,比如22026或5位数高位端口,这样能过滤掉大部分无脑扫描。
修改SSH端口的具体操作
以CentOS/Rocky Linux为例,操作步骤如下:
- 编辑配置文件:
vim /etc/ssh/sshd_config - 找到
#Port 22,去掉注释,改成Port 22026 - 保存退出,执行
systemctl restart sshd - 在云安全组中放行新端口,并删除旧的22放行规则
改完后测试连接:ssh root@你的IP -p 22026,如果连不上,先别关旧终端,再检查防火墙状态:
firewall-cmd --permanent --add-port=22026/tcp firewall-cmd --reload
注意:改端口前务必确认SELinux不会拦截,否则可能造成重启后无法登录,稳妥做法是先添加新端口,再移除旧端口。
用防火墙限制端口访问来源IP
除了改端口,限制来源IP更好使,比如Mysql端口只允许你的应用服务器IP访问:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.5" port protocol="tcp" port="3306" accept' firewall-cmd --reload
这样外部任何IP都无法直连数据库,即使端口开着也没用。
端口探测与监控
经常检查端口监听状态也很重要,用命令看看:
netstat -tulnp
这个命令会输出所有监听中的端口和对应进程,如果发现没见过的进程在占用可疑端口,用lsof -i:端口号看详情,再决定是否清掉,据不完全统计,被入侵的独立服务器大多就是因为多余端口暴露在公网。
独立服务器端口不通怎么排查
遇到端口不通的情况,很多朋友第一反应是服务器坏了,其实多数时候是规则没放行,排查顺序要从外到内。
先查云安全组还是系统防火墙
先确认云控制台的安全组有没有放行该端口,再检查服务器内防火墙状态,如果你能通过厂商VNC登录,说明网络链路没问题,那问题大概率出在系统防火墙或服务本身。
具体操作顺序:
- 在本地用
telnet 服务器IP 端口测试,如果提示连接超时,说明中间链路堵住了; -
登录服务器,执行
systemctl status firewalld查看防火墙状态; - 执行
firewall-cmd --list-all查看已放行端口列表; - 如果服务没启动,检查进程:
ps aux | grep 服务名。
用netstat和telnet验证端口状态
在服务器上执行:
netstat -tulnp | grep 你要查的端口
如果能看到0.0.0:端口或::端口,说明服务在监听,如果显示0.0.1:端口,说明只监听了本机,需要修改服务配置里的bind地址。
然后在本地电脑执行:
telnet 服务器公网IP 端口
连不上时,会返回“无法打开到主机的连接”,这时候先别急着改服务,回想一下安全组是否只放行了某个内网IP,这种情况在国内服务器上特别常见:安全组规则写的是私网网段,而你是从公网连的,自然不通。
Q&A:独立服务器端口有哪些常见疑问
问:独立服务器开放端口会不会增加被攻击风险?
会,但风险大小取决于你怎么开放,只要做到两点最小化开放、限制来源IP,端口开放本身并不可怕,关闭不需要的服务,比单纯关防火墙更重要,比如你的服务器不跑邮件服务,那25和110端口就别开。
问:22端口总是被扫描,改了端口就绝对安全了吗?
改端口只是降低被动扫描命中率,不等于安全,端口扫描是常态,关键是你的认证方式,建议同时禁用root密码登录,改用密钥认证,具体操作:在sshd_config中设置PermitRootLogin prohibit-password,然后把公钥写入~/.ssh/authorized_keys,这样即使端口被猜到,没有私钥也进不来。
问:为什么80端口通了,但443端口还是打不开?
最常见的答案是安全组里只放行了80而没放行443,或者你只监听了80端口,检查一下你的Nginx配置文件,确认listen 443 ssl;存在,并且证书路径无误,同时确认防火墙命令放行了443/tcp,很多情况下,443端口不通就是因为云安全组漏加了这一条,telnet验证一下就能定位问题。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/695210.html





