You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux路由器基于地址的路由策略配置及DNS透明重定向需求咨询

Linux路由器基于地址的路由策略配置及DNS透明重定向需求咨询

嗨,针对你的Linux路由器配置需求,我给你整理了分步骤的实现方案,完全适配你现有的环境,涵盖IPv4和IPv6两部分:


一、指定设备流量走WireGuard(wg0),其余走ppp0

我们用策略路由来实现不同设备走不同出口,核心是给目标设备单独分配路由表,让它们的流量优先走wg0。

IPv4 配置

  1. 新建专属路由表
echo 100 wgroute >> /etc/iproute2/rt_tables
  1. 给这个路由表添加wg0的默认路由和本地局域网路由(保证设备能访问家里的网络)
ip route add default dev wg0 table 100
ip route add 192.168.100.0/24 dev lan0 table 100
  1. 添加规则,让指定的笔记本和手机IP使用这个路由表
ip rule add from 192.168.100.123 table 100 priority 100
ip rule add from 192.168.100.124 table 100 priority 100
  1. 调整iptables转发规则,允许这两个设备的流量从lan0到wg0
iptables -A FORWARD -s 192.168.100.123/32 -i lan0 -o wg0 -j ACCEPT
iptables -A FORWARD -s 192.168.100.124/32 -i lan0 -o wg0 -j ACCEPT
  1. 给wg0出口添加NAT(如果WireGuard有独立子网的话)
iptables -t nat -A POSTROUTING -o wg0 -s 192.168.100.123/32 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wg0 -s 192.168.100.124/32 -j MASQUERADE

IPv6 配置

和IPv4逻辑一致,用ip -6命令操作:

  1. 新建IPv6专属路由表
echo 200 wgroute6 >> /etc/iproute2/rt_tables
  1. 添加wg0的IPv6默认路由和本地局域网路由
ip -6 route add default dev wg0 table 200
ip -6 route add fd42:100::/120 dev lan0 table 200
  1. 添加IPv6规则
ip -6 rule add from fd42:100::123/128 table 200 priority 100
ip -6 rule add from fd42:100::124/128 table 200 priority 100
  1. 调整ip6tables转发规则
ip6tables -A FORWARD -s fd42:100::123/128 -i lan0 -o wg0 -j ACCEPT
ip6tables -A FORWARD -s fd42:100::124/128 -i lan0 -o wg0 -j ACCEPT
  1. IPv6出口NAT(如果需要)
ip6tables -t nat -A POSTROUTING -o wg0 -s fd42:100::123/128 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -o wg0 -s fd42:100::124/128 -j MASQUERADE

二、重定向指定设备到本地53端口的DNS请求到5300

针对这两个设备发往192.168.100.1:53的DNS请求,用NAT的REDIRECT规则修改目标端口:

IPv4 配置

# 笔记本UDP+TCP DNS重定向
iptables -t nat -A PREROUTING -s 192.168.100.123/32 -d 192.168.100.1/32 -p udp --dport 53 -j REDIRECT --to-ports 5300
iptables -t nat -A PREROUTING -s 192.168.100.123/32 -d 192.168.100.1/32 -p tcp --dport 53 -j REDIRECT --to-ports 5300

# 手机UDP+TCP DNS重定向
iptables -t nat -A PREROUTING -s 192.168.100.124/32 -d 192.168.100.1/32 -p udp --dport 53 -j REDIRECT --to-ports 5300
iptables -t nat -A PREROUTING -s 192.168.100.124/32 -d 192.168.100.1/32 -p tcp --dport 53 -j REDIRECT --to-ports 5300

IPv6 配置

# 笔记本UDP+TCP DNS重定向
ip6tables -t nat -A PREROUTING -s fd42:100::123/128 -d fd42:100::1/128 -p udp --dport 53 -j REDIRECT --to-ports 5300
ip6tables -t nat -A PREROUTING -s fd42:100::123/128 -d fd42:100::1/128 -p tcp --dport 53 -j REDIRECT --to-ports 5300

# 手机UDP+TCP DNS重定向
ip6tables -t nat -A PREROUTING -s fd42:100::124/128 -d fd42:100::1/128 -p udp --dport 53 -j REDIRECT --to-ports 5300
ip6tables -t nat -A PREROUTING -s fd42:100::124/128 -d fd42:100::1/128 -p tcp --dport 53 -j REDIRECT --to-ports 5300

三、透明重定向指定设备所有DNS请求到5300

不管这两个设备指定了什么DNS服务器,我们都拦截所有53端口的请求,强制转到本地5300:

IPv4 配置

# 笔记本所有UDP+TCP DNS请求重定向
iptables -t nat -A PREROUTING -s 192.168.100.123/32 -p udp --dport 53 -j REDIRECT --to-ports 5300
iptables -t nat -A PREROUTING -s 192.168.100.123/32 -p tcp --dport 53 -j REDIRECT --to-ports 5300

# 手机所有UDP+TCP DNS请求重定向
iptables -t nat -A PREROUTING -s 192.168.100.124/32 -p udp --dport 53 -j REDIRECT --to-ports 5300
iptables -t nat -A PREROUTING -s 192.168.100.124/32 -p tcp --dport 53 -j REDIRECT --to-ports 5300

IPv6 配置

# 笔记本所有UDP+TCP DNS请求重定向
ip6tables -t nat -A PREROUTING -s fd42:100::123/128 -p udp --dport 53 -j REDIRECT --to-ports 5300
ip6tables -t nat -A PREROUTING -s fd42:100::123/128 -p tcp --dport 53 -j REDIRECT --to-ports 5300

# 手机所有UDP+TCP DNS请求重定向
ip6tables -t nat -A PREROUTING -s fd42:100::124/128 -p udp --dport 53 -j REDIRECT --to-ports 5300
ip6tables -t nat -A PREROUTING -s fd42:100::124/128 -p tcp --dport 53 -j REDIRECT --to-ports 5300

额外提醒

  1. 规则持久化:配置完后记得保存规则,避免重启失效:
    iptables-save > /etc/iptables/rules.v4
    ip6tables-save > /etc/iptables/rules.v6
    
    路由规则可以加到/etc/rc.local或者创建systemd服务来开机自动执行。
  2. 确保WireGuard的wg0接口已经正常启动,并且有正确的路由配置。

备注:内容来源于stack exchange,提问作者jackyyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 13:23:12