防火墙是大多数现代 Linux 发行版使用的防火墙管理解决方案。在本教程中,您将学习如何在firewalld 中打开端口。本教程介绍如何在firewalld 中为公共、特定IP 或IP 范围打开端口。找到我们的上一篇文章关于Firewalld在Linux系统上的安装和使用。
在本教程中,所有命令都是针对 MySQL 端口 3306 编写的。您可以根据需要对任何其他端口使用相同的命令。
允许所有流量使用端口
使用以下命令允许端口 3306 上的传入流量传输到来自公共网络的所有流量。
firewall-cmd --zone=public --add-port=3306/tcp
添加永久使用规则--permanent
带命令的选项。
firewall-cmd --permanent --zone=public --add-port=3306/tcp
允许特定 IP 的端口
您还可以根据源地址限制对任何端口的访问。要打开基于源地址的端口访问,需要添加防火墙丰富规则。
运行以下命令以允许端口 4567 访问 192.168.0.0/24 网络。
firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.0/24"
port protocol="tcp" port="3306" accept'
重新加载防火墙规则以应用更改。
firewall-cmd --reload
验证规则
在firewalld中添加规则后,您可以通过运行以下命令来验证。
firewall-cmd --list-all
Output:
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.0.0/24" port port="3306" protocol="tcp" accept
最后一行输出显示了添加了firewalld的丰富规则。
从 Firewalld 中删除规则
如果您不需要保持端口打开,您可以使用 –remove-port 选项从防火墙中删除/拒绝上述端口:
firewall-cmd --permanent --zone=public --remove-port=3306/tcp
接下来,运行以下命令以应用更改:
firewall-cmd --reload
结论
在本教程中,您学习了在 Linux 操作系统上使用 firewalld 打开对所有流量或特定 IP 地址/网络的端口访问。