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