Client Wireguard incapable de se connecter à Internet

Bonjour, j’essaie de configurer mon propre serveur VPN sur un VPS. J’ai essayé plusieurs fois et suivi différents guides, mais le client ne parvient toujours pas à se connecter à Internet.

J’ai pingé reddit.com côté serveur, et cela fonctionne bien. Mais depuis le client, le ping vers reddit.com ne renvoie rien. Le ping vers 10.0.0.2 depuis le client fonctionne.

Toute aide serait appréciée.

Voici ma configuration :
sudo sysctl -p

net.ipv4.ip_forward = 1

net.ipv6.conf.all.forwarding = 1

nano /etc/ufw/sysctl.conf
# Décommentez ceci pour permettre à cette hôte de router des paquets entre interfaces

net/ipv4/ip_forward=1

net/ipv6/conf/default/forwarding=1

net/ipv6/conf/all/forwarding=1

# Désactiver les redirections ICMP. Les redirections ICMP sont rarement utilisées mais peuvent être utilisées dans

# des attaques MITM (man-in-the-middle). La désactivation d'ICMP peut perturber le trafic légitime vers ces sites.

net/ipv4/conf/all/accept_redirects=0

net/ipv4/conf/default/accept_redirects=0

net/ipv6/conf/all/accept_redirects=0

net/ipv6/conf/default/accept_redirects=0

# Ignorer les erreurs ICMP fausses

net/ipv4/icmp_echo_ignore_broadcasts=1

net/ipv4/icmp_ignore_bogus_error_responses=1

net/ipv4/icmp_echo_ignore_all=0

# paquets

net/ipv4/conf/all/log_martians=0

net/ipv4/conf/default/log_martians=0

sudo nano /etc/wireguard/wg0.conf

[Interface]

PrivateKey = REDACTED

Address = 10.20.0.1/24

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ufw route allow in
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ufw route delete
ListenPort = 51820

[Peer]

PublicKey = REDACTED

AllowedIPs = 10.0.0.2/32

Côté client WIREGUARD :
[Interface]

PrivateKey = REDACTED

Address = 10.0.0.2/32

[Peer]

PublicKey = REDACTED

AllowedIPs = 0.0.0.0/0, ::/0

Endpoint = IPADRESSREDACTED:51820

Votre adresse IP centrale et vos adresses de tunnel client sont dans des sous-réseaux différents.

Votre fournisseur d’accès Internet est-il derrière un CGNAT ?

Désolé, je suis débutant, vous dites que cela devrait être :

Serveur :
[Interface]

PrivateKey = REDACTED

Address = 10.0.0.1/24

[Peer]

PublicKey = REDACTED

AllowedIPs = 10.0.0.2/32

Client
[Peer]

PublicKey = REDACTED

AllowedIPs = 10.0.0.2/32

oui, cela posera un problème ?

L’adresse IP de l’interface du serveur (“Address” sous la section “[Interface]”) doit être dans le même sous-réseau (espace IP) que les pairs.

Je recommande de ne pas choisir le réseau 10.0.0.0/24 pour votre VPN, mais plutôt quelque chose d’un peu obscur, pour minimiser les risques de chevauchement avec le réseau LAN.

Donc quelque chose comme ceci :

[Interface]
Address = 172.16.85.1/24
(...)

[Peer]
AllowedIPs = 172.16.85.2/32
(...)

[Peer]
AllowedIPs = 172.16.85.3/32
(...)"

Voilà la cause du problème :confused:

Malheureusement, cela ne fonctionne toujours pas :frowning:

Voici ce que j’ai lancé sur le serveur :
sudo wg-quick down wg0
sudo nano /etc/wireguard/wg0.conf

[Interface]
PrivateKey = REDACTED
Address = 172.16.85.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ufw route allow in

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ; ufw route delete

[Peer]
PublicKey = REDACTED
AllowedIPs = 172.16.85.2/32

sudo wg-quick up wg0

Côté client :

[Interface]
PrivateKey = REDACTED
Address = 172.16.85.3/32

[Peer]
PublicKey = REDACTED
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = REDACTED IP:51820

Ping google.com =

ping google.com

General failure.
General failure.
General failure.
General failure.

Ping [172.16.85.1](http://172.16.85.1)

Pinging 172.16.85.1 with 32 bytes of data:
General failure.
General failure.
General failure.
Request timed out.

Ping statistics for 172.16.85.1:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

J’ai aussi vérifié que la clé privée et publique du client correspondent à celles du serveur.

Une chose que j’ajouterais à votre configuration client est PersistentKeepAlive = 25 ou quelque chose dans ce sens. Cela maintiendra l’envoi d’une poignée de main au serveur. De cette façon, vous pouvez voir si vous recevez des paquets en retour du serveur, alors la connexion fonctionne probablement. Si vous envoyez beaucoup de paquets mais ne recevez rien, alors cela pourrait être une erreur de correspondance entre les clés privée/public. Une autre chose à vérifier est l’onglet logs de l’interface graphique client. Enfin, essayez de ping l’adresse IP VPN du serveur en premier lieu. Si cela ne fonctionne pas, alors le ping vers google ne fonctionnera pas non plus. En pingant, vérifiez le compteur de paquets envoyés/réceptionnés. Vérifiez également les paquets envoyés/réceptionnés sur le serveur en exécutant wg.

Une question rapide : lorsque vous dites que vous avez fait correspondre la clé privée et publique sur le serveur et le client, qu’entendez-vous exactement ?

La clé privée du serveur va dans wg0.conf sous la section interface. La clé publique du client va dans wg0.conf sous la section peers. La clé publique du serveur va dans la configuration du client sous peer, tandis que la clé privée du client va dans la configuration du client sous interface.

C’est intéressant

Sur la configuration du serveur :

[Interface]
PrivateKey = PRIVATEKEY1
Address = 172.16.85.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ufw route allow in
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ; ufw route delete
ListenPort = 51820

[Peer]
PublicKey = PUBLICKEY1
AllowedIPs = 172.16.85.2/32

Sur la configuration du client :

[Interface]
PrivateKey = PRIVATEKEY1
Address = 172.16.85.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = PUBLICKEY1
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = REDACTED
PersistentKeepalive = 25

Donc en gros, je n’ai qu’une seule paire de clés publique et privée pour le serveur et le client.

FYI, ma connexion Internet est derrière un CGNAT, je ne suis pas sûr si cela a une incidence.