Bạn không thể sử dụng cùng một địa chỉ trong địa chỉ của khách hàng điểm cuối và IP được phép cài đặt*. điểm cuối phải là địa chỉ của máy chủ ở ngoài đường hầm và IP được phép nên bao gồm tất cả các địa chỉ bạn muốn có quyền truy cập phía trong đường hầm.
Để khắc phục, hãy loại bỏ src cài đặt trên tuyến đường bạn đã thêm vào máy chủ, để tuyến đường sẽ chỉ sử dụng địa chỉ của máy chủ docker0 giao diện:
tuyến ip thêm 10.254.99.0/24 qua 172.17.0.2 dev docker0
Sau đó thay đổi ứng dụng khách WireGuard IP được phép cài đặt để bao gồm địa chỉ của máy chủ docker0 giao diện (172.17.0.1):
Ips được phép = 10.254.99.1/32, 172.17.0.1/32
Máy chủ của bạn bây giờ sẽ sử dụng nó docker0 địa chỉ giao diện (172.17.0.1) làm nguồn gói mà nó gửi qua mạng WireGuard của bạn.
Tuy nhiên, thay vì thêm lớp định tuyến bổ sung đó trên máy chủ của bạn, điều đơn giản nhất cần làm là chạy bộ chứa WireGuard ở chế độ mạng "máy chủ" (sử dụng --mạng=máy chủ cờ với docker chạy, hoặc là network_mode: máy chủ thiết lập với soạn thảo docker).Điều đó sẽ làm lộ bộ chứa WireGuard wg0 giao diện trực tiếp với máy chủ, vì vậy bạn sẽ không cần các quy tắc định tuyến bổ sung trên máy chủ và bạn sẽ không cần bổ sung thêm IP được phép cho khách hàng.
Trong trường hợp đó, máy chủ sẽ chỉ sử dụng giao diện riêng của giao diện WireGuard 10.254.99.1 địa chỉ làm nguồn của các gói mà nó gửi qua mạng WireGuard của bạn.
* trừ khi bạn thiết lập một số quy tắc định tuyến/lọc gói ưa thích trên máy khách của mình thay vì sử dụng các giá trị mặc định mà máy khách WireGuard thiết lập cho bạn