linux 下 PPTP VPN
1、安装相关软件
32位版:
yum -y install ppp
rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel5/i386/pptpd-1.3.4-2.rhel5.i386.rpm
64位版:
rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel5/x86_64/pptpd-1.3.4-2.rhel5.x86_64.rpm
2、配置文件编写
(1)配置文件/etc/ppp/options.pptpd
vim /etc/ppp/options.pptpd
输入以下内容:
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4
(2)vim /etc/ppp/chap-secrets
输入以下内容
# Secrets for authentication using CHAP
# client server secret IP addresses
myusername pptpd mypassword *
注:这里的myusername和mypassword即为PPTP VPN的登录用户名和密码
(3)配置文件/etc/pptpd.conf
vim /etc/pptpd.conf
输入以下内容:
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.9.1
remoteip 192.168.9.11-30
注:为拨入VPN的用户动态分配192.168.9.11~192.168.9.30之间的IP
(4)配置文件/etc/sysctl.conf
vi /etc/sysctl.conf
修改以下内容:
net.ipv4.ip_forward = 1
保存、退出后执行:
sysctl -p
3、启动PPTP VPN 服务器端,开机启动:
service pptpd start
如果启动时提示有类似端口占用的提示,使用service pptpd restart-kill
再用service pptpd start 启动就好`~!!
chkconfig pptpd on
4、添加iptables策略:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE
常见问题
1.无法上外网解决办法
请确保你的MS-DNS和防火墙已经正确配置:
防火墙按照下面方法配置:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 你的公网IP
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
若出现无法连接,可以尝试按照上面解决619错误的设置方法设置
vi /etc/ppp/options.pptpd:
去掉ms-dns前面的#,并修改成如下字段:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
2、编辑/etc/sysctl.conf
将“net.ipv4.ip_forward”改为1
同时在“net.ipv4.tcp_syncookies = 1”前面加#
3、执行下面的命令
2.解决PPTP错误:ppp:compressor dropped pkt
使用VPN访问大部分网站都是正常的,但是我需要访问这个网站的时候就无法访问了:www.wellsfargo.com,这个站点出故障的几率和中500万的几率差不多,所以还是VPN的问题,那么问题就来了,找根本原因吧。
经内事百度,外事谷歌后得知:
原因是由于MTU的原因,具体问题请自行google.解决办法是通过打补丁,但是我们没搞明白,更没有去动手。
那解决办法不就是改变MTU吗?那我手动修改后可以正常访问富国银行了,但是下一次拔号后还是1396,没有从根本上解决,那就需要从根本解决问题。
临时解决办法就是编写一个修改MTU的脚本(网上找的脚本,感谢作者),如下:
#!/bin/sh
CURRENT_MTU="`ifconfig $1 | grep -Po '(?<=MTU:)([0-9]+)'`"
FIXED_MTU="`expr $CURRENT_MTU + 4`"
ifconfig $ mtu $FIXED_MTU
echo "Increased MTU for $1 to $FIXED_MTU (from $CURRENT_MTU) to fix MPPE Microsoft Point-to-Point bug #330973"
经过一翻努力和实验,终于找到了解决办法。
解决方法:
- /etc/pptp/ip-up这个文件有点意思,可能就是拔号是运行的一个脚本,那么我们看一下。
- vim /etc/pptp/ip-up
#!/bin/bash
# This file should not be modified -- make local changes to
# /etc/ppp/ip-up.local instead
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH
LOGDEVICE=$
REALDEVICE=$
[ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post --realdevice ${REALDEVICE} ifcfg-${LOGDEVICE}
/etc/ppp/ip-up.ipv6to4 ${LOGDEVICE}
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"
exit
ip-up
ip-up文件中有一行显示的是# /etc/ppp/ip-up.local instead和[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local 就是提示可以运行ip-up.local的脚本,那么我们将刚才的脚本放到这个位置,并命名为ip-up.local,加上+x权限。
service pptpd restart
VPN重新拔号,MTU已变成1400了。
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.9.1 P-t-P:192.168.9.204 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (4.3 MiB) TX bytes: (69.5 MiB)
3.win7 pptp VPN使用过程中总是掉线的解决办法
一:为什么我的服务器是正常运行着,线路也没ping过了没有任何丢包,可是为什么VPN连接还经常断线。折腾了几天后终于找到了头绪,原来是客户端设置有问题。
解决办法
第一步:在桌面上“网络”右键“属性”-更改适配器配置
2、找到VPN链接图标右键“属性”
3、选择“选项”选择重拨间隔为1秒
4、选择“安全”去掉“要求数据加密(没有就断开)”前的勾号
二:为什么在win7上用PPTP上线两三分钟就掉线。而在xp中则没有此问题
解决办法
点击右下角“连接”,“打开网络和共享中心”-“更改高级共享设置”-“家庭和工作/公用”-“关闭网络共享发现”。
4.如果vpn上网很慢,尝试用下面:
/sbin/iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356