Linux下iptables 禁止端口和开放端口
封面图
•
2025-10-23
•
Linux
207
0
0
0
在 Linux 系统中,`iptables` 是一个强大的防火墙工具,用于管理网络数据包的过滤规则。你可以使用 `iptables` 来**禁止(阻止)某些端口**或**开放某些端口**。 --- ## 一、基本概念 - **允许(ACCEPT)**:允许数据包通过。 - **拒绝(DROP)**:丢弃数据包,不返回任何信息。 - **拒绝并拒绝(REJECT)**:丢弃数据包,并返回错误信息(如 "Connection refused")。 --- ## 二、常用命令示例 ### 1. 开放某个端口(例如:80) ```bash sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ``` - `-A INPUT`:将规则添加到 `INPUT` 链(处理进入本机的数据包) - `-p tcp`:协议为 TCP - `--dport 80`:目标端口为 80 - `-j ACCEPT`:接受该流量 --- ### 2. 禁止某个端口(例如:22) ```bash sudo iptables -A INPUT -p tcp --dport 22 -j DROP ``` 或者使用 `REJECT`: ```bash sudo iptables -A INPUT -p tcp --dport 22 -j REJECT ``` --- ### 3. 查看当前规则 ```bash sudo iptables -L -n -v ``` - `-L`:列出规则 - `-n`:以数字形式显示 IP 和端口(不进行 DNS 解析) - `-v`:显示详细信息 --- ### 4. 删除某条规则 假设你之前添加了如下规则: ```bash sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ``` 要删除这条规则: ```bash sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT ``` --- ### 5. 保存规则(防止重启后丢失) 不同发行版保存方式略有不同: #### CentOS / RHEL: ```bash sudo service iptables save ``` 或者手动保存: ```bash sudo iptables-save > /etc/sysconfig/iptables ``` #### Ubuntu / Debian(使用 `iptables-persistent`): 安装持久化模块: ```bash sudo apt install iptables-persistent ``` 然后保存规则: ```bash sudo netfilter-persistent save ``` --- ## 三、常见用法总结 | 操作 | 命令 | |------|------| | 允许某个 TCP 端口 | `iptables -A INPUT -p tcp --dport <端口号> -j ACCEPT` | | 允许某个 UDP 端口 | `iptables -A INPUT -p udp --dport <端口号> -j ACCEPT` | | 拒绝某个 TCP 端口 | `iptables -A INPUT -p tcp --dport <端口号> -j DROP` | | 拒绝并提示某个端口 | `iptables -A INPUT -p tcp --dport <端口号> -j REJECT` | | 查看规则 | `iptables -L -n -v` | | 保存规则(CentOS/RHEL) | `service iptables save` | | 保存规则(Ubuntu/Debian) | `iptables-save > /etc/iptables/rules.v4` | --- ## 四、注意事项 - 如果你使用的是 `firewalld` 或 `ufw`,可能需要使用它们来管理防火墙,而不是直接操作 `iptables`。 - 在生产环境中,建议先测试规则,再进行正式部署。 - 确保你不会误封自己常用的端口(如 SSH 的 22 端口),否则可能会被锁在外面。 --- 如果你告诉我你具体想开放或禁止哪个端口,我可以帮你生成对应的命令。
上一篇:
SELinux 宽容模式(permissive) 强制模式(enforcing) 关闭
下一篇:
linux系统进程查看管理
标题录入,一次不能超过6条
留言
评论