如何使用Perl终止OpenVPN连接?

时间:2010-08-10 15:10:43

标签: linux perl openvpn

有没有办法用Linux或Perl命令终止用户的OpenVPN连接?

5 个答案:

答案 0 :(得分:2)

用于断开连接的用户:

/usr/bin/openvpn-sudo-user kill \"username\"

但首先应禁用该用户。

答案 1 :(得分:1)

系统调用 tcpkill 程序。

答案 2 :(得分:1)

使用tcpkill ip host 192.168.1.2

答案 3 :(得分:1)

如果你使用perl模块Proc :: Background启动openvpn作为命令,你也可以使用相同的Proc :: Background杀死他:

#!/usr/bin/perl

use strict;
use warnings;
use Proc::Background;

my $command = 'openvpn --config /etc/openvpn/client.conf';
my $proc = Proc::Background->new($command); $proc->alive;
print "started\n";
sleep (30);
if ($proc->alive == 1) { $proc->die; print "stopped\n";}

答案 4 :(得分:0)

如果您在启动时自动启动OpenVPN作为服务,那么最简单的方法是:

service openvpn stop

从命令行(或从perl执行)

/etc/init.d/openvpn stop

您可以像其他建议一样直接杀死它,但使用提供的方法来停止服务将执行OpenVPN需要的任何额外清理(例如,清理锁定文件,运行pid文件等)

AFIAK在当前版本中杀死OpenVPN会很好,但谁知道未来的版本。