openvpn 仅允许使用 ifconfig-pool-persist 选项进行 1 次连接

openvpn 仅允许使用 ifconfig-pool-persist 选项进行 1 次连接

我有一个 openvpn 服务器,其配置如下:

ca ...
cert ...
key ...
dh ...


local ...
port 40000
proto udp
dev tun
server 192.168.100.0 255.255.252.0
ifconfig-pool-persist "/etc/openvpn/ipp.txt"
comp-lzo
persist-key
persist-tun
keepalive 10 120
client-to-client


tun-mtu 1500
fragment 1300
mssfix

--script-security 2


--client-connect "/etc/openvpn/vpn_conn_event.py"
--client-disconnect "/etc/openvpn/vpn_conn_event.py"

# Log
status "openvpn-status.log" 
log "openvpn.log" 
#log-append "openvpn.log" 
verb 3

它工作得很好,并保持 IP 地址持久,但偶尔客户端的地址会发生变化,这非常令人沮丧。我进一步追踪了这个问题,发现当客户端(无论出于什么原因)打开新连接而旧连接尚未断开时,就会发生这种情况。以下是日志:

| DATE                | Cert | assigned IP    | Event     |
| 25/04/2018 03:01:46 | abc  | 192.168.101.18 | CONNECT   |
| 25/04/2018 04:04:54 | abc  | 192.168.100.66 | CONNECT   |
| 25/04/2018 04:08:42 | abc  | 192.168.101.18 | DISCONNECT|
| 25/04/2018 11:09:48 | abc  | 192.168.100.66 | DISCONNECT|

因为这是有意义的,我希望 openvpn 服务器在打开新证书之前断开与该证书的任何现有客户端连接,从而保留 IP 地址。有办法实现这一点吗?请注意,dublicate-cn 选项在这里不起作用,因为它不能与 ifconfig-pool-persist 一起使用。

答案1

对于那些感兴趣的人,我将 ifconfig-pool-persist 设置更改为 client-config-dir 设置,并结合使用 ifconfig-push 语句,这最终使分配的 ip 保持稳定。偶尔仍会出现双重连接,我不知道为什么会发生这种情况。即使添加了 duplicate-cn 1 选项,这种情况仍会时不时发生。

相关内容