Wireguard - impossible de se connecter à Internet

Bonjour/Bonsoir !

J’hésite à poster ce topic dans la section supports, mais il se peut que ce soit trois fois rien et que ça ne vaille pas le coup.

J’ai installé Wireguard via Yunohost, je peux accéder à l’interface graphique avec le QR code.

J’ai également pi-Hole installé dessus (ça a peut-être son importance niveau DNS).
Mon serveur contenant toutes ces applications n’est pas chez moi (ça aussi ça a peut-être son importance).

J’ai donc voulu tester la connexion avec un smartphone : je télécharge l’application “wireguard” sur android (via F-droid) > je scan le QR code > j’active la connexion VPN et là > rien (les pages web ne s’affichent pas).

Qu’en pensez-vous ?

  1. mauvais setup ?
  2. une histoire de DNS ?
  3. j’ai utilisé un smartphone car je ne sais pas comment utiliser Wireguard via un PC sous Linux (Debian), y a-t-il une manière facile de tester aussi sur Linux ?
  4. si j’arrive à me connecter, suis-je censé voir mes dossiers réseau comme le ferait un partage Samba ?

Merci pour vos suggestions et aide !

C’est peut être un soucis de résolution de nom de domaine.

Est-ce que tu sais faire un ping depuis ton téléphone ?

ping 9.9.9.9

Salut,

(c’est tout à fait du support d’apps, je change la catégorie . Mais ça sera peut-être à moi de corriger l’app ou les instructions. :innocent:)

Il y a une info que tu n’as peut-être pas vue sur le forum ou dans le README de WireGuard. Désolé, je copie-colle les instructions en anglais.

Routing instructions for server

Enable port forwarding:

sudo nano /etc/sysctl.conf
# Uncomment the following lines:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
# Save and quit (CTRL+O, CTRL+X)
sudo sysctl -p

Copy the following commands in WireGuard Server menu, and replace eth0 with the interface connected to the Internet. If you do not know it, check the command ip a.

Save and apply configuration to restart the server after setting up the commands.

Post Up Script

iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Post Down Script

iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t n

Regarde aussi les logs dans l’application wireguard sur ton téléphone, chez moi ça boucle sur la tentative de handshake (et je n’ai pas pris le temps de creuser)

Aïe spique ineglich vérioùelle ^^

Merci pour le readme, j’ai donc mis à jour le Serveur avec les instructions proposées en remplaçant eth0 par wlps0 (car ip a me donne celui-ci comme étant UP).

J’ai ensuite connecté le smartphone avec l’application, en lançant un ping 9.9.9.9 comme l’a suggéré @ljf , sans succès (19 paquets envoyés 100% loss).

@Mamie : pour les logs, j’ai du rouge sur la phrase :

reguard.androi: failed to connect to jpwp control socket: Connection refused

Et du noir, je présume un peu moins grave (ou pire qui sait) :

NoetworkSecurityConfig: No Network Security Config specified, using platform default

Quasiment tout le reste étant en vert. Je parle pas le dragon du coup je ne sais pas si ça a un rapport avec ma config.

  1. Dois-je désactiver pi-Hole pour faire mes tests svp ?

  2. @tituspijean : j’ai vu sur un autre topic que tu conseillais la config suivante lorsque pi-Hole et Wireguard étaient sur le même serveur :

If PiHole and WireGuard VPN are on the same machine

In PiHole settings:

Interface listening behavior:

Listen on all interfaces
Allows only queries from devices that are at most one hop away (local devices)

Alter /etc/dnsmasq.conf and add your VPN server address to listen-address:

listen-address=127.0.0.1,10.10.10.0

Restart dnsmasq: systemctl restart dnsmasq


→ Sachant que pi-Hole utilise désormais FTLDNS, dois-je modifier le dnsmasq comme ci-dessus ?

Encore un grand merci à tous !

En plus d’avoir fait Save, as-tu fait Apply config?

Dans un premier temps, non. Les tests avec ping ne nécessitent pas de DNS.
Idem pour ta question sur dnsmasq. La première étape est d’obtenir un ping vers l’extérieur.

Si FTLDNS est sur la même machine (c’est le cas), alors oui cette remarque est toujours d’actualité.


Si ce n’est pas un VPS, as-tu ouvert le port dédié à WireGuard sur le routeur?


Sur ton client, après t’être assuré d’avoir fait Save et Apply config du côté du serveur WireGuard, et relancé la connexion sur le client, peux-tu faire:
sudo wg (tu peux enlever toute information identifiante du genre IP)
ping 10.10.10.0
traceroute 1.1.1.1

et vice-versa, sur le serveur, tente de ping le client et partage le résultat de sudo wg.

Merci pour ton retour !

Oui, j’ai bien cliqué sur Save, puis Apply config, dans cet ordre-là.

J’ai donc changé le fichier /etc/dnsmasq.conf et l’ai relancé avec systemctl restart dnsmasq. D’ailleurs, je viens de remarquer que mon service dnsmasq est en status exited :

