一聚教程网:一个值得你收藏的教程网站

热门教程

CentOS6使用PPTP Client的例子

时间:2022-06-30 21:12:02 编辑:袖梨 来源:一聚教程网


由于需要在本地虚拟机编译openwrt固件,编译期间需要不断下载依赖,由于GFW的存在,会造成编译的失败,所以需要编译虚拟机连接VPN

虚拟机系统为CentOS6,以连接PPTP为例

首先安装pptp客户端:

yum install pptp pptp-setup

创建VPN连接:

pptpsetup --create myvpn --server 123.456.789.123 --username vpnuser --password 123456 --encrypt   #这
里创建了一个名为myvpn的VPN连接
如果出现 FATAL: Module ppp_mppe not found. 错误,需注册模块:

modprobe ppp_mppe

连接VPN

pppd call myvpn

验证是否连接:

ip a |grep ppp
如果没有信息,则连接失败,需参考/var/log/message排错


连接成功后,如需访问VPN服务器的其他客户端,添加路由:

route add -net 192.168.0.0 netmask 255.255.255.0 dev ppp0   #192.168.0.0为VPN服务器内网网段

如需全部流量通过VPN,在连接VPN成功后添加路由:

ip route replace 123.456.789.123 via 192.168.1.1 dev eth0 src 192.168.1.188   #123.456.789.123为VPN服务器ip,192.168.1.1为虚拟机网关(由于虚拟机使用的桥接,所以也是我的路由器地址),192.168.1.188虚拟机的ip
ip route replace default dev ppp0

当断开VPN后,也需要删除路由:

ip route del 123.456.789.123 via 192.168.1.1 dev eth0 src 192.168.1.188
ip route add default via 192.168.1.1

ppp还提供了更方便的方式来连接和断开VPN:

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
 
pon myvpn   #连接VPN
poff myvpn   #断开VPN
我这里也写了一个脚本来整合VPN的连接和断开,每次就不用设置路由了,使用前根据情况修改ip即可

vpnstart脚本:


#!/bin/bash
/usr/sbin/pon myvpn
echo "Ok! Change route now!"
sleep 5
/sbin/ip route replace 123.456.789.123 via 192.168.1.1 dev eth0 src 192.168.1.188
ip route replace default dev ppp0
echo "Successful! VPN is start!"

vpnstop脚本:


#!/bin/bash
/usr/sbin/poff myvpn
echo "Wait! Change route now!"
sleep 5
/sbin/ip route del 123.456.789.123 via 192.168.1.1 dev eth0 src 192.168.1.188
/sbin/ip route add default via 192.168.1.1
echo "Successful! VPN is stop!"

热门栏目