Вопрос или проблема
Я установил приложение KDE Connect на свой настольный компьютер и телефон [Xiaomi Redmi 3S Prime]. Однако настольное приложение не обнаруживает мой телефон и наоборот.
Я проверил порты. Они открыты. Брандмауэр не установлен. Я также пытался добавить свой ПК вручную, вводя IP-адрес в приложении для Android, но это не сработало. Я также пытался перезапустить демон kdeconnectd, но это тоже не помогло.
РЕДАКТИРОВАТЬ: Вот вещи, которые я попробовал.
Пожалуйста, помогите с любыми решениями, которые у вас есть.
PS. Это может показаться дубликатом, но я перепробовал почти все решения, которые существуют, но ничего не работает. Поэтому я здесь.
Я заметил, что kdeconnect слушает только IPv6. У меня была эта проблема. Я не помню, как это исправил. Думаю, что kdeconnect иногда скомпилирован для использования только IPv6.
- Решение будет включать получение исправленной версии kdeconnect.
- Настройка локального перенаправителя портов (для прослушивания на этом порту на IPv4 и перенаправления на IPv6).
Я только что решил эту проблему с подключением с помощью сброса каталога конфигурации kdeconnect, хотя я до сих пор не нашел IPv4…
❯ lsof -i | grep kdec kdeconnec 26104 zzndb 13u IPv6 424583 0t0 UDP *:xmsg kdeconnec 26104 zzndb 15u IPv6 424584 0t0 TCP *:xmsg (LISTEN) kdeconnec 26104 zzndb 27u IPv6 697149 0t0 TCP 192.168.0.110:45944->192.168.0.115:xmsg (ESTABLISHED)
Подробности по сбросу могут быть такими:
- убить kdeconnectd с помощью
killall kdeconnectd
- сделать резервную копию старого каталога с помощью
mv ~/.config/kdeconnect{,_bak}
- запустить kdeconnectd с помощью
nohup /the/path/to/your/kdeconnectd &>/dev/null &
Когда вы сможете подключиться к своему устройству, вы можете восстановить конфигурационный файл из старого резервного каталога, например, kdeconnect_runcommand/config
.
Откройте диапазоны портов 1714:1764/udp
и 1714:1764/tcp
Если вы используете ufw
:
- в
/etc/ufw/applications.d/
создайте текстовый файл с именемkdeconnect
и добавьте[kdeconnect] title=KDE Connect description=Device Synchronization ports=1714:1764/udp|1714:1764/tcp
- в консоли выполните
sudo ufw allow kdeconnect
Столкнувшись с той же проблемой, я был уверен, что на моей машине не работает брандмауэр, поскольку порты не были заблокированы. Однако наткнулся на этот документ KDE с инструкциями по открытию брандмауэра для различных пакетов Linux и выяснил, что firewalld
действительно работает, поэтому следующее помогло мне:
sudo firewall-cmd --permanent --zone=public --add-service=kdeconnect sudo firewall-cmd --reload
- Во-первых, ваш маршрутизатор может изолировать связь между устройствами для безопасности.
- Убедитесь, что ваш телефон также использует ipv6. (так как ваш компьютер, кажется, использует ipv6)
- Попробуйте выполнить ping компьютера с телефона и затем ping телефона с компьютера
- Также убедитесь, что компьютер и телефон подключены к одной сети
Как только вы исправите связь между устройствами и убедитесь, что они используют один и тот же протокол в одной и той же сети Wi-Fi, это должно быть исправлено…
Судя по вашей версии Ubuntu, ваша версия KDE connect должна быть 0.8. Однако, если это 1.0, то есть вероятность, что проблема или:
Альтернативное решение может быть полностью отключить ipv6.
К вашему сведению, у меня была похожая проблема, моя же проблема была связана с --zone=public
Я назначил свою сеть в зону “home” и забыл об этом.
После использования корректной зоны в команде firewall-cmd
все заработало.
sudo firewall-cmd --permanent --zone=home --add-service=kdeconnect sudo firewall-cmd --reload
.
Ответ или решение
Общая теория
KDE Connect – это инструмент, который позволяет устройствам, работающим на различных платформах (например, вашему десктопу с Ubuntu и мобильному телефону на Android), взаимодействовать друг с другом в одной сети. На практике это может использоваться для передачи файлов, синхронизации уведомлений и прочих задач. Однако для полноценной работы этих функций необходимо, чтобы устройства могли находить друг друга и устанавливать связь. Ваше описание проблемы указывает на то, что взаимное обнаружение устройств в данный момент не происходит.
Возможные теоретические причины проблемы
-
Вероятные сетевые ограничения:
- Изоляция устройств маршрутизатором для обеспечения безопасности – это один из факторов, который может блокировать обнаружение.
- Неверная конфигурация сети (например, устройства находятся в разных подсетях).
-
IPv6 и IPv4 несовместимость:
- Часто программы, такие как KDE Connect, могут быть скомпилированы для работы только с IPv6, что может стать проблемой, если одно из устройств не поддерживает его.
-
Проблемы с конфигурацией сетевых служб и правил безопасности:
- Наличие активно работающего firewall, возможно, блокирует необходимые порты или службы.
- Ошибки при конфигурации сетевых параметров, таких как зоны файрволла.
Практический подход к решению проблемы
-
Проверка сетевого окружения:
- Убедитесь, что оба устройства подключены к одной и той же Wi-Fi сети и находятся в одной подсети.
- Попробуйте отключить функции изоляции клиентов в настройках вашего роутера.
-
Настройки и конфигурация сети:
- Проверьте, какие версии сетевых протоколов (IPv4/IPv6) поддерживаются обоими устройствами. Если одно из устройств не поддерживает IPv6, рассмотрите возможность отключения IPv6 на ПК, как временное решение.
-
Управление безопасностью системы:
- Переконфигурируйте файерволл на ПК. Если используетесь
ufw
, добавьте новую службу, например, следующим образом:
echo -e "[kdeconnect]\ntitle=KDE Connect\ndescription=Device Synchronization\nports=1714:1764/udp|1714:1764/tcp" | sudo tee /etc/ufw/applications.d/kdeconnect sudo ufw allow kdeconnect
- Если же используется firewalld, убедитесь, что вы разрешаете службу для соответствующей зоны (например,
home
, если сеть домашняя):
sudo firewall-cmd --permanent --zone=home --add-service=kdeconnect sudo firewall-cmd --reload
- Переконфигурируйте файерволл на ПК. Если используетесь
-
Обновление и диагностика KDE Connect:
- Убедитесь, что версия вашего KDE Connect актуальна или отлаженная. Пользователи Ubuntu 16.04 могут столкнуться с проблемами в версии 0.8. Если возможно, обновитесь до более свежей версии, если таковая доступна.
- Вы также можете попробовать сброс настроек конфигурации KDE Connect:
killall kdeconnectd mv ~/.config/kdeconnect{,_bak} nohup /path/to/kdeconnectd &> /dev/null &
-
Проверка работы портов:
- Убедиться, что порты, используемые KDE Connect (1714-1764), открыты для входящих и исходящих соединений, как по TCP, так и по UDP протоколам.
Применение и воспроизведение
- Проведите диагностику сети, используя команды
ping
иtraceroute
для проверки связности. Например, пингуйте телефон с десктопа и обратно, чтобы убедиться в доступности. - Проверьте, запускаются ли службы KDE Connect и на каких адресах и портах происходит взаимодействие. Используйте команды
lsof -i
илиnetstat -an
для получения этой информации. - Если всё ещё не решено, рассмотрите возможность использования портфорвардинга с IPv4 на IPv6, чтобы обойти ограничение только IPv6 доступа.
Этот детализированный подход должен помочь решить проблемы с подключением устройств через KDE Connect, обеспечив при этом их исправную работу в вашей локальной сети.