服务器防火墙相关命令总结(Firewall-cmd)
开放指定端口给所有外部网络
永久生效命令,服务器重启后不需要重新配置
# 开放22端口,并永久生效
firewall-cmd --add-port=22/tcp --permanent
# 重启firewall
firewall-cmd --reload
临时生效命令,一般被用来做测试,但是如果没有手动删除的话在下次服务器重启前会一直有效
# 临时开放22端口,不需要firewall重启
firewall-cmd --add-port=22/tcp
# 手动删除已开放端口
firewall-cmd --remove-port=22/tcp
允许指定IP访问指定端口
永久生效命令,服务器重启后不需要重新配置
# 指定remote_ip的数据可以通过local_port端口;
# 实际使用时需替换remote_ip为真实IP,local_port为本地需要开放的端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="remote_ip" port port="local_port" protocol="tcp" accept'
# 重启 firewall
firewall-cmd --reload
临时生效命令,一般用来做测试,但是如果没有手动删除的话在下次服务器重启前会一直有效
# 指定remote_ip的数据可以通过local_port端口;
# 实际使用时需替换remote_ip为真实IP,local_port为本地需要开放的端口
firewall-cmd --add-rich-rule='rule family="ipv4" source address="remote_ip" port port="local_port" protocol="tcp" accept'
# 手动删除已开放端口
firewall-cmd --remove-rich-rule='rule family="ipv4" source address="remote_ip" port port="local_port" protocol="tcp" accept'
❗上述命令需要 root 用户执行,非 root 用户需在命令最前方加上 sudo
firewall-cmd的相关命令及其解释
命令 | 解释 |
---|---|
firewall-cmd --state | 查看防火墙状态 |
firewall-cmd --reload | 重新载入防火墙规则 |
firewall-cmd --panic-on | 激活临时封锁所有数据包的紧急模式 |
firewall-cmd --panic-off | 关闭紧急模式 |
firewall-cmd --add-service= | 允许指定服务 |
firewall-cmd --remove-service= | 拒绝指定服务 |
firewall-cmd --add-port=/tcp | 允许指定TCP端口 |
firewall-cmd --remove-port=/tcp | 拒绝指定TCP端口 |
firewall-cmd --permanent --add-service= | 永久允许指定服务 |
firewall-cmd --permanent --remove-service= | 永久拒绝指定服务 |
firewall-cmd --permanent --add-port=/tcp | 永久允许指定TCP端口 |
firewall-cmd --permanent --remove-port=/tcp | 永久拒绝指定TCP端口 |
firewall-cmd --list-services | 列出所有允许的服务 |
firewall-cmd --list-ports | 列出所有允许的端口 |
注意,若指定到具体端口,需要在操作后加上 /tcp
或 /udp
等协议类型,否则无法生效。
以上是firewall-cmd的常用命令及其解释。如有需要,可以通过man firewall-cmd
来查看更多详细信息。