文章分类: ggRock
本条还可参阅:

🔥 为 ggRock 配置 iptables

本指南为设置 iptables 防火墙提供了参考配置,以确保 ggRock 服务器和客户端正常运行。


📝 注意:
将任何占位符 IP 范围(例如 X.X.X.X/XY.Y.Y.Y/Y)替换为适合您环境的 CIDR 格式 IP 地址。



🔄 将防火墙重置为干净状态


iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -X
iptables -F



🚫 禁用 IP 转发(路由)


iptables -P FORWARD DROP



✅允许预期的入站流量


# 丢弃格式错误/无效的流量
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
# 允许已建立或相关的连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许本地主机(环回)
iptables -A INPUT -i lo -j ACCEPT



📦 允许传入 DHCP(用于 PXE 启动)


iptables -A INPUT -p udp --dport 67:68 --sport 67:68 -j ACCEPT



🛠️ 远程管理访问(例如 ggRock Web UI、HTTPS)


iptables -A INPUT -p tcp -s X.X.X.X/X --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp -s X.X.X.X/X --dport 443 -j ACCEPT
iptables -A INPUT -p udp -s X.X.X.X/X --dport 443 -j ACCEPT



🖥️ 允许来自 ggRock 客户端子网的访问


iptables -A INPUT -p icmp -s Y.Y.Y.Y/Y -j ACCEPT
iptables -A INPUT -p tcp -s Y.Y.Y.Y/Y -j ACCEPT
iptables -A INPUT -p udp -s Y.Y.Y.Y/Y -j ACCEPT



🔐 ggCircuit VPN IP 白名单


# 区域 1
iptables -A INPUT -p tcp -s 34.255.111.148/25 --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp -s 34.255.111.148/25 --dport 443 -j ACCEPT
iptables -A INPUT -p udp -s 34.255.111.148/25 --dport 443 -j ACCEPT
# 区域 2
iptables -A INPUT -p tcp -s 54.228.150.30/25 --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp -s 54.228.150.30/25 --dport 443 -j ACCEPT
iptables -A INPUT -p udp -s 54.228.150.30/25 --dport 443 -j ACCEPT



🚫 阻止所有其他入站流量


# 可选:记录丢弃的入站流量
# iptables -A INPUT -j LOG
iptables -P INPUT DROP



📤 允许预期的出站流量


# 允许连接响应
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
# 允许本地主机
iptables -A OUTPUT -o lo -j ACCEPT
# 允许 ICMP(ping 等)
iptables -A OUTPUT -p icmp -j ACCEPT
# DHCP
iptables -A OUTPUT -p udp --dport 67 --sport 68 -j ACCEPT
# DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
# NTP(时间同步)
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 123 -j ACCEPT
# HTTP/S(用于更新和网络访问)
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p udp --dport 443 -j ACCEPT



🌐 允许所有其他出站流量


# 可选:记录出站流量
# iptables -A OUTPUT -j LOG
iptables -P OUTPUT ACCEPT



⚠️ 重要提示:
运行此脚本之前,请用实际的 IP 地址范围替换占位符 IP 范围(X.X.X.X/XY.Y.Y.Y/Y)。


#!/bin/bash
# ggRock iptables 防火墙配置脚本
# 运行前请使用实际的 CIDR 块替换 X.X.X.X/XY.Y.Y.Y/Y
echo "⚙️ 为 ggRock 应用 iptables 规则..."
# === 重置现有规则 ===
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -F
iptables -X
# === 允许预期的入站流量 ===
# 丢弃无效数据包
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
# 允许已建立和相关的流量
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许环回
iptables -A INPUT -i lo -j ACCEPT
# 允许 DHCPPXE 启动)
iptables -A INPUT -p udp --dport 67:68 --sport 67:68 -j ACCEPT
# 远程管理(Web UI
iptables -A INPUT -p tcp -s X.X.X.X/X --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp -s X.X.X.X/X --dport 443 -j ACCEPT
iptables -A INPUT -p udp -s X.X.X.X/X --dport 443 -j ACCEPT
# 允许来自 ggRock PC 子网的所有流量
iptables -A INPUT -p icmp -s Y.Y.Y.Y/Y -j ACCEPT
iptables -A INPUT -p tcp -s Y.Y.Y.Y/Y -j ACCEPT
iptables -A INPUT -p udp -s Y.Y.Y.Y/Y -j ACCEPT
# ggCircuit VPN IP 地址
iptables -A INPUT -p tcp -s 34.255.111.148/25 --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp -s 34.255.111.148/25 --dport 443 -j ACCEPT
iptables -A INPUT -p udp -s 34.255.111.148/25 --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -s 54.228.150.30/25 --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp -s 54.228.150.30/25 --dport 443 -j ACCEPT
iptables -A INPUT -p udp -s 54.228.150.30/25 --dport 443 -j ACCEPT
# 丢弃所有其他入站流量
# 取消注释以启用日志记录:
# iptables -A INPUT -j LOG
iptables -P INPUT DROP
# === 允许预期的出站流量 ===
# 允许相关的出站流量
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
# 允许环回
iptables -A OUTPUT -o lo -j ACCEPT
# 允许 ICMP(ping)
iptables -A OUTPUT -p icmp -j ACCEPT
# DHCP
iptables -A OUTPUT -p udp --dport 67 --sport 68 -j ACCEPT
# DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
# NTP
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 123 -j ACCEPT
# HTTP/S
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p udp --dport 443 -j ACCEPT
# 允许所有其他出站流量
# 取消注释以启用日志记录:
# iptables -A OUTPUT -j LOG
iptables -P OUTPUT ACCEPT
echo "✅ iptables 规则应用成功!"



🔐 使用方法:


  1. 将此脚本保存为 configure-iptables.sh
  2. 使其可执行:


   chmod +x configure-iptables.sh
  1. 以 root 身份运行(或使用 sudo):


   sudo ./configure-iptables.sh



可选:


要使您的 iptables 规则在系统重启后保持不变



🧊 步骤 1:安装持久化工具


运行以下命令来安装所需的软件包:


sudo apt-get update && sudo apt-get install -y iptables-persistent


在安装过程中,系统会提示您保存当前规则——出现提示时选择


💾 步骤 2:保存当前 iptables 规则


运行 configure-iptables.sh 脚本后,按以下方式保存活动规则:


sudo netfilter-persistent save


这会将 IPv4 和 IPv6 规则保存到:


  • /etc/iptables/rules.v4
  • /etc/iptables/rules.v6


如果只使用 IPv4,完全没有问题——IPv6 文件可以保持为空。



🔁 步骤 3:在启动时自动加载


netfilter-persistent 服务会自动在启动时加载规则。您可以通过以下命令验证它是否已启用:


sudo systemctl is-enabled netfilter-persistent


如果未启用,您可以启用它:


sudo systemctl enable netfilter-persistent



🧪 可选:在不重启的情况下重新加载


要在不重启系统的情况下应用已保存的规则:


sudo netfilter-persistent reload



✅ 完成!您的自定义 iptables 配置现在将在系统重启后保持不变。

更新于: 24/04/2026

这篇文章有帮助吗?

分享您的反馈意见

取消

谢谢!