今天花了一晚上倒腾VPN服务器,因为是用的CENTOS,没法直接apt-get install pptpd,虽然网上有RPM包,但最后还是选择了源码安装,过程中碰到很多问题,在此总结一下:
1. make install后默认没有安装服务,需要自行创建/etc/rc.d/init.d/pptpd,写入代码如下:
#!/bin/sh # # Startup script for pptpd # # chkconfig: 345 85 15 # description: PPTP server # processname: pptpd # config: /etc/pptpd.conf # Source function library. . /etc/rc.d/init.d/functions # See how we were called. case "$1" in start) echo -n "Starting pptpd: " if [ -f /var/lock/subsys/pptpd ] ; then echo exit 1 fi daemon /usr/local/sbin/pptpd echo touch /var/lock/subsys/pptpd ;; stop) echo -n "Shutting down pptpd: " killproc pptpd echo rm -f /var/lock/subsys/pptpd ;; status) status pptpd ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0
2. 将pptpd安装为服务并随机启动:
chkconfig --add pptpd chkconfig pptpd on service pptpd start
3. 客户端链接的时候很可能提示错误,这是因为通过yum install ppp安装的组件版本与pptpd所支持的版本不一致,解决办法,修改/etc/pptpd.options,注释掉logwtmp即可。这个问题折磨我好久!=-=!
4. 还有一个很折腾人的问题,就是连上VPN后无法访问外网只能访问VPN服务器,原因是要通过iptables转发数据包才行,代码如下:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //add it to /etc/rc.d/rc.local for auto execution when rebooted.
5. 附上具体安装步骤:
//install ppp yum install ppp //install pptpd, download source code and ./configure make make install // update pptpd configurations in file /etc/pptpd.conf: localip 192.168.9.1 remoteip 192.168.9.11-30 // /etc/ppp/options.pptpd: ms-dns 8.8.8.8 ms-dns 8.8.4.4 // /etc/ppp/chap-secrets. Each line in the file has the format: <username> pptpd <passwd> * // /etc/sysctl.conf, use the following config: net.ipv4.ip_forward = 1