Nu puteți folosi aceeași adresă în cea a clientului Punct final și IP-uri permise setări*. Punct final ar trebui să fie adresa serverului in afara tunelul și IP-uri permise ar trebui să includă toate adresele la care doriți să aveți acces interior tunelul.
Pentru a o repara, scăpați de src setarea pe ruta pe care ați adăugat-o la server, astfel încât ruta să folosească doar adresa serverului docker0 interfata:
ruta ip adăugați 10.254.99.0/24 prin 172.17.0.2 dev docker0
Apoi schimbați clientul WireGuard IP-uri permise setarea pentru a include adresa serverului docker0 interfata (172.17.0.1):
AllowedIps = 10.254.99.1/32, 172.17.0.1/32
Serverul dvs. îl va folosi acum docker0 adresa interfeței (172.17.0.1) ca sursă a pachetelor pe care le trimite prin rețeaua WireGuard.
Cu toate acestea, în loc să adăugați acel strat suplimentar de rutare pe serverul dvs., cel mai simplu lucru de făcut ar fi să rulați containerul WireGuard în modul de rețea „gazdă” (folosind --network=gazdă steag cu docker run, sau network_mode: gazdă aşezare cu docker-compune).Asta ar expune containerul WireGuard wg0 interfață direct la gazdă, astfel încât să nu aveți nevoie de reguli suplimentare de rutare pe server și nu ar trebui să adăugați IP-uri permise către client.
În acest caz, serverul ar folosi doar interfața WireGuard proprie 10.254.99.1 adresa ca sursă a pachetelor pe care le trimite prin rețeaua WireGuard.
* cu excepția cazului în care ați configurat niște reguli de rutare/filtrare a pachetelor de lux pe clientul dvs. în loc să utilizați valorile implicite pe care clientul WireGuard le setează pentru dvs.