openvpn через командную строку: разрешение отказано в обновлении resolv.conf

Моим любимым является pstree -p | grep $(program_name). Это действительно сглаживает процесс, выделяет его и показывает pid в круглых скобках.

Следующим моим любимым (особенно при программировании и потребностью всех pids из процесса) является pgrep -law "". Это

. Это может быть сведено к pgrep -lw "" для pid, за которым следует имя программы или даже просто pgrep -l для всех pids

. ]

Конечно, вы можете искать определенную программу (или часть имени программы). (т. е. pgrep -lw firef, вероятно, отобразит что-то вроде «4567 firefox»).

2
задан 20 August 2017 в 17:11

4 ответа

Независимо от того, что вам действительно нужно или нужно делать, этот бит здесь:

up /etc/resolv.conf down /etc/resolv.conf

не работает. Скорее, пакет openvpn-systemd-resolved динамически обновляет файл /etc/resolv.conf, указывая исполняемый скрипт после up и down в confv клиента openvpn (согласно связанному (и неполному!) «Учебнику»). Но также обратите внимание, что существуют разные версии этой функции; более поздние версии используют dbus, на который я ссылаюсь; в предыдущей версии использовались только скрипты и amp; временные файлы. Поэтому [здесь]

Итак, если этот пакет установлен (либо через apt-get, либо apt):

sudo apt-get install openvpn-systemd-resolved

и (если нет: включить его и запустить вручную):

sudo service systemd-resolved status

, тогда должен быть установлен скрипт как /etc/openvpn/update-resolv-conf (или, возможно, в /etc/openvpn/scripts/ в других дистрибутивах) который изменяет /etc/resolv.conf для вас.

Итак, ваш клиент openvpn conf (который на клиентах, не относящихся к Windows, должен иметь условный суффикс «.conf», и они будут автоматически прочитаны, если в /etc/openvpn, но в окнах они обычно используют .ovpn для правильной ассоциации файлов w / openvpn) - confv vv openvpn будет содержать, например,

script-security 2 setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin up /etc/openvpn/update-systemd-resolved down /etc/openvpn/update-systemd-resolved down-pre

. Тогда вы заметите, что скрипт /etc/openvpn/update-systemd-resolved должен быть исполняемым (по умолчанию), а /etc/resolv.conf будет простым текстовым файлом, который затем обновляется с помощью правильных записей domain, nameserver, search (это изменяет исполняемый скрипт).

Последний элемент, связанный между собой, состоит в том, чтобы изменить /etc/nsswitch.conf, чтобы содержать что-то вроде следующего (заменив существующую запись hosts:):

# Use systemd-resolved first, then fall back to /etc/resolv.conf hosts: files resolve dns myhostname

См. более поздние версии используют dbus для деталей и опций.

1
ответ дан 18 July 2018 в 08:13

Единственное решение, о котором я могу думать, это запустить

sudo -s

Затем запустить

openvpn --config file.ovpn

Если это не работает, попробуйте запустить

sudo chown root /etc/resolv.conf

или

sudo chown $USER /etc/resolv.conf

и в крайнем случае

sudo chmod 777 /etc/resolv.conf

Используйте только chmod 777, если ничего не работает, поскольку это может вызвать дыру в безопасности.

0
ответ дан 18 July 2018 в 08:13

Независимо от того, что вам действительно нужно или нужно делать, этот бит здесь:

up /etc/resolv.conf down /etc/resolv.conf

не работает. Скорее, пакет openvpn-systemd-resolved динамически обновляет файл /etc/resolv.conf, указывая исполняемый скрипт после up и down в confv клиента openvpn (согласно связанному (и неполному!) «Учебнику»). Но также обратите внимание, что существуют разные версии этой функции; более поздние версии используют dbus, на который я ссылаюсь; в предыдущей версии использовались только скрипты и amp; временные файлы. Поэтому [здесь]

Итак, если этот пакет установлен (либо через apt-get, либо apt):

sudo apt-get install openvpn-systemd-resolved

и (если нет: включить его и запустить вручную):

sudo service systemd-resolved status

, тогда должен быть установлен скрипт как /etc/openvpn/update-resolv-conf (или, возможно, в /etc/openvpn/scripts/ в других дистрибутивах) который изменяет /etc/resolv.conf для вас.

Итак, ваш клиент openvpn conf (который на клиентах, не относящихся к Windows, должен иметь условный суффикс «.conf», и они будут автоматически прочитаны, если в /etc/openvpn, но в окнах они обычно используют .ovpn для правильной ассоциации файлов w / openvpn) - confv vv openvpn будет содержать, например,

script-security 2 setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin up /etc/openvpn/update-systemd-resolved down /etc/openvpn/update-systemd-resolved down-pre

. Тогда вы заметите, что скрипт /etc/openvpn/update-systemd-resolved должен быть исполняемым (по умолчанию), а /etc/resolv.conf будет простым текстовым файлом, который затем обновляется с помощью правильных записей domain, nameserver, search (это изменяет исполняемый скрипт).

Последний элемент, связанный между собой, состоит в том, чтобы изменить /etc/nsswitch.conf, чтобы содержать что-то вроде следующего (заменив существующую запись hosts:):

# Use systemd-resolved first, then fall back to /etc/resolv.conf hosts: files resolve dns myhostname

См. более поздние версии используют dbus для деталей и опций.

1
ответ дан 24 July 2018 в 19:02

Единственное решение, о котором я могу думать, это запустить

sudo -s

Затем запустить

openvpn --config file.ovpn

Если это не работает, попробуйте запустить

sudo chown root /etc/resolv.conf

или

sudo chown $USER /etc/resolv.conf

и в крайнем случае

sudo chmod 777 /etc/resolv.conf

Используйте только chmod 777, если ничего не работает, поскольку это может вызвать дыру в безопасности.

0
ответ дан 24 July 2018 в 19:02
  • 1
    Спасибо за ваш ответ! Ни один из ваших безопасных методов не работал, поэтому я проверил, что у chmod у меня есть resolv.conf, поэтому я могу отменить изменения позже. К моему удивлению, у меня уже было 777. Я выполнил вашу команду в любом случае, к сожалению, это не помогло: / Теперь я изменил свой resolv.conf на 644 по умолчанию – Alex 21 August 2017 в 12:55

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

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