Cloudflare Railgun 的 iptables 规则自动生成脚本

C

说明

Railgun 默认通过 TCP2048 端口上运行,该端口需要对 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
0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
By 马丁龙猪

标签

归档

功能