如果在 CentOS 7.9 服务器上搭建邮件服务,或者需要使用 SMTP 发送邮件,发现 25 端口无法连接,通常需要检查服务器防火墙是否放行了 25 端口。
本文以 CentOS 7.9 为例,介绍如何通过 firewalld 放行 TCP 25 端口。
一、检查防火墙状态
首先执行:
firewall-cmd --state如果返回:
running说明防火墙正在运行。
二、放行 25 端口
执行以下命令:
firewall-cmd --zone=public --add-port=25/tcp --permanent看到:
success说明规则添加成功。
然后重新加载防火墙:
firewall-cmd --reload重载如果不生效,可以重启防火墙:
systemctl restart firewalld三、检查 25 端口是否放行
执行:
firewall-cmd --list-ports如果看到:
25/tcp说明 CentOS 防火墙已经放行 25 端口。
也可以使用:
firewall-cmd --query-port=25/tcp返回:
yes即表示 25 端口已经放行。
四、如果仍然无法连接
需要注意,防火墙放行 25 端口并不代表外部一定可以访问。
如果执行上述操作后,25 端口仍然无法使用,还需要检查:
- 邮件服务是否正在监听 25 端口
- 云服务器安全组是否放行 TCP 25
- 服务器商是否限制或封禁 25 端口
- 运营商或上游网络是否存在 SMTP 端口限制
可以使用以下命令检查服务器是否监听 25 端口:
ss -lntp | grep :25
如果能看到类似:
LISTEN 0 100 0.0.0.0:25
说明服务器上的服务正在监听 25 端口。
常用命令汇总
# 放行 25/TCP
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload
# 查看已放行端口
firewall-cmd --list-ports
# 检查 25 端口
firewall-cmd --query-port=25/tcp
# 检查 25 端口监听情况
ss -lntp | grep :25温馨提示:如果是云服务器,还需要同时检查云平台的安全组规则;如果服务商直接限制了 25 端口,仅修改 CentOS 防火墙规则无法解除限制。