Вопрос или проблема
Моя настройка выглядит следующим образом:
- Ноутбук на базе Debian/KDE, подключенный к локальной сети с локальным IP
192.168.178.25
- Raspberry Pi, подключенный к локальной сети с локальным IP
192.168.178.35
И работающий как сервер WireGuard, при этом сам Pi имеет WireGuard-IP10.117.42.1/24
- Модем-роутер Fritz Box, являющийся шлюзом локальной сети с IP
192.168.178.1
. Внешний DNS Fritz Box —192.168.178.35 (то есть Raspberry)
, так как Raspberry выполняет функции PiHole - Android телефон, подключающийся к интернету через WireGuard, с WireGuard IP
10.117.42.2/24
, WireGuard DNS192.168.178.35
,AllowedIPs = 0.0.0.0/0, ::0/0
.
Если я запускаю программу KDE либо на ноутбуке, либо на телефоне, они не могут видеть друг друга. Даже при вводе адресов вручную они не могут найти друг друга. Очевидно, если я отключу WireGuard VPN на телефоне и подключу как ноутбук, так и телефон к одной и той же WiFi-сети, всё работает как ожидалось.
С моего Android-телефона я могу без проблем получить доступ к веб-серверам, размещенным на Raspberry, что означает, что у меня есть доступ ко всей локальной сети. Так почему же программа KDE Connect не видит ноутбук по адресу 192.168.178.25?
[ПС] Почему мой ноутбук не подключается как пир в сети WireGuard? Потому что, если я нахожусь вне дома и мне нужно получить доступ к локальной сети с ноутбука, я могу просто создать мобильную точку доступа с телефона, используя его WireGuard-соединение.
Забудьте об этом. KDE Connect не будет работать через WireGuard. WireGuard не будет пересылать ICMP широковещательные сообщения, точка. ICMP широковещательные сообщения не были нужны, когда устройства связывались явно по IP, но что-то изменилось в некоторых более новых версиях KDE Connect, и теперь они требуются даже для этого, так что вопрос решен.
Ответ или решение
KDE Connect — это мощное средство для связи между устройствами, однако, в вашем случае возникли некоторые ограничения при использовании WireGuard VPN. Давайте подробно рассмотрим проблемы, с которыми вы столкнулись, и возможные решения.
Основные проблемы
-
ICMP Broadcast: KDE Connect использует ICMP для обнаружения других устройств в сети. Проблема в том, что WireGuard не перенаправляет ICMP-широковещательные пакеты, что мешает нормальному обнаружению устройств. Это объясняет, почему ваше устройство с Android не видит ваш ноутбук в локальной сети, когда WireGuard активен.
-
Настройки AllowedIPs: Параметр
AllowedIPs = 0.0.0.0/0, ::0/0
на вашем Android-устройстве означает, что весь трафик проходит через WireGuard-соединение. Это также может повлиять на возможность обнаружения локальных сервисов.
Возможные решения
-
Измените настройки WireGuard:
- Попробуйте указать более конкретный диапазон IP-адресов для
AllowedIPs
. Например, вы можете добавить локальную подсеть, чтобы разрешить доступ к локальным IP-адресам при активном VPN:AllowedIPs = 192.168.178.0/24, 10.117.42.0/24
- Это должно позволить вашему Android-устройству видеть локальные устройства, такие как ваш ноутбук с IP 192.168.178.25.
- Попробуйте указать более конкретный диапазон IP-адресов для
-
Проверка настроек KDE Connect:
- Убедитесь, что на обоих устройствах (ноутбук и телефон) установлены последние версии KDE Connect.
- Попробуйте вручную подключиться к устройствам, используя IP-адреса.
-
Использование альтернативных методов подключения:
- Если проблема сохраняется, рассмотрите возможность использования других методов передачи данных (например, синхронизация через облачные сервисы) или внешних приложений для обмена файлами, таких как Syncthing или Resilio Sync.
Заключение
К сожалению, использование WireGuard в текущем виде может создавать ограничения для работы с KDE Connect из-за несоответствия в том, как обрабатываются ICMP-широковещательные пакеты. Несмотря на это, настройка AllowedIPs
и обновление программного обеспечения могут помочь вам оптимизировать связь между вашими устройствами.
Если у вас возникнут дополнительные вопросы или если вы будете нуждаться в дальнейшей помощи, не стесняйтесь обращаться!