每日签到奶昔超市积分商城奶昔访达
返回列表 发布新帖
查看: 200|回复: 5

[教程] N1盒子作为旁路由 + esim 4G模块实现主路由国内外IP分流走不同网口

发表于 昨天 14:37 | 查看全部 |阅读模式

登录后免广告,享受更多奶昔会员权益!

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 waving 于 2026-3-24 14:45 编辑

硬件:N1盒子(f大的openwrt)、移远4G模块+USB开发板+天线+ESIM白卡

cd2e27a84d8b5ee07b1b4f9ca253c38e.jpg


插入USB 4G模块后,先进行4G模块初始化,在openwrt接口处添加接口,QMI协议,调制器选正确。APN我因为是redteago,所以填的是mobile.three.com.hk

确保4G模块正常上网:

  1. root@OpenWrt:~# curl -s --interface wwan0 https://myip.ipip.net
  2. 当前 IP:123.136.X.X  来自于:中国 香港   移动
  3. root@OpenWrt:~#
复制代码


简化脚本:

192.168.101.1是我N1作为旁路由的上级路由IP地址
wwan0是4G模块的接口


  1. cat > /etc/init.d/ip-split << 'EOF'
  2. #!/bin/sh /etc/rc.common

  3. START=99
  4. STOP=10

  5. LAN_DEV="eth0"
  6. LAN_GW="192.168.101.1"
  7. MODEM_DEV="wwan0"

  8. CN_IP_URL="https://ispip.clang.cn/all_cn.txt"
  9. CN_IP_FILE="/etc/ip-split/china.txt"
  10. IPSET_NAME="cn_split"

  11. start() {
  12.     echo "Starting IP split routing..."
  13.     mkdir -p /etc/ip-split
  14.    
  15.     # 1. 下载IP列表
  16.     echo "Downloading China IP list..."
  17.     curl -fsL --connect-timeout 10 --max-time 30 "$CN_IP_URL" -o "$CN_IP_FILE.tmp" 2>/dev/null
  18.     if [ -f "$CN_IP_FILE.tmp" ]; then
  19.         line_count=$(wc -l < "$CN_IP_FILE.tmp")
  20.         [ "$line_count" -gt 1000 ] && mv "$CN_IP_FILE.tmp" "$CN_IP_FILE" || rm -f "$CN_IP_FILE.tmp"
  21.     fi
  22.    
  23.     if [ ! -f "$CN_IP_FILE" ]; then
  24.         echo "Error: No IP list available"
  25.         exit 1
  26.     fi
  27.    
  28.     # 2. 创建ipset
  29.     echo "Creating ipset..."
  30.     ipset destroy $IPSET_NAME 2>/dev/null || true
  31.     ipset create $IPSET_NAME hash:net maxelem 100000
  32.    
  33.     while read ip; do
  34.         [ -z "$ip" ] && continue
  35.         echo "$ip" | grep -q "^#" && continue
  36.         ipset add $IPSET_NAME $ip 2>/dev/null
  37.     done < "$CN_IP_FILE"
  38.    
  39.     # 添加局域网段
  40.     ipset add $IPSET_NAME 192.168.0.0/16 2>/dev/null || true
  41.     ipset add $IPSET_NAME 10.0.0.0/8 2>/dev/null || true
  42.     ipset add $IPSET_NAME 172.16.0.0/12 2>/dev/null || true
  43.    
  44.     # 3. 配置路由表
  45.     echo "Configuring routes..."
  46.     ip route flush table 100 2>/dev/null || true
  47.     ip route add default dev $MODEM_DEV table 100
  48.    
  49.     ip route flush table 200 2>/dev/null || true
  50.     ip route add default via $LAN_GW dev $LAN_DEV table 200
  51.    
  52.     # 4. 配置路由规则
  53.     ip rule del fwmark 0x1 table 100 2>/dev/null || true
  54.     ip rule del fwmark 0x2 table 200 2>/dev/null || true
  55.     ip rule add fwmark 0x1 table 100 priority 100
  56.     ip rule add fwmark 0x2 table 200 priority 200
  57.    
  58.     # 5. 配置流量分流
  59.     echo "Configuring traffic split..."
  60.     iptables -t mangle -D PREROUTING -i $LAN_DEV -m set --match-set $IPSET_NAME dst -j MARK --set-mark 0x2 2>/dev/null || true
  61.     iptables -t mangle -D PREROUTING -i $LAN_DEV -m set ! --match-set $IPSET_NAME dst -j MARK --set-mark 0x1 2>/dev/null || true
  62.    
  63.     # 先国内后国外
  64.     iptables -t mangle -A PREROUTING -i $LAN_DEV -m set --match-set $IPSET_NAME dst -j MARK --set-mark 0x2
  65.     iptables -t mangle -A PREROUTING -i $LAN_DEV -m set ! --match-set $IPSET_NAME dst -j MARK --set-mark 0x1
  66.    
  67.     # 6. NAT
  68.     iptables -t nat -A POSTROUTING -o $LAN_DEV -j MASQUERADE 2>/dev/null || true
  69.     iptables -t nat -A POSTROUTING -o $MODEM_DEV -j MASQUERADE 2>/dev/null || true
  70.    
  71.     # 7. IP转发
  72.     echo 1 > /proc/sys/net/ipv4/ip_forward
  73.    
  74.     echo "Done!"
  75. }

  76. stop() {
  77.     echo "Stopping..."
  78.     iptables -t mangle -D PREROUTING -i $LAN_DEV -m set --match-set $IPSET_NAME dst -j MARK --set-mark 0x2 2>/dev/null || true
  79.     iptables -t mangle -D PREROUTING -i $LAN_DEV -m set ! --match-set $IPSET_NAME dst -j MARK --set-mark 0x1 2>/dev/null || true
  80.    
  81.     ip rule del fwmark 0x1 table 100 2>/dev/null || true
  82.     ip rule del fwmark 0x2 table 200 2>/dev/null || true
  83.    
  84.     ip route flush table 100 2>/dev/null || true
  85.     ip route flush table 200 2>/dev/null || true
  86.    
  87.     ipset destroy $IPSET_NAME 2>/dev/null || true
  88.     echo "Stopped!"
  89. }

  90. restart() {
  91.     stop
  92.     sleep 1
  93.     start
  94. }
  95. EOF

  96. chmod +x /etc/init.d/ip-split
