PPTP类型的VPN配置

  VPN       2017-01-08

VPS可以使用 Digital Ocean,注册地址:DigitalOcean官网
本文基于Centos7配置,请留意;
因为安全问题,MacOS新版已不默认支持PPTP类型的VPN,可参考:L2TP类型的VPN配置

yum 初始化

在正式配置之前,先对系统环境进行一下升级;

  1. // 更新yum
  2. yum y undate
  3. // 安装程序/库
  4. yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
  5. // 安装libevent(事件触发的网络库),(memcached需要)
  6. yum -y install libevent libevent-devel
  7. // 列出已安装列表
  8. yum info installed
  9. // 移除已安装
  10. yum remove "tsclient"

安装和配置PPTP

检测是否可以安装PPTP

  1. cat /dev/ppp
  2. // output: cat: /dev/ppp: No such device or address
  3. modprobe ppp-compress-18 && echo ok
  4. // output: ok
  5. cat /dev/net/tun
  6. // output: cat: /dev/net/tun: File descriptor in bad state

安装PPTP

  1. // 检查是否已安装 ppp iptables,如果没有,执行安装动作
  2. yum -y ppp iptables
  3. // 检查是否已安装 pptpd,如果没有,执行安装动作
  4. yum -y install pptpd

配置 /etc/pptpd.conf

  1. localip 192.168.0.1
  2. remoteip 192.168.0.234-238,192.168.0.245
  3. # 分配给客户端的ip就是234到238之间, 和245;

配置用户/etc/ppp/chap-secrets

  1. # client为帐号,server是pptpd服务,secret是密码,*表示是分配任意的ip
  2. # Secrets for authentication using CHAP
  3. # client server secret IP addresses
  4. jianning pptpd 12345678 *

配置DNS servers,/etc/ppp/options.pptpd

  1. # 在末尾添加dns
  2. ms-dns 8.8.8.8 #这是谷歌的
  3. ms-dns 8.8.4.4

重启 PPTP

  1. service pptpd restart

验证可连接

  1. netstat -alpn | grep :1723
  2. # tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 31779/pptpd

**设置转发/etc/sysctl.conf **

  1. net.ipv4.ip_forward = 1
  2. #运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效
  3. sysctl -p

设置iptables转发规则,让客户端可以连接

  1. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save
  2. iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
  3. iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
  4. iptables --append FORWARD --in-interface eth0 -j ACCEPT

DNS设置

国内的网站无需走VPN,这个利用chnroutes就好;

Mac下的设置:

  1. // 1. 在终端中执行python chnroutes.py -p mac,这将生成ip-up和ip-down两个文件;
  2. // 2. 将这两个文件移入/etc/ppp/;
  3. // 3. 重新连接VPN,观察测试。

参考

本文最后更新于2017-01-08 20:47:00