如何断开与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可以测试,但很奇怪。
丹尼斯

Answers:


45

该命令绝对对我有用,它也对您有用。

sudo killall openvpn

可能需要sudo apt-get install psmisc一些构建
geotheory

我必须在Ubuntu 16.04上杀死-9(是的,我知道...)
Gregor,

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,该方法对我不起作用,但上述步骤确实有效。


好吧,这是我认为的最佳答案。杀死进程是一种怪异的方法,但是请求服务停止应该做必须做的事情。
Sopalajo de Arrierez,2015年

通常,在尝试中断或首先干净地存在它之前,您不应“杀死-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在一个新的航站楼为我工作。
亚当,

@亚当:是的SIGINT,不是SICINT
Dzamo Norton

默认情况下,kill和killall命令发送SIGTERM,该文档说与SIGINT具有相同的作用。因此,如果拼写正确,则两者都将等效工作。;)
dannysauer

3

只要按下CTRL+ C在你刚开始OpenVPN的终端。


2
如果使用-daemon(后台)标志启动该怎么办?在这种情况下是不可能的。
mr-sk

1
同样,这留下了“ tun0”作为接口,因此如果不重新启动或在运行时进行一些系统配置文件的编辑就无法重新启动。
丹尼斯

1
如果终端意外关闭怎么办。?
varun '16

ifconfig tun0 down在这种情况下,@ Dennis会提供帮助。
gnysek

2

如果sudo killall openvpn没有完成这项工作(我经历过几次),那么一个明智而致命的解决方案是:

pgrep openvpn | xargs sudo kill -9

0

运行后sudo killall openvpnservice openvpn stop虚拟接口“ tun0”将保持打开并在路由表中引用后,由于openvpn服务被杀死,因此实际上相关的连接将丢失。

解决方案是在终止openvpn服务后删除此虚拟连接,因为每次连接openvpn服务时都会创建该虚拟连接。

因此,您需要运行以下命令断开openvpn的连接:

$ sudo killall openvpn
$ sudo ip link delete tun0

-1

sudo update-rc.d openvpn禁用

或者在/ etc / default / openvpn中编辑配置文件

须藤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中,没有<>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.