问题描述
我正在尝试建立一个线卫设置,以便可以通过dnsmasq将线卫VPN分发给DHCP客户端,以便他们的dhcp客户端只能通过VPN访问互联网。
但是,正确的路由似乎仍然存在问题,但我找不到它。
结构: eth0:互联网 wg0:护线板 eth1:dhcp客户端已连接到这里
eth1初始化
/usr/bin/ip link set eth1 up
/usr/bin/ip addr add 10.10.1.1/24 dev eth1
wg0.conf
[Interface]
PrivateKey = $PRIVATE_KEY
Address = 10.20.40.11
Table = off
DNS = $DNS_SRV_ON_WG_SRV
[Peer]
PublicKey = $PUBLIC_KEY
AllowedIPs = 0.0.0.0/0
Endpoint = $WG_SERVER:51820
iptables
/usr/sbin/sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i eth1 -o wg0 -j ACCEPT
iptables -A FORWARD -i wg0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
dnsmasq配置
$(which dnsmasq) --interface eth1 \
--bind-interfaces \
--dhcp-authoritative \
--dhcp-range=10.10.1.100,10.10.1.200,72h \
--resolv-file=$(dirname "$0")/dnsmasq_resolv.conf
DHCP客户端可以ping eth1和wg0的IP,不能ping eth0(应该正确)
但是我在wg0上没有看到任何流量,因此我认为这是路由问题:
希望任何人都可以帮助
解决方法
找到了解决方案
ip rule add from 10.10.1.0/24 lookup 200
ip route add default dev wg0 table 200