pptpd vpn手动分配IP部分用户无法上网

问题

公司vpn用户全部手动分配了指定的IP地址,近期总有人抱怨vpn有时候连不上服务器或者说不能上网, 各种路由表,各种电脑重启都没有效果,但是隔一段时间又好了。正巧又一位兄弟出现这个故障,告知不小心禁用了本地连接,重新启用本地连接,重新拨vpn就上不了网了,我重启pptpd问题便解决了。尤其看出了事情的原因。

问题排查
初步判定用户网络出现故障之后,vpn服务器的连接未断开,网络状态保持ESTABLISHED. 用户登录vpn之后,又分配了相同的IP地址,导致用户上不了网。以前重启pptpd都没注意到它有个警告,警告如下:
Warning: a pptpd restart does not terminate existing
connections, so new connections may be assigned the same IP
address and cause unexpected results.  Use restart-kill to
destroy existing connections during a restart

意思就是没有杀掉正在连接的用户,新进来的用户可能会分配到相同的IP地址,使用restart-kill可以将正在连接的用户杀死。该死的,一直没留意这个问题。先看下我的chap配置,最后看看解决方法

手动分配VPN IP地址
如下是我手动分配IP地址的配置

ttlsacom1,ttlsacom2,ttlsacom3中任何一个用户网络出现点故障便会出现这种问题,特别是使用无线网络的用户(公司的wifi不稳定)

解决VPN单用户指定IP问题
创建auth-up文件

auth-up脚本内容如下

流程如下:
1、用户登录判断是否有/var/run/pptpd-users/用户名的文件
2、如果有平滑重启这个vpn用户进程,如果没有创建这个文件,文本里面有用户进程ID
3、老的连接被踢掉,新的连接可以使用

备注:这种模式下,一个账号只允许一个用户使用。

重启pptpd

最后

pptp默认情况使用chap来认证,一个账号可以多个用户登录,这样不便于流量控制、网速限制等等,也可以使用auth-up这个脚本来限制一个账号只允许一个用户来登录.

转载请注明出处:http://www.ttlsa.com/html/3234.html