首页 » Linux » CentOS 6下配置PPTP VPN客户端

CentOS 6下配置PPTP VPN客户端

 
文章目录

最近在CentOS上安装了OpenVZ,需要安装OpenVZ Web Panel,
但是最终安装失败,查看脚本发现要下载googlecode的文件,原因在此了。

安装pptp和pptp-setup

pptp就不用解释了,pptp-setup是一个设置脚本,通过该脚本可以使用方便地进行初始化设置,生成配置文件。

创建配置

若报如下错误

则需要执行

向内核注册ppp_mppe模块

连接VPN

验证连接情况

然后通过如下命令验证连接情况

排错

如果上面命令没有任何返回,则说明连接失败了,可以参看/var/log/message文件了解错误的原因

服务端不支持MPPE

若错误为

说明服务端不支持MPPE加密,pptpsetup时不需要使用—encrypt选项。可以手工修改/etc/ppp/peers/codelife文件

去除或者注释掉require-mppe-128

客户端不支持MPPE

若错误为

说明服务端要求MPPE加密,但是客户端不支持,pptpsetup时漏掉了—encrypt选项。解决方法正好相反,往/etc/ppp/peers/codelife文件添加一行require-mppe-128

配置路由表

连接成功后,通过route命令可参看路由表信息:

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
20*.*.*.*3 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
192.168.0.50 0.0.0.0 255.255.255.255 UH 0 0 0 venet0
172.16.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

可见,只添加了一条访问172.16.1.1 IP的路由信息。

访问特定网段

假设你想让登陆VPN服务器的客户端互相访问,那么,你需要在客户端上加入172.16.1网段,即:

路由表信息:

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
20*.*.*.*3 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
192.168.0.50 0.0.0.0 255.255.255.255 UH 0 0 0 venet0
172.16.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

然后使用ping命令测试

# ping 172.16.1.21 -c 3
PING 172.16.1.21 (172.16.1.21) 56(84) bytes of data.
64 bytes from 172.16.1.21: icmp_seq=1 ttl=63 time=43 ms
64 bytes from 172.16.1.21: icmp_seq=2 ttl=63 time=40 ms
64 bytes from 172.16.1.21: icmp_seq=3 ttl=63 time=49 ms

--- 172.16.1.21 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 132ms
rtt min/avg/max/mdev = 40.011/44.167/49.366/9.355 ms

这里,172.16.1.21是另一台客户端,同样,若希望访问网段也需要加入类似的路由信息。

全部流量都通过VPN

如果您想连接VPN后,全部流量都通过VPN出去(爬-墙),就像Windows 那样。那么按上面的步骤可能会遇到一些问题。因为,Linux的默认网关只能是一个,所以,这需要分两种情况。

a)没有默认网关

这时,你只需设置一个默认路由即可,例如:

b)已有默认网关

但更多情况下,默认网关都是存在的。例如,在这里的局域网内部已经设置了默认网关为192.168.0.1

若像上面那样添加一条路由肯能不行的,需要先让访问VPN服务端的流量可通过,然后才能转发其他的数据包。(20*.*.*.*3为PPTP服务器IP)。由于我的系已经自动添加了这条路由,所以无需执行第一条命令。但是没有这条路由的情况下一定要执行。切记!

最后的路由信息:

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
20*.*.*.*3 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
192.168.0.50 0.0.0.0 255.255.255.255 UH 0 0 0 venet0
172.16.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0

当然,关闭连接时,也是需要恢复默认网关的:

关闭连接

注意:启动连接很简单,但停止不能使用ifconfig pp0 down,否则只是禁用了ppp0网卡,后台连接还是存在的。当然,可以杀进程(

)来断开连接。不过,ppp工具包提供了更好用的脚本。但需要您进行一些额外的工作:

然后使用下面的命令启动和关闭连接即可:

原文链接:CentOS 6下配置PPTP VPN客户端,转载请注明来源!

4