Как отключиться от OpenVPN?


29

Я подключаюсь с помощью серверов VPNBook, и она отлично работает с этой командой:

 sudo openvpn --config /etc/openvpn/vpnbook-udp-53.ovpn --auth-user-pass /etc/openvpn/password.txt

но я просто не могу понять, как остановить это без перезагрузки.

Я пробовал service openvpn stopи /etc/init.d/vpnbook stop, но это, кажется, не влияет на это.


Как именно с ifconfig?
Адам

Какой это будет? eth0, lo, tun2 или wlan0
Адам

просто сделайте> sudo /etc/init.d/network-manager restart <
Qasim

Мне любопытно, когда VPN запускается таким образом, он не отображается в диспетчере сети. Я только всегда использовал диспетчер сети для подключения и отключения и в настоящее время не имею VPN для тестирования, но удивился.
Деннис

Ответы:


45

Эта команда определенно работает для меня, и она должна работать для вас тоже.

sudo killall openvpn

Может потребоваться sudo apt-get install psmiscна некоторых сборках
гео-теория

Я должен был убить -9 в Ubuntu 16.04 (да, я знаю ...)
Грегор,

11

Успешные шаги в моем случае были:

# stop the service    
$ sudo /etc/init.d/openvpn stop

# find the process if for some reason it keeps running
$ lsof -i | grep openvpn

# kill the proccess(s) by its PID
$ kill -9 <PID>

# if necessary restart the service again
$ sudo /etc/init.d/openvpn start


По какой-то причине killall -SIGIN openvpnу меня не сработало, но вышеперечисленные шаги сработали.


Ну, это лучший ответ на мой взгляд. Процесс уничтожения является странным методом, но запрос на остановку службы должен делать все как надо.
Сопалахо де Арриерес

В общем, вам не следует «убивать -9», пока вы не попробуете прервать или иначе не очистите его. Программы могут поймать прерывание и выполнить очистку, но не могут поймать сигнал девять (термин). В частности, в случае openvpn, уничтожение его с помощью -9не позволяет запускать пост-скрипты и, скорее всего, оставит недействительные маршруты, которые теперь лежат. В идеале вы должны kill -SIGINTподождать несколько секунд, пока pid не закончится, и использовать только -SIGTERM/, -9если он не выходил до этого.
dannysauer

4

Попробуй это

killall -SIGINT openvpn

Вы можете получить больше информации о различных сигналах, которые вы можете отправить здесь: http://openvpn.net/index.php/open-source/documentation/howto.html#control


killall -SIGINT openvpnopenvpn (15360): операция не разрешена openvpn: процесс не найден sudo killall -SICINT openvpn SICINT: неизвестный сигнал; killall -l перечисляет сигналы.
Адам

1
sudo killall openvpnу меня в новом терминале работал.
Адам

@Adam: это SIGINTнеSICINT
Dzamo Нортон

Команды kill и killall отправляют SIGTERM по умолчанию, что, как сказано в документации, имеет тот же эффект, что и SIGINT. Таким образом, любой из них будет работать одинаково - если правильно написано. ;)
dannysauer

3

Просто нажмите CTRL+ Cв терминале, вы только что запустили OpenVPN.


2
Что если он был запущен с флагом -daemon (background)? Это невозможно в этом случае.
г-н-ск

1
Кроме того, это оставляет «tun0» в качестве интерфейса, поэтому невозможно перезапустить без перезагрузки или внесения некоторых изменений в системный конфигурационный файл во время работы.
Деннис

1
Что, если терминал был закрыт случайно? ?
Варун

@Dennis ifconfig tun0 downпомогает в этом случае.
gnysek

2

В случае, если работа sudo killall openvpnне закончена (я испытал это несколько раз), тогда острым и фатальным решением будет:

pgrep openvpn | xargs sudo kill -9

0

после запуска sudo killall openvpnили service openvpn stopвиртуальный интерфейс "tun0" останется открытым и на него будут ссылаться в таблице маршрутов, поэтому фактически связанные соединения будут потеряны, так как служба openvpn будет уничтожена.

решение состоит в том, чтобы удалить это виртуальное соединение после уничтожения сервиса openvpn, так как оно создается каждый раз, когда сервис openvpn подключается.

поэтому вам нужно запустить следующие команды для отключения openvpn:

$ sudo killall openvpn
$ sudo ip link delete tun0

-1

sudo update-rc.d отключить openvpn

Или отредактируйте файл конфигурации в / etc / default / openvpn

sudo nano / etc / default / openvpn

И раскомментируйте строку:

#AUTOSTART="none"

Так это выглядит так:

AUTOSTART="none"

Тогда вам придется бежать:

sudo service openvpn start < vpn-name > вручную запустить VPN.

sudo service openvpn stop < vpn-name > вручную остановить VPN.

<vpn-name> - это имя файла конфигурации без расширения .conf

находится в / etc / openvpn и без <>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.