软件指南针:专注于软件传播与分享

控制运行中的OpenVPN进程 (OpenVPN官方文档)

来源:原创 3841次浏览 0条评论
☞ 本文主要介绍软件OpenVPN的相关内容:控制运行中的OpenVPN进程 (OpenVPN官方文档)

   其下列版本/分支可以参考本文:

  • 全部版本/分支
英文原文:http://openvpn.net/index.php/open-source/documentation/howto.html#control

控制运行中的OpenVPN进程

运行于Linux/BSD/Unix

OpenVPN接受如下几种信号:

  • SIGUSR1 -- 有条件的重新启动,设计用于没有root权限的重启
  • SIGHUP -- 硬重启
  • SIGUSR2 -- 输出连接统计信息到日志文件或syslog中
  • SIGTERMSIGINT -- 退出

使用writepid指令将OpenVPN的后台进程PID写入到一个文件中,这样你就知道该向哪里发送信号(如果你是以initscript方式启动OpenVPN,该脚本可能已经通过openvpn命令行中的指令--writepid达到了该目的)。

以GUI形式在Windows上运行

请查看OpenVPN GUI 页面

运行于命令提示符窗口

在Windows中,你可以通过右击一个OpenVPN配置文件(.ovpn文件),然后选择"Start OpenVPN on this config file"来启动OpenVPN。

一旦以这种方式运行,你可以使用如下几种按键命令:

  • F1 -- 有条件的重启(无需关闭/重新打开TAP适配器)
  • F2 -- 显示连接统计信息
  • F3 -- 硬重启
  • F4 -- 退出

以Windows服务方式运行

在Windows中,当OpenVPN以服务方式启动时,控制它的唯一方式是:

  • 通过服务控制管理器(控制面板->管理工具->服务),其中提供了启动/终止操作。
  • 通过管理接口(详情参考下面)。

修改使用中的OpenVPN配置

虽然大多数配置更改必须重启服务器才能生效,但仍然有两个指令可以用于文件动态更新,并且能够直接生效而无需重启服务器进程。

client-config-dir -- 该指令设置一个客户端配置文件夹,OpenVPN服务器将会在每个外部连接到来时扫描该目录中的文件,用以查找为当前连接指定的客户端配置文件(详情查看手册页面)。该目录中的文件可以随时更新,而无需重启服务器。请注意,该目录中发生的更改只对新的连接起作用,不包括之前已经存在的连接。如果你想通过指定客户端的配置文件更改来直接影响当前正在连接的客户端(或者该连接已经断开,但它在服务器中的实例对象并没有超时),你可以通过管理接口来杀掉该客户端的实例对象(详见下方描述)。这将导致客户端重新连接并使用新的client-config-dir文件。

crl-verify -- 该指令指定一个证书撤销列表(CRL)文件,相关描述请参考后面的撤销证书部分。该CRL文件能够在运行中被修改,并且修改可以直接对新的连接或那些正在重新建立SSL/TLS通道的现有连接(默认每小时重新建立一次通道)生效。如果你想杀掉一个证书已经添加到CRL中,但目前已连接的客户端,请使用管理接口(参见下方描述)。

状态信息文件

默认的server.conf文件有这样一行:

status openvpn-status.log

OpenVPN将每分钟输出一次当前客户端连接列表到文件openvpn-status.log中。

使用管理接口

OpenVPN管理接口可以对正在运行的OpenVPN进程进行大量的控制操作。

你可以通过远程登录管理接口的端口来直接使用管理接口,或者使用连接到管理接口的OpenVPN GUI来间接使用管理接口。

为了启用一个服务器或客户端的管理接口,请在配置文件中添加如下指令:

management localhost 7505

这将告诉OpenVPN专为管理接口客户端监听TCP端口7505(端口7505是随意的选择,你也可以使用其他任何闲置的端口)。

OpenVPN运行后,你可以使用telnet客户端连接管理接口。例如:

ai:~ # telnet localhost 7505
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
>INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info
help
Management Interface for OpenVPN 2.0_rc14 i686-suse-linux [SSL] [LZO] [EPOLL] built on Feb 15 2005
Commands:
echo [on|off] [N|all]  : Like log, but only show messages in echo buffer.
exit|quit              : Close management session.
help                   : Print this message.
hold [on|off|release]  : Set/show hold flag to on/off state, or
                         release current hold and start tunnel.
kill cn                : Kill the client instance(s) having common name cn.
kill IP:port           : Kill the client instance connecting from IP:port.
log [on|off] [N|all]   : Turn on/off realtime log display
                         + show last N lines or 'all' for entire history.
mute [n]               : Set log mute level to n, or show level if n is absent.
net                    : (Windows only) Show network info and routing table.
password type p        : Enter password p for a queried OpenVPN password.
signal s               : Send signal s to daemon,
                         s = SIGHUP|SIGTERM|SIGUSR1|SIGUSR2.
state [on|off] [N|all] : Like log, but show state history.
status [n]             : Show current daemon status info using format #n.
test n                 : Produce n lines of output for testing/debugging.
username type u        : Enter username u for a queried OpenVPN username.
verb [n]               : Set log verbosity level to n, or show if n is absent.
version                : Show current version number.
END
exit
Connection closed by foreign host.
ai:~ #
更多详细信息,请参考OpenVPN管理接口文档

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部