0

你好?我正在设置这个配置。
wireguard 服务器 (192.168.0.1) PROVIDER / VPS wireguard 客户端 (192.168.0.2) - ENS3 (10.0.0.2) ETHERNET - openvpn 服务器 (10.1.0.0/24, tun0 10.1.0.1)
所以,openvpn 客户端通过 wg0 连接到互联网的VPS。

ens3 inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255
tun0 inet 10.1.0.1  netmask 255.255.255.0  destination 10.1.0.1
wg0 inet 192.168.0.2  netmask 255.255.255.255  destination 192.168.0.2

拓扑子网
服务器 10.1.0.0 255.255.255.0
push "redirect-gateway autolocal bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"

[Interface]
PrivateKey = [privatekey]
DNS = 1.1.1.1
Address = 192.168.0.2/32
PostUp = ip route add WIREGUARD_SERVER_NET/24 via 10.0.0.1 dev ens3;
PostDown = ip route del WIREGUARD_SERVER_NET/24 via 10.0.0.1 dev ens3;

[Peer]
PublicKey = [publickey]
AllowedIPs = 192.168.0.1/32 #GW
Endpoint = WIREGUARD_SERVER:port

root@VPS:~# ip route show
default via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.2 metric 100
10.0.0.0/24 dev ens3 proto kernel scope link src 10.0.0.2
10.1.0.0/24 dev tun0 scope link src 10.1 .0.1
WIREGUARD_SERVER_NET/24 通过 10.0.0.1 开发 ens3
192.168.0.1 开发 wg0 范围链接

root@VPS:~# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=64 time=1.724 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.792 ms

root@VPS:~# ip route add 8.8.8.8 dev wg0
root@VPS:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8):56 个数据字节
ping:发送数据包:所需密钥不可用

* 不敢相信,但是将8.8.8.8插入[Peer]的AllowedIPs,ping就可以正常工作了。

lds   quit           Packets               Pings
Host              Loss%   Snt   Last   Avg  Best  Wrst StDev
1. 192.168.0.1      0.0%     7    1.7   1.7   1.7   1.8   0.1
5. ???
6. dns.google      0.0%     6   28.9  28.9  28.8  29.3   0.2

我试过这个:

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.conf.{all}.rp_filter=0
#iptables -t nat -A POSTROUTING -j NETMAP -s 10.1.0.0/24 --to 192.168.0.2
iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
iptables -A FORWARD -i wg0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o wg0 -j ACCEPT

echo "201 cf" >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.0/24 lookup cf
ip route add default dev wg0 table cf
ip route add 10.1.0.0/24 dev tun0 table cf

但是,数据包不会从 10.1.0.1 通过 192.168.0.1 或 192.168.0.2 到达 Internet。
但是从 openvpn 客户端 ping 到 192.168.0.1。
Wireguard客户端之所以不是0.0.0.0,是因为是VPS导致外部连接丢失。
iproute2 适用于 openvpn 客户端,不适用于此wireguard 客户端。
如果有什么好的方法,请多多指教。

4

1 回答 1

0

我认为你在伪装错误的界面。不要这样做:

iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE

应该:

iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

你应该在客户端这样做

PostUp = ip route add 0.0.0.0/0 via 10.0.0.1 dev ens3;
PostDown = ip route del 0.0.0.0/0 via 10.0.0.1 dev ens3;
于 2020-03-29T14:24:09.970 回答