复制代码


DNS如果被污染劫持,可以使用smartDNS

  1. # 安装smartdns
  2. opkg update
  3. opkg install smartdns

  4. # 配置smartdns分流
  5. cat > /etc/smartdns/smartdns.conf << 'EOF'
  6. # 监听端口
  7. bind :53

  8. # 国内DNS(用于国内域名)
  9. server 223.5.5.5 -group china
  10. server 114.114.114.114 -group china

  11. # 国外DNS(通过4G查询)
  12. server 8.8.8.8 -group overseas -exclude-default-group
  13. server 1.1.1.1 -group overseas -exclude-default-group

  14. # 国内域名用国内DNS
  15. nameserver /cn/china
  16. nameserver /baidu.com/china
  17. nameserver /alibaba.com/china

  18. # 默认用国外DNS(防止污染)
  19. server 8.8.8.8
  20. server 1.1.1.1

  21. # 缓存
  22. cache-size 512
  23. EOF

  24. # 启动smartdns
  25. /etc/init.d/smartdns enable
  26. /etc/init.d/smartdns start

  27. # 让dnsmasq转发到smartdns
  28. uci set dhcp.@dnsmasq[0].port=5353
  29. uci set dhcp.@dnsmasq[0].server='127.0.0.1#53'
  30. uci commit dhcp
  31. /etc/init.d/dnsmasq restart
