由于某些原因,前面那些教程的大部分图片都被删除了。
于是我决定今天重新做一个完整的脚本,把最新版的脚本使用方案带来给大家
先看测试环境IP
IX:
机器内网IP:192.168.80.21
机器外网IP:165.101.x.x
HK:
机器内网IP:192.168.80.20
机器外网IP:143.14.x.x
我们先看配置前的IX端路由和ping情况:
不通
接下来我们开始配置
我们登录HK端,运行配置脚本
项目源地址: Lorry-San/haloix-ipt: Halocloud IX(KKIX) 双端传输配置脚本
wget -O ixsnat https://raw.githubusercontent.com/Lorry-San/haloix-ipt/refs/heads/main/ixsnat && chmod +x ixsnat && ./ixsnat
我们输入IX端的ens20 IP,并输入IX端机器的密码,随后回车
确认信息无误后回车
=========================================
开始执行配置
=========================================
[STEP] 【阶段 1/2】配置本地 SNAT...
[STEP] 初始化 SNAT 配置...
[DEBUG] 网卡 ens20 检查通过
[DEBUG] 网卡 ens18 检查通过
[INFO] 内网网段: 192.168.80.20/24
[INFO] 内网IP (ens20): 192.168.80.20
[INFO] 外网IP (ens18): 143.14.x.x
[DEBUG] 启用IP转发...
[DEBUG] 设置默认策略...
[DEBUG] 配置允许转发的IP...
[DEBUG] 配置拒绝其他IP的转发...
[DEBUG] 配置 SNAT 规则...
[DEBUG] 保存 iptables 规则...
[DEBUG] 规则已保存
[INFO] ✅ SNAT 配置完成
[DEBUG] 保存 iptables 规则...
[DEBUG] 规则已保存
=========================================
SNAT 配置摘要
=========================================
内网接口: ens20
• IP: 192.168.80.20
• 网段: 192.168.80.20/24
外网接口: ens18 (143.14.x.x)
允许转发的IP:
• 192.168.80.21
[STEP] 【阶段 2/2】配置远程策略路由...
=========================================
远程策略路由配置
=========================================
[INFO] 目标服务器: 192.168.80.21
[INFO] ens20 网关将设置为: 192.168.80.20 (本机 ens20)
[STEP] 测试 SSH 连接...
SSH 连接成功
[INFO] ✅ SSH 连接测试通过
[STEP] 生成策略路由配置脚本...
[STEP] 执行远程策略路由配置...
==========================================
开始配置策略路由
==========================================
【步骤1】检查网卡...
✅ ens18 存在
✅ ens20 存在
✅ ens19 存在
【步骤2】读取 ens18 (IX) 配置...
✅ IX IP: 165.101.x.x
✅ 检测到网关: 165.101.x.1
✅ IX 网段: 165.101.x.x/24
【步骤3】读取 ens20 配置...
✅ ens20 IP: 192.168.80.21
✅ ens20 网段: 192.168.80.21/24
✅ ens20 Gateway: 192.168.80.20 (SNAT 服务器)
【步骤4】读取 ens19 配置...
✅ ens19 IP: 10.0.0.10
✅ ens19 网段: 10.0.0.10/24
【步骤5】创建路由表...
ℹ️ 路由表 ix_return 已存在
【步骤6】清理现有路由配置...
Error: ipv4: FIB table does not exist.
Flush terminated
✅ 旧配置已清理
【步骤7】配置新路由...
✅ 默认路由: ens20 -> 192.168.80.20
✅ IX 回程默认路由: ens18 -> 165.101.x.1
✅ 添加路由: 165.101.x.x/24 via ens18
✅ 添加路由: 192.168.80.21/24 via ens20
Error: Invalid prefix for given prefix length.
Error: Invalid prefix for given prefix length.
Error: Invalid prefix for given prefix length.
✅ 添加路由: 10.0.0.10/24 via ens19
【步骤8】添加策略路由规则...
✅ 规则: from 165.101.x.x use table ix_return (priority 100)
✅ 规则: fwmark 100 use table ix_return (priority 99)
【步骤9】配置 iptables 连接跟踪...
✅ 连接跟踪已配置
【步骤10】调整系统参数...
✅ rp_filter 已设置为宽松模式(2)
✅ 路由缓存已刷新
【步骤11】保存配置...
✅ iptables 规则已保存
==========================================
策略路由配置完成!
==========================================
网卡配置:
• ens18 (IX): 165.101.x.x / 165.101.x.x/24 -> 165.101.x.1
• ens20: 192.168.80.21 / 192.168.80.21/24 -> 192.168.80.20 (SNAT服务器)
• ens19: 10.0.0.10 / 10.0.0.10/24
路由策略:
• 默认出站: ens20 -> 192.168.80.20 (通过SNAT服务器)
• IX 回程: ens18 -> 165.101.x.1
重要提示:
• ens20 的网关指向 SNAT 服务器 (192.168.80.20)
• 所有主动发起的连接会通过 SNAT 服务器转发
• IX 流量会从 ens18 原路返回
[INFO] ✅ 远程策略路由配置成功!
=========================================
全部配置完成!
=========================================
本地 SNAT 配置成功
远程策略路由配置成功
配置详情:
• 本机 ens20 IP: 192.168.80.20
• 允许转发的 IP 数量: 1
• 远程 IX 服务器: 192.168.80.21
• IX ens20 网关: 192.168.80.20 (指向本机)
流量路径:
\033[1;33m主动出站:\033[0m IX Server -> 本机 ens20 (192.168.80.20) -> SNAT -> 公网 (ens18)
\033[1;33mIX 回程:\033[0m 公网 -> IX Server ens18 -> 原路返回
注意事项:
• 所有配置已自动保存并持久化
• IX 端 ens20 网关指向本机: 192.168.80.20
• 如需添加更多 IP,请使用: ./ixsnat add <IP>
root@ECS212:~#
随后HK端配置完成,我们回到IX端修改DNS并测试路由情况
cat >/etc/resolv.conf<<EOF
nameserver 1.1.1.1
nameserver 8.8.8.8
EOF
ping -c 3 1.1.1.1
curl ipinfo.io
通了,公网路由也有了
直接收工



