17.6. OpenVPN常见问题解决汇总

1[root@OpenVPN_001 2.0]# ./build-key-pass user101
2Generating a 1024 bit RSA private key
3.........++++++
4................................++++++
5writing new private key to 'user101.key'
6Enter PEM pass phrase:
7140348621158216:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:You must type in 4 to 1024 characters
8140348621158216:error:0906406D:PEM routines:PEM_def_callback:problems getting password:pem_lib.c:111:
9140348621158216:error:0907E06F:PEM routines:DO_PK8PKEY:read key:pem_pk8.c:130:

重新再次运行生成账户就可以了

17.6.1. OpenVPN客户端链接成功,不能ping通OpenVPN服务器

可能原因:
  1. 如果是采用不用密钥文件的密码+用户名认证方式。则需要把防泛洪攻击的服务端配置项去掉。即:`` #tls-auth /etc/openvpn/keys/ta.key 0``

  2. 如果服务器端配置了数据压缩 comp-lzo 。客户端也需要配置。否则链接成功后也会导致不能ping通openvpn服务器。

  3. 可以通过命令 tail -f /var/log/openvpn.log 命令监控openvpn服务器日志。客户端链接服务器测试。查看日志是否有异常。

  4. 也可以用tcpdump命令抓取服务端数据。 命令: tcpdump -i eth0 icmp

17.6.2. OpenVPN服务端配置的push不生效

可能是版本问题。老版本(2.0.9)之前可以用 push "192.168.1.0 255.255.255.0" 向OpenVPN客户端推送路由条目。但是2.2.2版本发现不能直接这样配置。

需要修改配置如下:

push “route 192.168.1.0 255.255.255.0”

配置生效后作用:

客户端的数据包的目的地址是192.168.1.0/24网段的数据。都通过VPN链路发送。

17.6.3. OpenVPN服务端的ipp.txt为空不生效的问题

问题表现
  • 服务端配置了参数: ifconfig-pool-persist ipp.txt

  • 客户端拨号后断开重新拨号获取的IP会发生变化。 ipp.txt 文件也一直为空。

问题原因
  • 服务端配置了参数 duplicate-cn ,运行一个openvpn客户端同时在多个终端登陆。

  • 这样配置会导致ipp.txt记录失效。因为程序会不知道用户应该保留哪个地址。

17.6.4. OpenVPN服务端的ipp.txt记录的IP不是客户端IP

  • ipp.txt记录格式:CN用户名,子网网络地址。

  • 这个子网网络地址一般都是30位地址。例如:10.8.0.4,这个网络地址的第一个IP是10.8.0.5,这是这个子网段的dhcp,然后下一个才是客户端的IP,也就是10.8.0.6。