复制代码

  1. # 创建custom.conf实现域名分流
  2. cat > /etc/smartdns/custom.conf << 'EOF'
  3. # ========== 国内域名使用国内DNS ==========
  4. nameserver /cn/china
  5. nameserver /baidu.com/china
  6. nameserver /alicdn.com/china
  7. nameserver /aliyun.com/china
  8. nameserver /alipay.com/china
  9. nameserver /alibaba.com/china
  10. nameserver /qq.com/china
  11. nameserver /tencent.com/china
  12. nameserver /weixin.com/china
  13. nameserver /wechat.com/china
  14. nameserver /bilibili.com/china
  15. nameserver /bdstatic.com/china
  16. nameserver /bdimg.com/china
  17. nameserver /sina.com/china
  18. nameserver /weibo.com/china
  19. nameserver /douban.com/china
  20. nameserver /zhihu.com/china
  21. nameserver /jianshu.com/china
  22. nameserver /csdn.net/china
  23. nameserver /oschina.net/china
  24. nameserver /cnblogs.com/china
  25. nameserver /aliyuncs.com/china
  26. nameserver /tencentcloud.com/china
  27. nameserver /qcloud.com/china
  28. nameserver /myqcloud.com/china
  29. nameserver /126.net/china
  30. nameserver /163.com/china
  31. nameserver /netease.com/china
  32. nameserver /jd.com/china
  33. nameserver /taobao.com/china
  34. nameserver /tmall.com/china
  35. nameserver /alipayobjects.com/china
  36. nameserver /mmstat.com/china
  37. nameserver /cnzz.com/china
  38. nameserver /iqiyi.com/china
  39. nameserver /youku.com/china
  40. nameserver /mgtv.com/china
  41. nameserver /pptv.com/china
  42. nameserver /le.com/china
  43. nameserver /sohu.com/china
  44. nameserver /sogou.com/china
  45. nameserver /360.cn/china
  46. nameserver /360.com/china

  47. # ========== 强制国外域名使用国外DNS(防止污染)==========
  48. # Google相关
  49. nameserver /google.com/overseas
  50. nameserver /googleapis.com/overseas
  51. nameserver /googleusercontent.com/overseas
  52. nameserver /googlevideo.com/overseas
  53. nameserver /gstatic.com/overseas
  54. nameserver /youtube.com/overseas
  55. nameserver /ytimg.com/overseas
  56. nameserver /ggpht.com/overseas
  57. nameserver /withgoogle.com/overseas
  58. nameserver /google-analytics.com/overseas

  59. # Twitter/X相关
  60. nameserver /twitter.com/overseas
  61. nameserver /x.com/overseas
  62. nameserver /twimg.com/overseas
  63. nameserver /t.co/overseas

  64. # Facebook/Meta相关
  65. nameserver /facebook.com/overseas
  66. nameserver /fbcdn.net/overseas
  67. nameserver /instagram.com/overseas
  68. nameserver /cdninstagram.com/overseas
  69. nameserver /whatsapp.com/overseas
  70. nameserver /fb.com/overseas
  71. nameserver /messenger.com/overseas

  72. # 其他国外常用
  73. nameserver /github.com/overseas
  74. nameserver /gitlab.com/overseas
  75. nameserver /stackoverflow.com/overseas
  76. nameserver /reddit.com/overseas
  77. nameserver /medium.com/overseas
  78. nameserver /wordpress.com/overseas
  79. nameserver /blogspot.com/overseas
  80. nameserver /tumblr.com/overseas
  81. nameserver /pinterest.com/overseas
  82. nameserver /linkedin.com/overseas
  83. nameserver /netflix.com/overseas
  84. nameserver /nflxvideo.net/overseas
  85. nameserver /amazon.com/overseas
  86. nameserver /aws.amazon.com/overseas
  87. nameserver /cloudfront.net/overseas
  88. nameserver /akamai.net/overseas
  89. nameserver /fastly.net/overseas
  90. nameserver /cloudflare.com/overseas
  91. nameserver /cdn.cloudflare.net/overseas

  92. # 新闻/媒体
  93. nameserver /bbc.com/overseas
  94. nameserver /bbc.co.uk/overseas
  95. nameserver /cnn.com/overseas
  96. nameserver /nytimes.com/overseas
  97. nameserver /washingtonpost.com/overseas
  98. nameserver /theguardian.com/overseas
  99. nameserver /reuters.com/overseas
  100. nameserver /apnews.com/overseas
  101. nameserver /bloomberg.com/overseas
  102. nameserver /wsj.com/overseas
  103. nameserver /ft.com/overseas
  104. nameserver /economist.com/overseas

  105. # 科技
  106. nameserver /apple.com/overseas
  107. nameserver /icloud.com/overseas
  108. nameserver /mzstatic.com/overseas
  109. nameserver /microsoft.com/overseas
  110. nameserver /windows.net/overseas
  111. nameserver /office365.com/overseas
  112. nameserver /live.com/overseas
  113. nameserver /outlook.com/overseas
  114. nameserver /skype.com/overseas
  115. nameserver /dropbox.com/overseas
  116. nameserver /dropboxapi.com/overseas
  117. nameserver /onedrive.com/overseas

  118. # 工具/服务
  119. nameserver /wikipedia.org/overseas
  120. nameserver /wikimedia.org/overseas
  121. nameserver /wikimediafoundation.org/overseas
  122. nameserver /archive.org/overseas
  123. nameserver /archive.today/overseas
  124. nameserver /duckduckgo.com/overseas
  125. nameserver /startpage.com/overseas

  126. # ========== 默认使用国外DNS(防止污染)==========
  127. # 所有未匹配的域名使用默认DNS(8.8.8.8, 1.1.1.1)
  128. EOF
