Это могло бы быть дубликатом этого вопроса, но я не являюсь достаточно опытным в сетях вопросов для сообщения наверняка.
Я использую сервис VPN под названием Киберфантом для пребывания частным в Интернете. После направления с DNS протекает при использовании network-manager
Я пытался использовать командную строку, и реализация фиксирует продвинутый онлайн. Aparantly block-outside-dns
работы над окнами только. Поэтому я следовал этому учебному руководству и добавил строки
script-security 2
up /etc/resolv.conf
down /etc/resolv.conf
в .ovpn файл, обеспеченный киберфантомом.
При попытке соединить использование
sudo openvpn --config /home/username/CG/DE/DE.ovpn
однако я получаю следующую ошибку:
Options error: --up script fails with '/etc/resolv.conf': Permission denied
Options error: Please correct this error.
Use --help for more information.
Соединение без вверх и вниз по команде хорошо работает, но вызывает утечки DNS. Я не встречаюсь с проблемами, вручную редактируя resolv.conf
использование sudo полномочия поэтому, я не уверен, почему openvpn должен испытать недостаток в разрешении сделать так.
Спасибо за Ваши мысли и Вашу справку,
Alex
Система: Kubuntu 17.04
2.4.0-4ubuntu1.3 openvpn
Полный .ovpn-файл следующие:
client
remote 1-de.cg-dialup.net 443
dev tun
proto udp
auth-user-pass /home/username/CG/DE/auth.txt
resolv-retry infinite
redirect-gateway def1
persist-key
persist-tun
nobind
cipher AES-256-CBC
auth MD5
ping 5
ping-exit 60
ping-timer-rem
explicit-exit-notify 2
script-security 2
remote-cert-tls server
route-delay 5
tun-mtu 1500
fragment 1300
mssfix 1300
verb 4
comp-lzo
ca /home/username/CG/DE/ca.crt
cert /home/username/CG/DE/client.crt
key /home/username/CG/DE/client.key
script-security 2
up /etc/resolv.conf
down /etc/resolv.conf
Единственное решение, о котором я могу думать, работает
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
, если ничто иное не работает, поскольку это может вызвать дыру в системе безопасности.
Независимо от того, является ли это тем, что Вы действительно хотите или должны сделать, этот бит здесь:
up /etc/resolv.conf
down /etc/resolv.conf
не то, как эта функциональность работает. Скорее openvpn-systemd-resolved
пакет динамично обновляет файл /etc/resolv.conf
, путем определения исполняемого сценария после up
и down
в Вашем openvpn клиенте conf (согласно связанному (и неполный!) "учебное руководство"). Но также и, примечание там является различными версиями этой функциональности; более поздние версии используют dbus, на который я ссылаюсь; предыдущая версия просто использовала сценарии и временные файлы. Так вот почему существует некоторое несоответствие через статьи/документы/учебные руководства.
Так, принятие этого пакета установлено (любой через 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) - openvpn клиент conf содержал бы, например,
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
Посмотрите связанную update-systemd-resolved страницу GitHub для деталей и опций.