Chìa khóa trong tình huống này là đảm bảo IP được phép
trên mỗi máy ngang hàng được cấu hình để cho phép địa chỉ IP đích của các gói bạn muốn gửi đến (hoặc gửi qua) sự ngang bằng.
Vì vậy, nếu khối CIDR cho trang cục bộ mà bạn muốn truy cập từ Máy chủ C qua Máy chủ A đến Máy chủ B là 10.0.0.0/24
, đảm bảo rằng IP được phép
cài đặt trên Máy chủ C cho Máy chủ A bao gồm 10.0.0.0/24
(như bạn có):
# Cấu hình Host C cho Host A ngang hàng
IP được phép = 10.201.50.0/24, 10.0.0.0/24
Và cũng là IP được phép
cài đặt trên Máy chủ A cho Máy chủ B bao gồm 10.0.0.0/24
(mà bạn đang thiếu):
# Host A cấu hình cho Host B ngang hàng
IP được phép = 10.201.50.2/32, 10.0.0.0/24
Nhưng từ mô tả của bạn về việc ping hoạt động còn SSH/HTTP thì không, bạn cũng có thể gặp sự cố MTU (các gói bị phân mảnh/bị từ chối vì chúng có kích thước hơi lớn đối với một bước nhảy cụ thể trên đường đi). Hãy thử thêm cài đặt này vào [Giao diện]
phần của mỗi cấu hình WireGuard:
MTU = 1280
Và bạn không cần giả mạo trên Máy chủ A (chỉ trên Máy chủ B, như bạn đã làm).
Tuy nhiên, nếu bạn muốn định tuyến tất cả các giao thông đường bộ (0.0.0.0/0
) từ Máy chủ C qua Máy chủ A sang Máy chủ B, hãy thay đổi cấu hình WireGuard Máy chủ A của bạn thành:
[Giao diện]
Khóa riêng tư = ...
Địa chỉ = 10.201.50.1/24
Cổng nghe = 51820
Bảng = 123
PreUp = sysctl -w net.ipv4.ip_forward=1
PreUp = quy tắc ip thêm iif %i bảng 123 ưu tiên 456
PostDown = quy tắc ip del iif %i bảng 123 ưu tiên 456
# đến máy chủ B
[Ngang nhau]
Khóa công khai = ...
IP được phép = 0.0.0.0/0
# đến máy chủ C
[Ngang nhau]
Khóa công khai = ...
IP được phép = 10.201.50.3/32
Điều này sẽ sử dụng một bảng định tuyến tùy chỉnh (123
) cho lưu lượng truy cập đó, để tránh gây rối với bảng định tuyến chính của Máy chủ A.
(Và thay đổi cấu hình Máy chủ C của bạn để sử dụng IP được phép = 0.0.0.0/0
cũng vậy, nhưng không có bất kỳ thay đổi nào khác đối với cấu hình của nó.)