CentOS 6.6上配置安装PPTP-VPN(fkvpn)

1. 安装额外的源

在Shell中运行以下命令,安装rpmforge、epel和remi的源:

  1. rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
  2. rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  3. rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

2. 修改源配置文件

在Shell中运行以下命令:

  1. vi /etc/yum.repos.d/epel.repo

将上述文件中的:

  1. #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch

修改为

  1. baseurl=http://download.fedoraproject.org/pub/epel/6Server/$basearch

3. 更新源缓存

在Shell中运行以下命令,刷新yum缓存:

  1. yum clean metadata
  2. yum clean dbcache
  3. yum makecache

4. 安装PPTP相关组件

在Shell中运行以下命令,通过yum安装PPTP相关组件:

  1. yum install -y NetworkManager-vpnc NetworkManager-pptp NetworkManager-openvpn NetworkManager-openswan pptp-setup pptpd iproute

5. 通过图形方式设置PPTP客户端

打开SystemPreferenceNetwork Connections,打开以下窗口:

http://ghoulich.xninja.org/wp-content/uploads/sites/2/2016/01/image-1_network-connections.png

点击Add按钮,在弹出菜单中选择Point-to-Point Tunneling Protocol (PPTP),如下图所示:

http://ghoulich.xninja.org/wp-content/uploads/sites/2/2016/01/image-2_p2p-tunneling-protocol.png

点击Create按钮,在弹出窗口中分别输入如下信息:

Gateway:174.139.207.203
User name:<username>
Password:<password>

6. 通过命令行设置PPTP客户端

在Shell中运行以下命令:

  1. pptpsetup --create fkvpn --server 174.139.207.203 --username <username> --password <password> # 创建的配置文件在/etc/ppp/peers/目录下
  2. cp /usr/share/doc/ppp-2.4.5/scripts/pon /usr/sbin/
  3. cp /usr/share/doc/ppp-2.4.5/scripts/poff /usr/sbin/
  4. chmod +x /usr/sbin/pon
  5. chmod +x /usr/sbin/poff

启用VPN:

  1. pon fkvpn
  2. ip route replace default dev ppp0 via 174.139.207.203

断开VPN:

  1. poff fkvpn
  2. ip route replace default dev br0 via <local_gateway>

注意,174.139.207.203是VPN服务器的IP地址,需要酌情配置!

7. 给PPTP限速

在Shell中运行以下命令:

  1. vi /etc/sysctl.conf

将上述文件的

  1. net.ipv4.ip_forward = 0

修改为

  1. net.ipv4.ip_forward = 1

执行以下命令,使得配置生效:

  1. sysctl -p

执行以下命令,加载sch_htb模块:

  1. modprobe sch_htb
  2. echo "modprobe sch_htb" >> /etc/rc.local

修改ip-up配置文件:

  1. vi /etc/ppp/ip-up

在上述文件的最后一行的 exit 0 上面,添加如下内容,将VPN的上行和下行速率都限制为400kbps:

  1. down=400kbps
  2. upload=400kbps
  3. iprange=10.10.1.0/24
  4. #down
  5. /sbin/tc qdisc del dev $1 root
  6. /sbin/tc qdisc add dev $1 root handle 2:0 htb
  7. /sbin/tc class add dev $1 parent 2:1 classid 2:10 htb rate $down
  8. /sbin/tc class add dev $1 parent 2:2 classid 2:11 htb rate 1024kbps
  9. /sbin/tc qdisc add dev $1 parent 2:10 handle 1: sfq perturb 1
  10. /sbin/tc filter add dev $1 protocol ip parent 2:0 u32 match ip dst \
  11.           $iprange flowid 2:10
  12. #upload
  13. /sbin/tc qdisc add dev $1 handle ffff: ingress
  14. /sbin/tc filter add dev $1 parent ffff: protocol ip u32 match ip dst \
  15. $iprange police rate $upload burst 100k drop flowid 2:11

执行以下命令,重新启动pptpd服务:

  1. chkconfig pptpd on
  2. service pptpd restart