Как настроить управление сетевым устройством?

Моя связь с ProtonVPN постоянно прерывается. Я использую Ubuntu 18.04. ProtonVPN сообщает мне, что проблема связана с Ubuntu, они не помогут мне исправить это, и что я должен опубликовать здесь. Это кросс-сообщение этого вопроса о Unix SE .

Прямо сейчас, в нерабочем состоянии, два профиля устройства ProtonVPN proton0 и ipv6leakintrf0 указаны как «неуправляемые» и «отключенные» соответственно nmcli :

$ nmcli d
DEVICE          TYPE      STATE         CONNECTION 
wlp3s0          wifi      connected     WifiAP
ipv6leakintrf0  dummy     disconnected  --         
enp2s0          ethernet  unavailable   --         
lo              loopback  unmanaged     --         
proton0         tun       unmanaged     --

Служба поддержки ProtonVPN не смогла решить проблему после почти двух месяцев работы над ней, но они сообщили мне, что не поддерживают неуправляемые соединения. Итак, я изо всех сил пытаюсь сделать как proton0 , так и ipv6leakintrf0 «управляемыми».

Из того, что я могу собрать из документации по конфигурации NetworkManager , NetworkManager настраивает устройства из следующих источников в указанном порядке:

  1. /usr/lib/NetworkManager/conf.d/
  2. /run/NetworkManager/conf.d/
  3. /etc/NetworkManager/conf.d/
  4. /etc/NetworkManager.conf
  5. /var/lib/NetworkManager/NetworkManager-intern.conf

В трех каталогах файлы анализируются в порядке их перечисления. В моей системе файл /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf существует и содержит следующую директиву:

[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:wwan

Этот появляется для установки всех сетевых устройств без Wi-Fi и без WAN в состояние «неуправляемый», что объясняет, почему proton0 и, вероятно, ipv6leakintrf0 неуправляемы. Однако, учитывая, насколько плохо спроектирован NetworkManager UX, у меня нет возможности быть уверенным, что последующая конфигурация, которую я не понимаю, не отменяет эту директиву.

Я искал в приведенном выше списке конфигураций другую директиву unmanaged-devices и не нашел ни одной, поэтому могу предположить, что директива в 10-global-managed-devices.conf является директивой только один. В этом случае, похоже, я мог бы исправить проблему и сделать proton0 управляемым устройством, создав файл /usr/lib/NetworkManager/conf.d/80-proton-vpn.conf со следующим содержанием:

[device]
match-device=interface-name:proton0
managed=true

[device]
match-device=interface-name:ipv6leakintrf0
managed=true

где я собрал синтаксис по кусочкам, насколько это возможно, из плохой документации, указанной выше. Я перезапустил сетевой менеджер . ProtonVPN проработал несколько дней, прежде чем снова сломался, дав результат $ nmcli d , показанный выше, который указывает на то, что proton0 (и, вероятно, ipv6leakintrf0 ) все еще неуправляемы, несмотря на мои лучшие усилия по изменению конфига.

Этот ответ AskUbuntu указывает, что перечисление устройства в / etc / network / interfaces приведет к тому, что оно не будет управляться NetworkManager.В моем случае это неприменимо, единственным содержимым этого файла является

$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

. Я также пробовал явно исключить устройства ProtonVPN в 10-global-managed-devices.conf , как было предложено в комментарии к сообщение Unix SE, которое я указал выше:

[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:wwan,except:interface-name:proton*,except:interface-name:ipv6leakintrf*

После перезапуска network-manager эта конфигурация не внесла изменений в проблему.

Что еще мне нужно сделать, чтобы эти профили устройств управлялись NetworkManager?

Изменить

На вопрос «Как настроить управление сетевым устройством?» Для начала ответьте :

«Запустите команду

$ nmcli device set <name> managed yes

, где <имя> - соответствующая запись в столбце DEVICE вывода $ nmcli d ».

Я работал над этой проблемой так изматывающе долго, что забыл включить результаты этого. Вот они:

Когда я запускаю

$ nmcli device set proton0 managed yes

, это никак не влияет на 'proton0'. Вывод $ nmcli d продолжает показывать 'proton0' как "отключенный" (потому что я не могу подключиться), а вывод $ nmcli device show продолжает показывать 'proton0 'как имеющий GENERAL.STATE: 10 (неуправляемый) .

«ipv6leakintrf0» появлялся и исчезал в процессе устранения неполадок. Я не знаю почему, но поддержка ProtonVPN не сочла это достойным внимания, поэтому я предполагаю, что это ожидаемо. Когда он существует, выполнение

$ nmcli device set ipv6leakintrf0 managed yes

не имеет никакого эффекта. В выходных данных $ nmcli d он продолжает отображаться как «неуправляемый».Когда он не существует, выполнение команды $ nmcli device set возвращает ошибку Ошибка: устройство ipv6leakintrf0 не найдено. , что кажется нормальным. В настоящее время не существует.

дополнительная информация

Вот часть 'proton0' вывода $ nmcli device show :

GENERAL.DEVICE:                         proton0
GENERAL.TYPE:                           tun
GENERAL.HWADDR:                         (unknown)
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (unmanaged)
GENERAL.MTU:                            1500
GENERAL.STATE:                          20 (unavailable)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               off
2
задан 2 September 2021 в 15:54

1 ответ

Вот что у меня есть

$ cat /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf 
[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:gsm,except:type:cdma

У меня есть два устройства, которые, я уверен, соответствуют ProtonVPN, поскольку их дата модификации влияет на подключение/отключение

$ cat /run/NetworkManager/devices/19
[device]
managed=true
connection-uuid=...
nm-owned=false
$ cat /run/NetworkManager/devices/18 
[device]
managed=true
perm-hw-addr-fake=...
connection-uuid=...
nm-owned=true
route-metric-default-effective=550

Когда я отключен, они выглядят так

$ cat /run/NetworkManager/devices/19
[device]
nm-owned=false
$ cat /run/NetworkManager/devices/18 
[device]
managed=true
perm-hw-addr-fake=...
nm-owned=true

Я предполагаю, что они не предназначены для ручного изменения, но это может помочь.

Пожалуйста, опубликуйте результат

$ nmcli device show

Также, принудительное использование управляемых соединений, как показано в разделе https://developer-old.gnome.org/NetworkManager/unstable/NetworkManager.html может помочь

Свойства Udev

Менеджер устройств udev(7) используется для обнаружения сетевых устройств. Следующее свойство влияет на то, как NetworkManager управляет устройствами:

NM_UNMANAGED Если установлено значение "1" или "true", устройство настроено как неуправляемое NetworkManager. Обратите внимание, что пользователь все еще может явно отменить эту конфигурацию с помощью таких средств, как nmcli device set "$DEVICE" managed yes или "device*.managed=1" в NetworkManager.conf.

Поэтому, пожалуйста, опубликуйте результат использования

nmcli device set proton0 managed yes
nmcli device set ipv6leakintrf0 managed yes

как показано, например, здесь.

И проверьте с помощью ls -al /etc/udev/rules.d/ есть ли какое-нибудь правило udev, которое может сказать Network Manager прекратить контролировать интерфейс

2
ответ дан 4 September 2021 в 09:28

Другие вопросы по тегам:

Похожие вопросы: