在使用openvpn
的过程中,多台客户端连接上同一台openvpn
服务器之后,客户端的的IP地扯经常变动,导致客户端之间无法正常通讯,openvpn
的版本变动也导致了固定IP地扯的配置不同,用以下方法设置,客户端不管再怎么连接ip地扯都不会改变了,此文使用的openvpn
的版本为2.3.13
。
第一种配置
格式:
ifconfig-push ${IP} ${NETMASK}
如果使用net30子网的时候${NETMASK}就是${IP}的下一位,比如ifconfig-push 10.8.0.1 10.8.0.2
只需在服务端的server.conf
配置文件中设置即可
client-config-dir /etc/openvpn/ccd
cdd文件夹中的文件为对应客户端所使用的登录名称
cat /etc/openvpn/ccd/mac
ifconfig-push 10.8.0.2 10.8.0.3
以上设置可配置使用mac
帐号登录的客户端ip地扯为10.8.0.2
再增加一个客户端IP
cat /etc/openvpn/ccd/server
ifconfig-push 10.8.0.5 10.8.0.6
以上设置可配置使用server
帐号登录的客户端ip地扯为10.8.0.5
注意事项
ifconfig-push
后面是紧跟着两个连续的成组IP地扯,以第一个为客户端的IP地扯。
可能有人会想为什么要制定两个IP,这是因为openvpn只支持255.255.255.252 的子网,而且252的子网只有两个IP,一个分配给客户端,一个留给服务器用。
或者
在/etc/openvpn/server.conf
加入一行:
ifconfig-pool-persist /etc/openvpn/ipp.txt
在/etc/openvpn/ipp.txt中配置格式如下:
用户名,ip
test,192.168.19.20 ###此配置可将用户test的ip固定为192.168.19.20
经过研究ipp.txt文件设置有问题,设置之后不起作用。
其中上面的用户名应该为证书的CN名才对,如果想要不同的客户端不同的IP的方法,只能申请不同的CN名的证书,不然无法实现。
ipp.txt问题的分析,参考:https://www.cnblogs.com/EasonJim/p/9638361.html
参考:
http://blog.csdn.net/xqhrs232/article/details/72236759(IP端口转发)
http://blog.csdn.net/jiangshan35/article/details/72920395
http://blog.csdn.net/dounine/article/details/53650142
http://blog.51cto.com/dihuo/1416865
http://dnaeon.github.io/static-ip-addresses-in-openvpn/
https://serverfault.com/questions/826560/how-to-set-a-static-ip-client-side-in-openvpn