Ручной процесс Wireguard, но нет пинга

Вопрос или проблема

Я застрял на самом базовом этапе, который заключается в настройке ПК2 (10.0.0.3) для разрешения подключений от ПК1 (10.0.0.1). Просто простое соединение, без VPN или чего-то подобного, на данный момент.

Я использую Fedora Workstation, и не могу найти правило, чтобы это заработало. Отключение firewalld работает, а также установка цели на ACCEPT. Оба устройства настроены на использование порта 51820/udp, так что я не совсем уверен, что еще я должен сделать.

На данный момент у меня есть следующее:

sudo firewall-cmd --zone=FedoraWorkstation --add-interface=wg0 --permanent && sudo firewall-cmd --reload

sudo firewall-cmd --zone=FedoraWorkstation --add-port=51820/udp --permanent && sudo firewall-cmd --reload

ПК1

[Интерфейс]
Адрес = 10.0.0.1/32
ПриватныйКлюч = скрыто
ПортПрослушивания = 51820

[Партнер]
ПубличныйКлюч = скрыто
КонечнаяТочка = скрыто:51820
РазрешенныеIP = 10.0.0.3/32
ПК2

[Интерфейс]
Адрес = 10.0.0.3/32
ПриватныйКлюч = скрыто
ПортПрослушивания = 51820

[Партнер]
ПубличныйКлюч = скрыто
КонечнаяТочка = скрыто:51820
РазрешенныеIP = 10.0.0.1/32

Это вывод tcpdump на ПК2, когда я пингую с ПК1. Таким образом, пакеты пинга принимаются, но нет ответа или подключения на ПК1.

sudo tcpdump -nn -i wlp3s0 udp and port 51820
права доступа были уменьшены для tcpdump
tcpdump: подробный вывод подавлен, используйте -v[v]... для полного декодирования протокола
прослушивание на wlp3s0, тип канала EN10MB (Ethernet), длина снимка 262144 байта
22:56:47.997045 IP ПК1_PUBLIC_IP.51820 > 192.168.1.23.51820: UDP, длина 128
22:56:49.022044 IP ПК1_PUBLIC_IP.51820 > 192.168.1.23.51820: UDP, длина 128
22:56:50.114223 IP ПК1_PUBLIC_IP.51820 > 192.168.1.23.51820: UDP, длина 128
22:56:51.070079 IP ПК1_PUBLIC_IP.51820 > 192.168.1.23.51820: UDP, длина 128
22:56:52.346737 IP ПК1_PUBLIC_IP.51820 > 192.168.1.23.51820: UDP, длина 128
sudo tcpdump -nn -i wg0
права доступа были уменьшены для tcpdump
tcpdump: подробный вывод подавлен, используйте -v[v]... для полного декодирования протокола
прослушивание на wg0, тип канала RAW (Raw IP), длина снимка 262144 байта
22:58:09.918580 IP 10.0.0.1 > 10.0.0.3: ICMP echo request, id 48, seq 1000, длина 64
22:58:10.943419 IP 10.0.0.1 > 10.0.0.3: ICMP echo request, id 48, seq 1001, длина 64
22:58:11.967695 IP 10.0.0.1 > 10.0.0.3: ICMP echo request, id 48, seq 1002, длина 64
22:58:12.990758 IP 10.0.0.1 > 10.0.0.3: ICMP echo request, id 48, seq 1003, длина 64
22:58:14.014762 IP 10.0.0.1 > 10.0.0.3: ICMP echo request, id 48, seq 1004, длина 64

ПК1:

ping -c 10 10.0.0.3
PING 10.0.0.3 (10.0.0.3) 56(84) байт данных.

--- 10.0.0.3 статистика пинга ---
10 пакетов отправлено, 0 получено, 100% потеря пакетов, время 9217мс

Ответ или решение

Когда вы сталкиваетесь с проблемой подключения между двумя ПК, использующими WireGuard, но не можете получить ответ на пинг, это может быть вызвано несколькими причинами. Давайте рассмотрим основные моменты и возможные решения вашей ситуации.

1. Статус соединения

Судя по вашему описанию, ваши ПК (PC1 с адресом 10.0.0.1 и PC2 с адресом 10.0.0.3) настроены на использование WireGuard с сетью 10.0.0.0/24. Вы упомянули, что успешно выполняете начальную перезагрузку правил firewalld и открываете нужные порты. Однако, судя по выводу tcpdump на PC2, пакеты от PC1 доходят, но не возвращаются обратно.

2. Настройка WireGuard

Убедитесь, что настройки WireGuard верные. Основные параметры в конфигурации должны быть следующими:

PC1

[Interface]
Address = 10.0.0.1/32
PrivateKey = hidden
ListenPort = 51820

[Peer]
PublicKey = hidden
Endpoint = PC2_PUBLIC_IP:51820
AllowedIPs = 10.0.0.3/32

PC2

[Interface]
Address = 10.0.0.3/32
PrivateKey = hidden
ListenPort = 51820

[Peer]
PublicKey = hidden
Endpoint = PC1_PUBLIC_IP:51820
AllowedIPs = 10.0.0.1/32

Ключевые моменты:

  • PublicKey и Endpoint должны быть правильно настроены, обратите внимание на возможные ошибки в конфигурации.
  • Используйте публичные IP-адреса вместо локальных для Endpoint.

3. Проверка маршрутизации

Проверьте маршрут (route) на обоих машинах, чтобы убедиться, что пакеты правильно направляются.

На PC1 выполните:

ip route show

На PC2 выполните:

ip route show

Убедитесь, что маршруты для адресов 10.0.0.0/24 настроены верно. Возможно, необходимо добавить маршрут вручную.

4. Настройки firewalld

Убедитесь, что firewalld правильно настроен для маршрутизации пакетов. Для отвода трафика через интерфейс wg0, выполните следующие команды:

sudo firewall-cmd --zone=work --add-interface=wg0 --permanent
sudo firewall-cmd --zone=work --add-masquerade --permanent
sudo firewall-cmd --reload

Также важно проверить настройки интерфейса, который отвечает за локальную сеть. Убедитесь, что разрешен проход трафика.

5. Проверка состояния сервисов

Убедитесь, что WireGuard работает на обоих машинах:

sudo systemctl status wg-quick@wg0

Если сервис не активен, запустите его:

sudo systemctl start wg-quick@wg0

6. Проблемы с NAT и MTU

Если у вас есть роутеры, которые могут препятствовать UDP-трафику, убедитесь, что NAT (Network Address Translation) настроен правильно.

Кроме того, обратите внимание на MTU (Maximum Transmission Unit). Попробуйте изменить размер MTU на 1420 или 1400 и посмотрите, поможет ли это.

Заключение

Если вы соблюли все вышеперечисленные рекомендации и проблема остается, посмотрите логи системы и WireGuard, чтобы получить больше информации об ошибках. Логирование может помочь выявить природу проблемы.

При выполнении всех этих шагов, скорее всего, вы сможете устранить проблему с отсутствием соединения, и ваш ping должен начать работать. Если возникнут дополнительные вопросы, не стесняйтесь задавать их — это поможет более точно определить тонкости вашей конфигурации.

Оцените материал
Добавить комментарий

Капча загружается...