| 2025-12-16
iptables 是基于 Linux 内核 Netfilter 框架的命令行防火墙工具,通过定义规则链过滤、转发网络流量,核心用于包过滤、NAT 等功能;firewalld 是 iptables 的封装工具,以 “区域 + 服务” 简化管理,支持动态更新规则。两者核心区别:iptables 更底层、适合复杂规则与旧系统,firewalld 更易用、适合新系统与动态调整;搭配花生壳使用时,可通过 iptables 或 firewalld 配置端口访问规则,保障 DDNS 远程访问的安全性。
iptables 的核心是 “表 - 链 - 规则” 三层架构:表(table)按功能分类(filter、nat、mangle、raw),链(chain)是规则的执行顺序(INPUT、OUTPUT、FORWARD 等),规则(rule)是具体的流量控制条件。命令基本结构为:iptables [-t 表名] 操作选项 [-i/o 网卡] [-p 协议] [-s 源IP/端口] [-d 目标IP/端口] -j 动作。其中 filter 表是默认表(无需指定),负责基础包过滤;nat 表用于端口转发、地址转换,是花生壳 DDNS 远程访问时常用的表。例如通过 nat 表配置端口转发,可让外网通过花生壳域名访问内网设备,这一过程需依赖 iptables 的规则配置实现。
1、基础规则管理命令
-查看规则:iptables -L -n(-n 表示 IP 不解析,速度更快),查看指定表规则:iptables -t nat -L;
-清空规则:iptables -F(清空所有表默认链规则),iptables -t nat -F(清空 nat 表规则);
-保存规则:service iptables save(CentOS 6)或iptables-save > /etc/iptables.rules(通用);
-恢复规则:iptables-restore ables.rules,适合自动化脚本部署场景。
2、常用流量控制命令(高频实操)
-开放指定端口(如花生壳远程访问需开放 5000 端口):iptables -A INPUT -p tcp --dport 5000 -j ACCEPT;
-限制特定 IP 访问:iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT(仅允许该 IP 登录 SSH);
-端口转发(内网设备映射):iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80,配合花生壳 DDNS 使用,可通过域名:8080 访问内网 80 端口服务;
-禁止所有入站流量(默认拒绝):iptables -P INPUT DROP,需提前开放必要端口(如 22、80),避免无法连接。
3、规则删除与修改命令
-删除指定规则:先通过iptables -L --line-numbers查看规则序号,再执行iptables -D INPUT 3(删除 INPUT 链第 3 条规则);
-修改默认策略:iptables -P INPUT ACCEPT(默认允许所有入站),iptables -P FORWARD DROP(默认拒绝转发)。
简单说,iptables 是 “手动挡汽车”,需精准控制每一步规则;firewalld 是 “自动挡汽车”,通过简化操作降低门槛。两者均能与花生壳 DDNS 配合,保障远程访问的网络安全,用户可根据系统版本和需求选择。
1、优先选 iptables 的场景
-系统环境:使用 CentOS 6 及以下老旧系统,无 firewalld 支持;
-功能需求:需配置复杂 NAT 规则、包修改、自定义协议过滤,或在路由器、网关设备上做精细化端口映射;
-部署方式:DevOps 流程依赖 shell 脚本自动化管理,通过 iptables-save/restore 快速备份恢复规则;
-资源限制:嵌入式设备、虚拟机等资源受限环境,iptables 更轻量,性能损耗更低。例如在嵌入式设备上部署花生壳客户端,搭配 iptables 实现轻量级远程访问防护。
2、优先选 firewalld 的场景
-系统环境:CentOS 7+、RHEL 7+、Fedora 等新系统,firewalld 为默认防火墙;
-操作需求:需要动态调整规则(如临时开放端口),不想中断现有服务;
-管理需求:追求简单易维护,通过服务名(如firewall-cmd --add-service=http)快速配置,无需记忆端口号;
-图形化管理:需通过 cockpit 等 Web UI 统一管理防火墙,firewalld 兼容性更好。例如新手用户使用新系统搭配花生壳,可通过 firewalld 快速开放端口,降低操作难度。
1、基础服务与端口管理
-开放服务(如 HTTP):firewall-cmd --permanent --add-service=http,重启生效:firewall-cmd --reload;
-开放指定端口(如花生壳 5000 端口):firewall-cmd --permanent --add-port=5000/tcp,重载生效;
-查看开放规则:firewall-cmd --list-all,查看永久规则:firewall-cmd --list-all --permanent;
-移除规则:firewall-cmd --permanent --remove-port=5000/tcp,重载后生效。
2、区域管理与端口转发
-切换默认区域:firewall-cmd --set-default-zone=public(public 区域适合公共网络);
-配置端口转发(配合花生壳):firewall-cmd --permanent --add-forward-port=port=8080:proto=tcp:toaddr=192.168.1.10:toport=80,重载后生效,实现外网通过域名:8080 访问内网服务;
-查看区域列表:firewall-cmd --get-zones,常用区域有 public(公共)、home(家庭)、trusted(信任)。
3、临时规则与永久规则区别
-临时规则(无 --permanent 参数):重启 firewalld 后失效,适合临时测试;
-永久规则(加 --permanent 参数):需执行firewall-cmd --reload后生效,重启系统不丢失。
花生壳提供稳定的 DDNS 动态解析服务,而 iptables 和 firewalld 负责网络安全防护,两者搭配可实现 “便捷访问 + 安全防护” 的双重需求。实操建议:
1、通过花生壳客户端绑定域名与内网设备,下载花生壳软件( https://hsk.oray.com/download )后,按指引完成设备绑定;
2、防火墙层面仅开放花生壳所需端口(如 5000、8080 等),禁止不必要端口暴露;
3、配置 IP 白名单,通过 iptables 的-s参数或 firewalld 的富规则,仅允许指定 IP 通过花生壳域名访问;
4、定期备份防火墙规则,结合花生壳的访问日志,发现异常 IP 及时通过防火墙封禁,形成完整的安全防护闭环。花生壳的加密解析功能与防火墙的规则过滤结合,能有效抵御 DNS 劫持和恶意访问,让远程访问更安全可靠。
1. iptables 的四个表各自有什么作用?filter 表负责包过滤(默认表),nat 表用于地址转换和端口转发,mangle 表修改 IP 包头信息,raw 表绕过连接跟踪,适合高性能场景。
2. firewalld 的 “区域” 是什么意思?区域是按信任级别划分的网络环境分组(如 public、home),不同区域有默认规则,可将网卡绑定到对应区域,实现分场景防护。
3. 花生壳配合防火墙时,如何避免端口冲突?先通过netstat -tuln查看已占用端口,选择未占用的高位端口(如 5000-65535)配置花生壳映射,同时在防火墙开放该端口,确保端口一致且未被占用。