wireguard 如何把对端节点作为默认网关(旁路由)

21 天前
 jerrycmht024

A 与 B 在不同的网络,通过 wireguard 互联

想把机器 A 的所有默认流量通过 B 转发,有办法实现吗?

试过在 B 上配置 socks5 ,然后让 A 配置系统代理( windows ),但是 A 上可能要装一些 VPN ,VPN 不走系统代理。

1512 次点击
所在节点    宽带症候群
14 条回复
xqzr
21 天前
A 所在的网关,做源路由
haojidemingzi
21 天前
A 的配置文件里,[Peer]( B )这样配置:AllowedIPs = 0.0.0.0/1, 128.0.0.0/1 ,就可以 A 的流量都走 B 了吧
jerrycmht024
21 天前
@haojidemingzi B 需要做额外的配置吗?是否要开启 NAT 之类的?
haojidemingzi
21 天前
@jerrycmht024 #3 印象中是不需要额外配置的,你可以试一试
jerrycmht024
21 天前
@haojidemingzi 不太行,看起来这个 allowedips 就是添加路由,首先我配置 0.0.0.0 会直接导致网络不通。
然后我改成了 8.8.8.8 ,traceroute 以后发现下一跳只是到了 wg 的 server 上,看起来还要额外的配置
565656
21 天前
A 上 clash 直接引用 b 的 socks 作为节点,分流默认走 B ,不需要的就 direct 不就行了吗
jerrycmht024
20 天前
@565656 这个思路也还行,那我需要装个 openwrt 的旁路由,然后 clash+wireguard ,因为有很多类似 A 的节点,然后这些节点就把默认网关配置到 openwrt 上?但是我有没有不用 clash 的方案。
CheckMySoul
20 天前
A 是 linux 的话,启用 ip 转发:net.ipv4.ip_forward = 1 ,A 的 wg 允许 IP:0.0.0.0/0 ,然后配置下 MASQUERADE:iptables -t nat -A POSTROUTING -s {{ipv4Cidr}} -o {{device}} -j MASQUERADE; iptables -A INPUT -p udp -m udp --dport {{port}} -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT;
这样 B 默认连上就通过 A 的网络。
565656
20 天前
@jerrycmht024 #7 wireguard 甚至可以不用,直接把 clash 的 7890 端口 frp 出来(改五位端口+长密码),所有类似 A 都可以引用这个 socks5 节点,然后写分流规则用,同时也完美解决手机上 clash 和 tailscale/wireguard 不能同时打开的问题.
DOGOOD
20 天前
你 wireguard 怎么架的?是 b 有公网 ip 么?这样的话,2 楼那个方法就可以。如果不是这样,而是通过一个有公网 ip 的 c 充当 wireguard 中转。那这个 c 的 wireguard 配置中对应 b 的 peer 也要配置 AllowedIPs = 0.0.0.0/1 ,以及 c 的 wireguard 要添加对应的 ip 路由(这一步 wireguard 一般自动添加。)
Ljcbaby
19 天前
wg 的 wiki 里有,分表或者 netns
snoopygao
19 天前
先在 A 机里添加一条路由,去往 B 的公网地址走默认网关接口,固化一下 ip route add B-IP.X.X.X/32 via 原网关 , 再启动 wg 后就不会断开了
snoopygao
19 天前
在 B 里还需要把内核 foward=1 打开, 并且 iptables 做 snat ,iptables -t nat -A POSTROUTING -o eth0{自己改} -j MASQUERAD
aphorism
18 天前
把楼上的全部的合起来就差不多了,
1. A 的 WireGuard 配置文件中的 AllowIP 行写为
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1

2. B 作为 VPN 服务器,需要打开包转发并配置 SNAT ,即运行以下命令
sudo sysctl -w net.ipv4.ip_forward=1
iptables -t nat -I POSTROUTING -o <your ethernet interface> -j MASQUERAD

3. 对于在 A 上运行的其他不需要走 B 的网络地址,要加指定路由如下
ip route add <114.114.114.114> via <192.168.1.1> dev <eth0>

4. 上例中所有尖括号内的参数都要改为你本机的实际参数。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1151918

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX