说明
Railgun 默认通过 TCP
在 2048
端口上运行,该端口需要对 Cloudflare 的服务器 IP 开放连接。因此,我们需要在防火墙中添加相应的规则。为此,我写了一个脚本来简化这一操作。
#!/bin/bash
# IPv4
iptables -t filter -N Cloudflare # 创建名为 Cloudflare 的规则链,便于独立管理
iptables -t filter -F Cloudflare # 清空 Cloudflare 规则链,避免多次执行脚本时重复添加相同规则
for i in `curl https://www.cloudflare.com/ips-v4`; do iptables -t filter -A Cloudflare -p tcp -s $i --dport 2408 -j ACCEPT; done # 从 Cloudflare 官方实时取得最新的 IP
iptables -t filter -D INPUT -j Cloudflare # 删除 INPUT 中引用的 Cloudflare 规则链,避免多次执行脚本时重复添加
iptables -t filter -A INPUT -p tcp -j Cloudflare # 将 Cloudflare 规则链引用到 INPUT
# IPv6
ip6tables -t filter -N Cloudflare
ip6tables -t filter -F Cloudflare
for i in `curl https://www.cloudflare.com/ips-v6`; do ip6tables -t filter -A Cloudflare -p tcp -s $i --dport 2408 -j ACCEPT; done
ip6tables -t filter -D INPUT -j Cloudflare
ip6tables -t filter -A INPUT -p tcp -j Cloudflare
保存为 cloudflare-update-iptables.sh, 创建计划任务,以 ROOT 权限定期执行脚本
在 /etc/cron.d
创建 sync
文件,内容如下
30 2 * * * root bash 脚本的保存路径/cloudflare-update-iptables.sh > /dev/null 2>&1 # 每天 02:30 以 ROOT 权限执行
重启 cron 服务
systemctl restart cron