CentOS7 firewalld开放80、443端口永久生效命令

CentOS 7 默认使用 firewalld 作为防火墙管理工具。很多新手搭建网站后发现外网访问不了,90% 都是因为 80、443 端口没开放。下面是完整的操作步骤,照抄就能用。

1. 先确认防火墙状态

systemctl status firewalld

如果显示 active (running) 说明防火墙正在运行,需要继续下面的操作。如果是 inactive 那就是防火墙没开,问题不在这里。

2. 开放 80 端口(HTTP)

firewall-cmd --zone=public --add-port=80/tcp --permanent

参数说明:

  • --zone=public:作用域为公共区域
  • --add-port=80/tcp:开放 80 端口,TCP 协议
  • --permanent:永久生效,不加这个重启服务器就失效了

3. 开放 443 端口(HTTPS)

firewall-cmd --zone=public --add-port=443/tcp --permanent

4. 一次性开放多个端口

如果需要同时开放多个端口,可以一条命令搞定:

firewall-cmd --zone=public --add-port=80/tcp --add-port=443/tcp --permanent

5. 重载防火墙使配置生效

⚠️ 重点:开放端口后必须重载,否则不生效!

firewall-cmd --reload

6. 查看已开放的端口

确认一下端口有没有真正开放成功:

firewall-cmd --list-ports

正常会输出类似:

80/tcp 443/tcp

7. 常用其他端口开放命令

SSH 端口(默认22,建议改成别的):

firewall-cmd --zone=public --add-port=22/tcp --permanent

MySQL 端口(如果需要远程连接数据库):

firewall-cmd --zone=public --add-port=3306/tcp --permanent

Redis 端口:

firewall-cmd --zone=public --add-port=6379/tcp --permanent

8. 移除/关闭已开放的端口

如果某个端口不需要了,想关掉:

firewall-cmd --zone=public --remove-port=8080/tcp --permanent
firewall-cmd --reload

常见坑

  1. 加了 --permanent 还是不生效?
    忘记 firewall-cmd --reload 了。永久配置写入后必须重载才会加载到运行时。

  2. 端口开放了还是访问不了?
    检查云服务商的安全组(阿里云/腾讯云/华为云都有这个东西),防火墙和安全组是两层,都要开。

  3. firewalld 命令找不到?
    CentOS 7 最小化安装可能没装,执行 yum install firewalld -y 安装。

  4. 临时开放端口(重启就失效)
    去掉 --permanent 参数就是临时开放,重启或 reload 后自动关闭。


遇到服务器、Nginx、MySQL 报错,可以加微信远程协助排查问题。


emer 发布于  2026-10-4 19:22 

Linux 防火墙配置技巧

Linux 防火墙配置技巧

服务器安全第一步就是配好防火墙,只开需要的端口,其他全关。

1. firewalld(CentOS 7+ 默认)

# 查看状态
firewall-cmd --state

# 查看已开放端口
firewall-cmd --list-ports

# 开放端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp

# 开放多个端口
firewall-cmd --permanent --add-port=8000-9000/tcp

# 开放指定 IP 访问
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port protocol='tcp' port=3306 accept"

# 重载配置(必须重载才生效)
firewall-cmd --reload

# 删除端口
firewall-cmd --permanent --remove-port=8080/tcp

2. ufw(Ubuntu 默认)

# 查看状态
ufw status

# 开启防火墙
ufw enable

# 允许 SSH
ufw allow 22

# 允许 80 和 443
ufw allow 80
ufw allow 443

# 允许指定 IP
ufw allow from 192.168.1.100 to any port 3306

# 拒绝某个 IP
ufw deny from 1.2.3.4

# 删除规则
ufw delete allow 8080

3. iptables(经典)

# 查看规则
iptables -L -n

# 允许 22 端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许 80 端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 默认拒绝其他
iptables -P INPUT DROP

# 保存规则(CentOS)
service iptables save

