Wireguard-OpenVPN 链接

Wireguard-OpenVPN 链接

我正在尝试将 wireguard 服务器与 OpenVPN 服务器链接起来(移动设备上的延迟和性能问题更好)

基本上,wg client > wg server/ovpn client > ovpn server (commercial)

我尝试了一些方法,实际上它工作了一次,但重启后无法重现它。

当前 wg0 服务器配置:

[Interface]
PrivateKey = [redacted]
Address = 10.6.0.1/24
MTU = 1420
ListenPort = 34347



[Peer]
PublicKey = [redacted]
PresharedKey = [redacted]
AllowedIPs = 10.6.0.2/32

网络接口(中间人服务器)为 eth0,网关为 192.168.9.1(这是家庭网络,但转发以供外部访问)

显而易见的解决方案是将所有数据包从 wireguard 服务器发送到 tun0,但我不确定如何去做。

任何帮助都将不胜感激!

答案1

首先,我要补充的Table=off[Interface]服务器如果您使用 confwg-quick来进行设置。

那么,其中一种方法是:

ip route add default dev tun0 table 123
ip rule add iif wg0 table 123

这将使来自接口的所有流量(IIRC 应该转发)wg0查找路由表123(可以是任何未使用的数字)以进行路由,并且该表已包含通往的默认路由tun0

如果您使用 ,则可以PreUp按照 的方式添加它们。不过,最好使用 OpenVPN 中的等效项,因为添加路由需要存在。(或者您可以通过某种方式(或其他方式)确保 WireGuard 在 OpenVPN 之后启动。)[Interface]wg-quicktun0systemctl edit

如果你的 OpenVPN 已经将默认路由添加到路由表main,而你出于某种原因想要保留这种路由,则需要另一种方法,即将封装WireGuard 流量进入 OpenVPN 隧道。

例如:

ip route add default via 192.168.9.1 dev eth0 onlink table 321
ip rule add iif lo ipproto udp sport 34347 table 321

无论哪种方式,您都需要对来自 WireGuard 客户端的流量执行源 NAT:

iptables -t nat -A POSTROUTING -s 10.6.0.0/24 -o tun0 -J MASQUERADE

相关内容