复制代码

  1. # 1. 在mangle表的OUTPUT链标记SmartDNS的DNS查询
  2. iptables -t mangle -I OUTPUT 1 -p udp --dport 53 -m owner --cmd-owner smartdns -j MARK --set-mark 0x1
  3. iptables -t mangle -I OUTPUT 2 -p tcp --dport 53 -m owner --cmd-owner smartdns -j MARK --set-mark 0x1

  4. # 2. 所有发往8.8.8.8和1.1.1.1的流量都走4G
  5. iptables -t mangle -I OUTPUT 1 -d 8.8.8.8 -j MARK --set-mark 0x1
  6. iptables -t mangle -I OUTPUT 2 -d 8.8.4.4 -j MARK --set-mark 0x1
  7. iptables -t mangle -I OUTPUT 3 -d 1.1.1.1 -j MARK --set-mark 0x1
  8. iptables -t mangle -I OUTPUT 4 -d 1.0.0.1 -j MARK --set-mark 0x1
复制代码

  1. # 修改smartdns配置,使用DoH/DoT
  2. uci delete smartdns.@server[2] 2>/dev/null
  3. uci delete smartdns.@server[3] 2>/dev/null

  4. # 添加Google DoH
  5. uci add smartdns server
  6. uci set smartdns.@server[-1].enabled='1'
  7. uci set smartdns.@server[-1].type='https'
  8. uci set smartdns.@server[-1].ip='https://dns.google/dns-query'
  9. uci set smartdns.@server[-1].host_name='dns.google'
  10. uci set smartdns.@server[-1].no_check_certificate='0'

  11. # 添加Cloudflare DoH  
  12. uci add smartdns server
  13. uci set smartdns.@server[-1].enabled='1'
  14. uci set smartdns.@server[-1].type='https'
  15. uci set smartdns.@server[-1].ip='https://cloudflare-dns.com/dns-query'
  16. uci set smartdns.@server[-1].host_name='cloudflare-dns.com'
  17. uci set smartdns.@server[-1].no_check_certificate='0'

  18. uci commit smartdns
  19. /etc/init.d/smartdns restart
复制代码

  1. # 清除旧的DNS相关规则
  2. iptables -t mangle -D OUTPUT -d 8.8.8.8 -j MARK --set-mark 0x1 2>/dev/null
  3. iptables -t mangle -D OUTPUT -d 8.8.4.4 -j MARK --set-mark 0x1 2>/dev/null
  4. iptables -t mangle -D OUTPUT -d 1.1.1.1 -j MARK --set-mark 0x1 2>/dev/null
  5. iptables -t mangle -D OUTPUT -d 1.0.0.1 -j MARK --set-mark 0x1 2>/dev/null

  6. # 添加规则:所有发往公共DNS的流量强制走4G
  7. iptables -t mangle -I OUTPUT 1 -d 8.8.8.8 -j MARK --set-mark 0x1
  8. iptables -t mangle -I OUTPUT 2 -d 8.8.4.4 -j MARK --set-mark 0x1
  9. iptables -t mangle -I OUTPUT 3 -d 1.1.1.1 -j MARK --set-mark 0x1
  10. iptables -t mangle -I OUTPUT 4 -d 1.0.0.1 -j MARK --set-mark 0x1

  11. # 同时标记PREROUTING链(处理转发设备的DNS)
  12. iptables -t mangle -D PREROUTING -p udp --dport 53 -j MARK --set-mark 0x1 2>/dev/null
  13. iptables -t mangle -I PREROUTING 1 -p udp --dport 53 -j MARK --set-mark 0x1
复制代码

  1. # 安装https支持(如果还没装)
  2. opkg install libopenssl

  3. # 配置DoH
  4. uci delete smartdns.@server[0]
  5. uci delete smartdns.@server[1]

  6. # Google DoH
  7. uci add smartdns server
  8. uci set smartdns.@server[-1].enabled='1'
  9. uci set smartdns.@server[-1].type='https'
  10. uci set smartdns.@server[-1].ip='https://dns.google/dns-query'
  11. uci set smartdns.@server[-1].host_name='dns.google'

  12. # Cloudflare DoH
  13. uci add smartdns server
  14. uci set smartdns.@server[-1].enabled='1'
  15. uci set smartdns.@server[-1].type='https'
  16. uci set smartdns.@server[-1].ip='https://cloudflare-dns.com/dns-query'
  17. uci set smartdns.@server[-1].host_name='cloudflare-dns.com'

  18. uci commit smartdns
  19. /etc/init.d/smartdns restart
复制代码


保存iptables规则

  1. # 安装iptables-save工具(如果没有)
  2. opkg install iptables-mod-extra

  3. # 保存当前规则
  4. iptables-save > /etc/iptables.rules

  5. # 创建启动脚本自动加载
  6. cat > /etc/init.d/iptables-restore << 'EOF'
  7. #!/bin/sh /etc/rc.common

  8. START=20

  9. start() {
  10.     [ -f /etc/iptables.rules ] && iptables-restore < /etc/iptables.rules
  11. }
  12. EOF

  13. chmod +x /etc/init.d/iptables-restore
  14. /etc/init.d/iptables-restore enable
复制代码

  1. # 创建启动脚本
  2. cat > /etc/init.d/route-rules << 'EOF'
  3. #!/bin/sh /etc/rc.common

  4. START=25

  5. start() {
  6.     # 等待网络就绪
  7.     sleep 5
  8.    
  9.     # 添加路由规则
  10.     ip rule del fwmark 0x1 table 100 2>/dev/null
  11.     ip rule del fwmark 0x2 table 200 2>/dev/null
  12.     ip rule add fwmark 0x1 table 100 priority 100
  13.     ip rule add fwmark 0x2 table 200 priority 200
  14.    
  15.     # 添加路由表
  16.     ip route flush table 100 2>/dev/null
  17.     ip route add default dev wwan0 table 100
  18.    
  19.     ip route flush table 200 2>/dev/null
  20.     ip route add default via 192.168.101.1 dev eth0 table 200
  21.    
  22.     # 重新添加iptables规则(确保)
  23.     iptables -t mangle -D PREROUTING -i eth0 -m set --match-set cn_split dst -j MARK --set-mark 0x2 2>/dev/null
  24.     iptables -t mangle -D PREROUTING -i eth0 -m set ! --match-set cn_split dst -j MARK --set-mark 0x1 2>/dev/null
  25.     iptables -t mangle -A PREROUTING -i eth0 -m set --match-set cn_split dst -j MARK --set-mark 0x2
  26.     iptables -t mangle -A PREROUTING -i eth0 -m set ! --match-set cn_split dst -j MARK --set-mark 0x1
  27.    
  28.     # DNS强制走4G
  29.     iptables -t mangle -D OUTPUT -d 8.8.8.8 -j MARK --set-mark 0x1 2>/dev/null
  30.     iptables -t mangle -D OUTPUT -d 8.8.4.4 -j MARK --set-mark 0x1 2>/dev/null
  31.     iptables -t mangle -D OUTPUT -d 1.1.1.1 -j MARK --set-mark 0x1 2>/dev/null
  32.     iptables -t mangle -I OUTPUT 1 -d 8.8.8.8 -j MARK --set-mark 0x1
  33.     iptables -t mangle -I OUTPUT 2 -d 8.8.4.4 -j MARK --set-mark 0x1
  34.     iptables -t mangle -I OUTPUT 3 -d 1.1.1.1 -j MARK --set-mark 0x1
  35.    
  36.     # NAT
  37.     iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 2>/dev/null
  38.     iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE 2>/dev/null
  39.    
  40.     # IP转发
  41.     echo 1 > /proc/sys/net/ipv4/ip_forward
  42. }
  43. EOF

  44. chmod +x /etc/init.d/route-rules
  45. /etc/init.d/route-rules enable
复制代码

  1. # 启动分流(会自动下载最新IP列表)
  2. /etc/init.d/ip-split start

  3. # 查看状态
  4. /etc/init.d/ip-split status

  5. # 手动更新IP列表(不中断服务)
  6. /etc/init.d/ip-split update

  7. # 停止分流
  8. /etc/init.d/ip-split stop

  9. # 重启分流
  10. /etc/init.d/ip-split restart

  11. # 开机自启
  12. /etc/init.d/ip-split enable
复制代码
爱生活,爱奶昔~
回复

使用道具 举报

发表于 1 小时前 | 查看全部
好方法,我本来也想整一个国外银行走esim,其他国外流量走梯子,谢谢楼主
爱生活,爱奶昔~
回复 支持 1 反对 0

使用道具 举报

发表于 昨天 15:26 | 查看全部
ESIM流量够用吗,
爱生活,爱奶昔~
 楼主| 发表于 昨天 16:55 | 查看全部
enzur 发表于 2026-3-24 15:26
ESIM流量够用吗,

还好,我用的少,月均20G,redteago的100G套餐能用5个月。
爱生活,爱奶昔~
发表于 昨天 19:49 来自手机 | 查看全部
看起来很厉害,新手不懂操作啊😯
爱生活,爱奶昔~
 楼主| 发表于 19 小时前 | 查看全部
Zoeng 发表于 2026-3-24 19:49
看起来很厉害,新手不懂操作啊😯

还有个更省流量的方法,通过smartDNS域名自动分流,指定的域名自动加入ipset,再通过iptables处理转发,后续有时间的话做个简单的流程
爱生活,爱奶昔~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2026 Naixi Networks. 沪ICP备13020230号-1|沪公网安备 31010702007642号手机版小黑屋RSS
返回顶部 关灯 在本版发帖
快速回复 返回顶部 返回列表