1. 安装额外的源
在Shell中运行以下命令,安装rpmforge、epel和remi的源:
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
2. 修改源配置文件
在Shell中运行以下命令:
vi /etc/yum.repos.d/epel.repo
将上述文件中的:
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
修改为
baseurl=http://download.fedoraproject.org/pub/epel/6Server/$basearch
3. 更新源缓存
在Shell中运行以下命令,刷新yum缓存:
yum clean metadata
yum clean dbcache
yum makecache
4. 安装PPTP相关组件
在Shell中运行以下命令,通过yum安装PPTP相关组件:
yum install -y NetworkManager-vpnc NetworkManager-pptp NetworkManager-openvpn NetworkManager-openswan pptp-setup pptpd iproute
5. 通过图形方式设置PPTP客户端
打开System
→Preference
→Network Connections
,打开以下窗口:
点击Add
按钮,在弹出菜单中选择Point-to-Point Tunneling Protocol (PPTP)
,如下图所示:
点击Create
按钮,在弹出窗口中分别输入如下信息:
Gateway:174.139.207.203
User name:<username>
Password:<password>
6. 通过命令行设置PPTP客户端
在Shell中运行以下命令:
pptpsetup --create fkvpn --server 174.139.207.203 --username <username> --password <password> # 创建的配置文件在/etc/ppp/peers/目录下
cp /usr/share/doc/ppp-2.4.5/scripts/pon /usr/sbin/
cp /usr/share/doc/ppp-2.4.5/scripts/poff /usr/sbin/
chmod +x /usr/sbin/pon
chmod +x /usr/sbin/poff
启用VPN:
pon fkvpn
ip route replace default dev ppp0 via 174.139.207.203
断开VPN:
poff fkvpn
ip route replace default dev br0 via <local_gateway>
注意,174.139.207.203是VPN服务器的IP地址,需要酌情配置!
7. 给PPTP限速
在Shell中运行以下命令:
vi /etc/sysctl.conf
将上述文件的
net.ipv4.ip_forward = 0
修改为
net.ipv4.ip_forward = 1
执行以下命令,使得配置生效:
sysctl -p
执行以下命令,加载sch_htb
模块:
modprobe sch_htb
echo "modprobe sch_htb" >> /etc/rc.local
修改ip-up配置文件:
vi /etc/ppp/ip-up
在上述文件的最后一行的 exit 0 上面,添加如下内容,将VPN的上行和下行速率都限制为400kbps:
down=400kbps
upload=400kbps
iprange=10.10.1.0/24
#down
/sbin/tc qdisc del dev $1 root
/sbin/tc qdisc add dev $1 root handle 2:0 htb
/sbin/tc class add dev $1 parent 2:1 classid 2:10 htb rate $down
/sbin/tc class add dev $1 parent 2:2 classid 2:11 htb rate 1024kbps
/sbin/tc qdisc add dev $1 parent 2:10 handle 1: sfq perturb 1
/sbin/tc filter add dev $1 protocol ip parent 2:0 u32 match ip dst \
$iprange flowid 2:10
#upload
/sbin/tc qdisc add dev $1 handle ffff: ingress
/sbin/tc filter add dev $1 parent ffff: protocol ip u32 match ip dst \
$iprange police rate $upload burst 100k drop flowid 2:11
执行以下命令,重新启动pptpd服务:
chkconfig pptpd on
service pptpd restart