一. RedHat系
使用firewalld 来管理防火墙。
(1)开放指定端口
假设需要开放 8080 端口:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
参数解释:
--zone=public:指定作用域,一般是 public。
--add-port=8080/tcp:开放 8080 端口,协议为 TCP。
--permanent:表示永久生效(需要重载防火墙)。
(2)重载防火墙
添加端口后需要重载规则:
sudo firewall-cmd --reload
(3)查看已开放的端口
检查防火墙中已开放的端口:
sudo firewall-cmd --zone=public --list-ports
二. Ubuntu系
使用ufw(Uncomplicated Firewall) 来管理防火墙。
(1)启用 ufw 防火墙
如果防火墙未启用,可以先启用:
sudo ufw enable
(2)开放指定端口
假设需要开放 8080 端口:
sudo ufw allow 8080/tcp
参数解释:allow 8080/tcp:允许 8080 端口的 TCP 协议流量。
(3)查看防火墙规则
检查已开放的端口:
sudo ufw status
(4)删除开放的端口
如果需要关闭 8080 端口:
sudo ufw delete allow 8080/tcp
三.iptables
CentOS 7 之后或 Ubuntu 16.04 之后,firewalld 和 ufw 成为主流工具,iptables 仍然可用但较少直接使用。
iptables -A INPUT -p tcp --dport 8008 -j ACCEPT
-A INPUT:添加规则到输入链,管理进入服务器的流量。
-p tcp:指定规则应用于 TCP 协议。
--dport 8008:目标端口是 8008。
-j ACCEPT:匹配的流量将被接受。
iptables -A OUTPUT -p tcp --sport 5866 -j ACCEPT
-A OUTPUT:添加规则到输出链,管理从服务器发出的流量。
--sport 5866:来源端口是 5866。
-j ACCEPT:匹配的流量将被接受。
作用:允许服务器从 TCP 5866 端口发出的网络请求。