4. 安全建议

  • 只开必要端口:SSH、HTTP、HTTPS,其他全关
  • SSH 改端口:不要用默认 22,改成其他端口
  • 限制 SSH 登录 IP:只允许你的 IP 登录 SSH
  • 数据库不对外暴露:MySQL、Redis 只允许本地访问
  • 定期查看日志:/var/log/secure 看有没有暴力破解

5. 常用端口速查

  • 22:SSH
  • 80:HTTP
  • 443:HTTPS
  • 3306:MySQL
  • 6379:Redis
  • 8080:应用端口

总结

Linux 防火墙核心:

  • CentOS 用 firewalld
  • Ubuntu 用 ufw
  • 只开必要端口
  • 数据库不对外暴露
  • SSH 限制 IP 访问

配好防火墙,服务器安全提升一大截。


emer 发布于  2026-10-4 10:52 

Linux 服务器安全加固:10个必须做的基础配置

前言

刚装完的 Linux 服务器就像没锁门的房子,任何人都能进来。本文整理了 10 个最基础但最重要的安全加固配置,帮你把门锁上。

1. 修改 SSH 端口,禁止 root 登录

默认 22 端口是黑客扫描的首选目标,改个端口能挡掉 90% 的自动扫描。

# 编辑 sshd 配置
vi /etc/ssh/sshd_config

# 修改端口
Port 22222

# 禁止 root 登录
PermitRootLogin no

# 重启 sshd
systemctl restart sshd

注意:改完端口后,记得在防火墙和安全组里放行新端口,否则你自己也进不去了。

2. 使用 SSH 密钥登录,禁用密码登录

密码再复杂也扛不住暴力破解,密钥登录才是正道。

# 本地生成密钥对(在你自己的电脑上执行)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 把公钥传到服务器
ssh-copy-id -p 22222 user@your_server_ip

# 服务器上禁用密码登录
vi /etc/ssh/sshd_config
PasswordAuthentication no

3. 配置防火墙,只开必要端口

# 只开 SSH、HTTP、HTTPS
ufw default deny incoming
ufw default allow outgoing
ufw allow 22222/tcp   # SSH
ufw allow 80/tcp      # HTTP
ufw allow 443/tcp     # HTTPS
ufw enable

4. 自动安全更新

# Ubuntu/Debian
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades

# CentOS/RHEL
dnf install dnf-automatic
systemctl enable --now dnf-automatic.timer

5. 创建普通用户,配置 sudo

永远不要用 root 跑日常操作,创建一个普通用户,需要时用 sudo 提权。

# 创建用户
adduser deploy

# 加入 sudo 组
usermod -aG sudo deploy

6. 禁用不必要的服务

# 查看正在运行的服务
systemctl list-unit-files --type=service --state=enabled

# 禁用不需要的服务
systemctl disable --now avahi-daemon
systemctl disable --now cups

7. 配置 fail2ban 防暴力破解

apt install fail2ban

# 配置 sshd 防护
vi /etc/fail2ban/jail.local

[sshd]
enabled = true
port = 22222
maxretry = 3
bantime = 3600

systemctl restart fail2ban

8. 设置密码策略

# 编辑 pwquality 配置
vi /etc/security/pwquality.conf

minlen = 12          # 最小长度
dcredit = -1         # 至少1个数字
ucredit = -1         # 至少1个大写字母
lcredit = -1         # 至少1个小写字母
ocredit = -1         # 至少1个特殊字符

9. 监控日志,定期检查

# 查看登录失败记录
grep "Failed password" /var/log/auth.log

# 查看当前登录用户
w

# 查看最近登录记录
last -n 20

10. 定期备份,备份再备份

安全加固做得再好,也不如有一份能快速恢复的备份。

# 简单的文件备份脚本
tar -czf backup_$(date +%Y%m%d).tar.gz /var/www/

把备份文件同步到异地存储,别只放在同一台服务器上。

总结

这 10 条配置不需要高深的技术,但每一条都能实实在在地降低服务器被攻破的风险。建议新服务器装好后,第一件事就是把这 10 条全部过一遍。

安全不是一次性的工作,而是一个持续的过程。定期更新系统、监控日志、检查异常,才能真正把服务器守好。


emer 发布于  2026-10-4 09:53