Подключен к WireGuard, но не имеет доступа к Интернету
Я пытаюсь установить WireGuard на свой сервер Ubuntu 20.04 LTS с этой конфигурацией:
[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 64129
PrivateKey = xxxxx
PostUp = iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;
[Peer]
PublicKey = xxxxx
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
затем в моей ОС Windows я пытаюсь использовать приложение WireGuard в качестве клиента с этой конфигурацией:
[Interface]
PrivateKey = xxxxx
Address = 10.66.66.2/32, fd42:42:42::2/128
[Peer]
PublicKey = xxxxx
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = xx.xx.xx.xx:64129
PersistentKeepalive = 25
Также с моего клиентского терминала я проверил пинг
10.66.66.1
а также
8.8.8.8
а также
4.2.2.4
и получить правильный ответ.
Это происходит, когда я пишу
wg
на терминал сервера:
interface: wg0
public key: xxxxxx
private key: (hidden)
listening port: 64129
peer: xxxxxx
endpoint: xx.xx.xx.xx:56698
allowed ips: 10.66.66.2/32, fd42:42:42::2/128
latest handshake: 9 minutes, 23 seconds ago
transfer: 33.54 KiB received, 13.87 KiB sent
я изменил
ip_forward
к одному:
ssh@ubuntu:~# cat /proc/sys/net/ipv4/ip_forward
1
Вот мой
ufw status
:
ssh@ubuntu:~# ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
64129/udp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
64129/udp (v6) ALLOW Anywhere (v6)
Anywhere on eth0 ALLOW FWD Anywhere on wg0
Anywhere on wg0 ALLOW FWD Anywhere on eth0
Anywhere (v6) on eth0 ALLOW FWD Anywhere (v6) on wg0
Anywhere (v6) on wg0 ALLOW FWD Anywhere (v6) on eth0
Но все же я не могу открыть какой-либо URL-адрес в своем браузере.
а это
ip a
результат :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:50:56:0c:b8:2c brd ff:ff:ff:ff:ff:ff
inet xx.xx.xx.xx/32 brd xx.xx.xx.xx scope global eth0
valid_lft forever preferred_lft forever
inet6 xxx::xx:xx:xx:xxx/64 scope link
valid_lft forever preferred_lft forever
12: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.66.66.1/24 scope global wg0
valid_lft forever preferred_lft forever
inet6 fd42:42:42::1/64 scope global
valid_lft forever preferred_lft forever
1 ответ
Пожалуйста, измените
Address
строку в конфигурации клиента (Windows) следующим образом:
Address = 10.66.66.2/24, fd42:42:42::2/64
Кроме того, чтобы использовать переадресацию IPv6 , вы должны установить
net.ipv6.conf.all.forwarding
к
1
. Чтобы сделать все настройки переадресации постоянными, используйте команду:
$ sudo -i
# echo -e 'net.ipv4.ip_forward=1\nnet.ipv6.conf.all.forwarding=1' >>/etc/sysctl.d/10-wireguard.conf
Поскольку
iptables
а также
ip6tables
команда может быть длинной, я использую следующий скрипт (названный
/etc/wireguard/helper/add-rem_nat_routing.sh
в моем случае) для
PostUp
а также
PostDown
:
Важно: Пожалуйста, введите правильные адреса подсети IPv6 ниже или удалите информацию, связанную с IPv6:
#!/bin/bash
OPT="$1"
case "$OPT" in
"-I" )
OPT2="1"
;;
"-D" )
OPT2=""
;;
* )
echo "Unknown option: $OPT" >&2
exit 2
;;
esac
IPT="/usr/sbin/iptables"
IPT6="/usr/sbin/ip6tables"
IN_FACE="eth0" ## NIC connected to the internet
WG_FACE="$2" ## WG NIC
SUB_NET="10.66.66.0/24" ## WG IPv4 sub/net aka CIDR
WG_PORT="64129" ## WG udp port
SUB_NET_6="fd42:42:42::/112" ## WG IPv6 sub/net CORRECT THIS!!!
### IPv4 ###
$IPT -t nat $OPT POSTROUTING $OPT2 -s $SUB_NET -o $IN_FACE -j MASQUERADE
$IPT $OPT INPUT $OPT2 -i $WG_FACE -j ACCEPT
$IPT $OPT FORWARD $OPT2 -i $IN_FACE -o $WG_FACE -j ACCEPT
$IPT $OPT FORWARD $OPT2 -i $WG_FACE -o $IN_FACE -j ACCEPT
$IPT $OPT INPUT $OPT2 -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT
### IPv6 (comment these if you DO NOT have IPv6) ###
$IPT6 -t nat $OPT POSTROUTING $OPT2 -s $SUB_NET_6 -o $IN_FACE -j MASQUERADE
$IPT6 $OPT INPUT $OPT2 -i $WG_FACE -j ACCEPT
$IPT6 $OPT FORWARD $OPT2 -i $IN_FACE -o $WG_FACE -j ACCEPT
$IPT6 $OPT FORWARD $OPT2 -i $WG_FACE -o $IN_FACE -j ACCEPT
$IPT6 $OPT INPUT $OPT2 -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT
И назовите это так в конфигурации сервера:
PostUp = /etc/wireguard/helper/add-rem_nat_routing.sh -I "%i"
PostDown = /etc/wireguard/helper/add-rem_nat_routing.sh -D "%i"
Примечание. Вы должны запустить
systemctl restart wg-quick@wg0
после изменения конфигурации сервера.
Пожалуйста, проверьте следующее на сервере:
$ traceroute 1.1.1.1
и следующее на клиенте (после подключения WireGuard):
C:\> tracert 1.1.1.1