Главное в этой ситуации убедиться Разрешенные IP-адреса
на каждом узле настроен так, чтобы разрешить IP-адреса назначения пакетов, которые вы хотите Отправить (или же отправить через) сверстник.
Таким образом, если блок CIDR для локального сайта, к которому вы хотите получить доступ с хоста C через хост A на хост B, 10.0.0.0/24
, убедитесь, что Разрешенные IP-адреса
настройка на хосте C для хоста A включает 10.0.0.0/24
(как у вас):
# Конфигурация узла C для узла узла A
Разрешенные IP-адреса = 10.201.50.0/24, 10.0.0.0/24
А также, что Разрешенные IP-адреса
настройка на хосте A для хоста B включает 10.0.0.0/24
(что вам не хватает):
# Конфигурация узла A для узла узла B
Разрешенные IP-адреса = 10.201.50.2/32, 10.0.0.0/24
Но из вашего описания работы ping и SSH/HTTP нет, у вас также может быть проблема с MTU (пакеты фрагментированы/отклонены, потому что их размер слишком велик для одного конкретного прыжка по пути). Попробуйте добавить этот параметр в [Интерфейс]
раздел каждой конфигурации WireGuard:
МТУ = 1280
И вам не нужно маскироваться на хосте A (только на хосте B, как у вас).
Однако, если вы хотите направить все трафик (0.0.0.0/0
) с хоста C через хост A на хост B измените конфигурацию WireGuard хоста A на это:
[Интерфейс]
Приватный ключ = ...
Адрес = 10.201.50.1/24
Порт прослушивания = 51820
Таблица = 123
PreUp = sysctl -w net.ipv4.ip_forward=1
PreUp = ip rule add iif %i таблица 123 приоритет 456
PostDown = ip rule del iif %i таблица 123 приоритет 456
# к хосту Б
[Вглядеться]
Публичный ключ = ...
Разрешенные IP-адреса = 0.0.0.0/0
# к хосту C
[Вглядеться]
Публичный ключ = ...
Разрешенные IP-адреса = 10.201.50.3/32
Это будет использовать пользовательскую таблицу маршрутизации (123
) для этого трафика, чтобы избежать проблем с основной таблицей маршрутизации узла А.
(И измените конфигурацию хоста C, чтобы использовать Разрешенные IP-адреса = 0.0.0.0/0
тоже, но без каких-либо других изменений в его конфигурации.)