systemctl status dnsmasq
● pihole-FTL.service - LSB: pihole-FTL daemon
   Loaded: loaded (/etc/init.d/pihole-FTL; generated)
   Active: active (exited) since Thu 2021-09-30 22:17:51 CEST; 20min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 32501 ExecStart=/etc/init.d/pihole-FTL start (code=exited, status=0/SUCCESS)

Cliquer sur Démarrer (dans le panel admin de Yunohost) ne fait absolument rien. Le log associé est très court :

LOGFILE: journalctl
-- Logs begin at Sun 2021-09-26 06:41:31 CEST, end at Thu 2021-09-30 22:29:26 CEST. --
-- No entries --

Effectivement, c’est un serveur installé sur un ancien PC Intel (x86_64), et j’ai le port 8xxx bien ouvert, à la fois sur la Freebox (en UDP), mais également sur le panel Admin de Yunohost (en UDP aussi).

Alors :

  • sudo wg : no superuser binary detected. Are you rooted? → ne fonctionne pas sur LineageOS (peut-être parce qu’il me semble que le root est impossible depuis Android 9).
  • ping 10.10.10.0 : 12 packets transmitted, 0 received, 100% packet loss, time 11001ms
  • traceroute 1.1.1.1 :
1?: [LOCALHOST]         pmtu 1280
1: no reply
2: no reply
3: no reply

etc. en gros, ça ne donne rien. Je suis découragé, voudrais-tu consulter un log en particulier ?

Merci beaucoup.

Pardon pour les questions bateau, mais on ne sait jamais. :slight_smile: Tu arrives bien à contacter ton serveur outre le VPN?

J’avais zappé que tu étais sur un téléphone, et en effet ça va pas aider.
As-tu bien le rx qui augmente un peu (quelques Ko) quand tu lances la connexion depuis l’app?

sudo su

Alors si tu es sur une Debian 11 (bullseye), tu peux juste faire un apt install wireguard.

Sinon si tu es sur Debian 10 (buster):
echo "deb http://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list

apt update
apt install wireguard/buster-backports

Ensuite tu copies-colles le contenu, ou tu transfère le fichier wg0.conf téléchargé vers /etc/wireguard/wg0.conf. Et tu lances tout ça avec wg-quick up wg0. :crossed_fingers:

Oui tu as raison de demander, j’ai bien accès à mon compte Yunohost, à son interface admin, et bien sûr au SSH également.

Alors là, tu risques de me trouver pas rusé : c’est quoi un rx ? tu parles du réseau ou c’est une commande ?

La bonne nouvelle, c’est que je suis sur bullseye du coup l’installation est facilitée, mais la mauvaise nouvelle (pas étonnant vu qu’on a un souci de connexion), est que la commande donne :

wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.10.10.1/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
/etc/resolvconf/update.d/libc: 157: exec: run-parts: not found
run-parts: /etc/resolvconf/update.d/libc exited with return code 127
[#] ip link delete dev wg0

PS : j’ai bien téléchargé la config. J’ai remarqué sur Wireguard UI > Global settings qua j’ai mis comme DNS Servers l’adresse du server : 192.168.0.15 (c’est la seule adresse, et je pense que j’ai trifouillé ce point moi-même car je voulais pointer mon DNS vers le pi-Hole). Est-ce grave ?

Quant tu cliques sur ta config Wireguard, tu as une page qui décris les IPs, endpoints, etc. En bas tu as les données envoyées au serveur (tx) et reçues (rx). :wink:

Là par contre, je ne vois absolument pas le problème, il va falloir chercher sur les internets. :confused:

Terriblement! :upside_down_face: Dans mon cas j’y ai mis l’adresse IP du serveur VPN 10.10.10.0 (en plus de la config dnsmasq pour autoriser les connexions depuis le VPN):

image

(j’ai mis 1.1.1.1 en secours. Je te conseille plutôt un DNS de la FFDN)

Hello, merci pour ton aide, et désolé pour mon retour tardif, j’ai du préparer un entretien d’embauche et j’ai disparu dans une caverne pour imager un peu ^^

Merci ! Alors assieds-toi : j’ai pas trouvé ^^ !!! Je me rends sur wireguard UI : j’ai 3 options sur la gauche :

  • Wireguard Clients : rien dessus (même si je clique sur Edit sur un client)
  • Wireguard Server : idem, je n’ai rien
  • Global Settings : idem, rien du tout

On parle bien de Wireguard UI ?


J’ai ajouté les serveurs comme tu l’as fait, j’arrive à les mettre, mais ça ne résoud pas le souci.


Je pense que le problème est probablement là. Il faut que je creuse.

  1. À ton avis, ne vaut-il mieux pas que je désinstalle/désactive Pi-Hole pour effectuer mes tests Wireguard ? Si oui, quel DNS dois-je rentrer ?
  2. Enfin, je n’ai jamais redémarré mon serveur (car je suis à distance et le reboot via SSH éteint la machine sans la redémarrer correctement) après l’installation de wireguard et de pi-Hole : serait-ce un souci ?

Merci beaucoup !

Non, je parle de ton app WireGuard sur ton téléphone.

Ce n’est pas pour rien qu’il y a un avertissement au début et à la fin de l’installation. Redémarre ton serveur.

Ensuite la commande sudo dkms status devrait lister WireGuard avec ta version de noyau Linux.

1 Like

C’est fait, je confirme d’ailleurs qu’il a fallu aller physiquement appuyer sur mon serveur pour le redémarrer (ça ne marchait pas en SSH).

En SSH, ça donne :

sudo dkms status
wireguard, 1.0.20210219, 4.19.0-17-amd64, x86_64: installed

Mais ça ne résoud pas le souci malheureusement. La commande wg-quick up wg0 depuis mon ordinateur client renvoit la même erreur que précédemment.

Sur un autre forum, ils suspectent un conflit entre NetworkManager et Wireguard avec une histoire de timer (j’ai pas tout capté). Pour résoudre son souci, la personne a dû relancer le VPN avec : wg-quick@integrity_vpn.service, pas sûr que j’ai le même souci, faudrait que je teste, si tant est que la commande soit la même via Yunohost.

Encore merci pour ton aide précieuse

J’en profite pour te faire un retour sur les fameux rx et tx sur l’appli client Android :

rx: 0 Octets, tx: 7,52 Ko

C’est ce que j’ai relevé depuis quelques minutes en tentant de lancer 2 ou 3 recherches internet sans succès. Qu’en penses-tu ? Merci

Arf, tu n’as pas de chance. Vraiment bizarre que le reboot ne décharge pas le noyau Linux…

Bon ça c’est rassurant. C’est que le noyau a bien le module pour WireGuard d’installé.

Et ça ça confirme que tu n’es pas vraiment connecté au VPN. Tu as transmis (tx) quasiment rien et reçu (rx) absolument rien en données.

Attention, Manjaro est basée sur Arch Linux. On ne peut garantir que ce soit le même problème sur une Debian.

1 Like

Merci pour toutes ces précisions. Vu que ça commence à me titiller, j’ai :

  • désinstallé Pi-Hole,
  • puis j’ai fait un sudo yunohost tools regen-conf dnsmasq --force
  • j’ai redémarré le service Wireguard wg-quick@wg0 depuis l’interface Web admin
  • ce qui me permet de ne plus avoir le message d’erreur /etc/resolvconf/update.d/libc: 157: exec: run-parts: not found
  • et un wg-quick up wg0 m’affiche :
ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.10.10.1/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] nft -f /dev/fd/63

→ mais au final, même si ça semble se connecter depuis mon ordi portable, lorsque je vais sur un site type what’smyip, j’ai mon adresse IPV4 non reconnue, et mon adresse IPV6 reconnue (celle du client, pas du serveur). Donc c’est encore un échec. Chose intéressante, on remarque que la connexion wg-quick up wg0 n’affiche que des infos sur l’IPV4 et que l’adresse IPV4 sur what’smyip n’est plus reconnue. C’est comme si la connexion en IPV4 s’initialisait mais que tout ratait à cause de la fuite d’adresse en IPV6. Quand je fais wg-quick down wg0, mes 2 versions d’adresses clients IPV4 et IPV6 sont reconnues sur what’smyip.

J’ai pourtant configuré comme suit :

sudo nano /etc/sysctl.conf
# Uncomment the following lines:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
# Save and quit (CTRL+O, CTRL+X)
sudo sysctl -p

Idem pour smartphone : échec avec très peu de tx et 0 rx. Incompréhensible.

Qu’est-ce que tu entends par “non reconnue” ?

Après un wg-quick up wg0 sur le client, what’smyip affiche :

  • votre adresse IPv6 : xxx:xxx:xxx:xxx:xx::xxx:x etc (adresse du client)

  • votre adresse IPv4 : non reconnue

  • géolocalisation : ça trouve la localisation du client (comme quand ça ne passe pas par Wireguard)

Puis après un wg-quick down wg0 sur le client, what’smyip affiche :

  • votre adresse IPv6 : xxx:xxx:xxx:xxx:xx::xxx:x etc (adresse du client)

  • votre adresse IPv4 : XXX.XXX.XXX.XXX (adresse du client)

  • géolocalisation : ça trouve la localisation du client

Les x, c’est ton IPv6 en vrai ? Si oui, ça veut dire que tu communiques avec le site en IPv6, et du coup ça ne passe pas par ton VPN car il te manquerait peut-être une route.

Dans les AllowedIPs de tes clients, as-tu bien 0.0.0.0/0 (ça c’est sûr) et ::/0 (pour IPv6, ça j’en suis moins sûr) ?

(je parle vraiment au conditionnel, je suis une bille en réseau)

Illustration chez moi:

Non pas du tout effectivement, j’ai de mon côté :

IP Allocation : 10.10.10.1/32
Allowed IPs : 0.0.0.0/0

Fait intéressant, je n’ai pas le champ à cocher Use server DNS. Est-ce qu’il y a une mise à jour à effectuer ?