iptables添加端口 打印

  • 0
  • linux
在 Linux 系统中,使用iptables添加端口相关规则主要是针对防火墙对特定端口的访问控制,以下为你详细介绍不同场景下添加端口规则的方法:

1. 允许特定端口的入站连接(例如允许外部访问 TCP 80 端口)

 

如果你想让外部网络能够访问服务器上的特定端口(如常见的 Web 服务使用的 TCP 80 端口),可以通过以下命令添加规则到INPUT链:

 

收起
bash
 
 
 
 
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

 

  • -A:表示将规则追加到指定链的末尾。这里指定的链是INPUT,即入站规则链。
  • -p tcp:指定协议为 TCP。
  • --dport 80:指定目标端口为 80。
  • -j ACCEPT:表示如果数据包符合前面的条件(TCP 协议且目标端口为 80),则允许通过。

2. 允许特定端口的出站连接(例如允许服务器访问外部的 TCP 443 端口)

 

如果你希望服务器能够访问外部网络的特定端口(如 HTTPS 服务使用的 TCP 443 端口),可以添加规则到OUTPUT链:

 

收起
bash
 
 
 
 
sudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

 

  • 同样,-A是追加规则到OUTPUT链末尾。
  • -p tcp指定 TCP 协议。
  • --dport 443指定目标端口为 443。
  • -j ACCEPT表示允许符合条件的数据包出站。

3. 允许特定 IP 地址访问特定端口(例如允许 IP 192.168.1.100 访问 TCP 22 端口)

 

如果你只想让某个特定 IP 地址的设备能够访问服务器的特定端口(如 SSH 服务使用的 TCP 22 端口),可以使用如下规则:

 

收起
bash
 
 
 
 
sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT

 

  • -s 192.168.1.100:指定源 IP 地址为 192.168.1.100,即只有该 IP 地址的设备发出的连接请求会被考虑。
  • 其他参数含义与前面示例相同。

4. 开放一段连续端口范围(例如允许外部访问 TCP 3000 - 3010 端口)

 

若需要开放一段连续的端口范围,可以使用如下规则:

 

收起
bash
 
 
 
 
sudo iptables -A INPUT -p tcp --dport 3000:3010 -j ACCEPT

 

  • --dport 3000:3010:指定目标端口范围从 3000 到 3010。

保存规则

 

上述操作只是临时修改了内存中的iptables规则,系统重启后这些规则会丢失。为了让规则持久化,不同的 Linux 发行版有不同的方法:

Debian/Ubuntu

 

可以使用iptables-persistent工具:

 

收起
bash
 
 
 
 
sudo apt-get install iptables-persistent
sudo netfilter-persistent save

CentOS/RHEL

 

可以使用iptables-services

 

收起
bash
 
 
 
 
sudo yum install iptables-services
sudo systemctl enable iptables
sudo service iptables save

 

这样设置后,iptables规则在系统重启时会自动加载。
这篇文章有帮助吗?
« 返回