CentOS 6.X 32位安装 VPN

一、首先我们先安装 epel 源

cd /tmp wget http://mirror.sfo12.us.leaseweb.net/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm yum makecache

如果出现下列的错误 请参考 http://www.tomey.me/blog/54 “Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again”

yum -y install dkms ppp pptpd

完成安装后 查看 mppe 模块是否装载
lsmod | grep mppe

如果输出以下信息证明模块已经装载 >
ppp_mppe 5230 0
ppp_generic 20754 1 ppp_mppe

如果没有装载,执行以下命令装载

modprobe ppp-compress-18

二、修改系统内核参数

vi /etc/sysctl.conf
在末尾添加以下内容:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296

添加完成后 执行 sysctl -p 让配置文件马上生效

三、 配置 PPTP服务器

编辑 PPTP 配置文件

vi /etc/pptpd.conf
在末尾添加以下内容 IP可以自定义
localip 192.168.11.1 # 本机的IP 地址 等于网关的意思
remoteip 192.168.11.234-238 # 远程客户端的IP地址范围


编辑 PPTP服务器选项

vi /etc/ppp/options.pptpd
在末尾添加以下内容 DNS可以自己修改
idle 2592000
ms-dns 8.8.8.8 # DNS
ms-dns 8.8.4.4 #


编辑认证配置文件

vi /etc/ppp/chap-secrets

文件的内容大概是以下这样的

# Secrets for authentication using CHAP
# client server secret > IP addresses test (客户端) pptpd (服务器名) aaabbb123(密码) *(IP地址)

最后启动服务

service pptpd start

通过客户端链接到服务器 会发现已经连接了 但是没有 Internet 访问权限 下面我们需要加下面一串防火墙规则 做下NAT 转发才可以

iptables -t NAT -I POSTROUTING -s 192.168.11.0/24 (刚刚设置的IP地址段) -j SNAT --to-source X.X.X.X (服务器的公网IP或可以与互联网通讯的私网IP)

后来你会发现可以上网了 但是百度死活上不去,解决办法如下 QQ截图20150125233741.png

这里的MTU值为 1396

我们手动将MTU值改成 1500 百度就可以访问了,命令如下

ifconfig ppp0 mtu 1472

但是每次拨号都要修改 MTU值 太麻烦了

可以写入到 ip-up 配置文件里

vi /etc/ppp/ip-up
在下面添加一行
/sbin/ifconfig ppp0 mtu 1472 即可
或者在 option.pptpd 文件中增加 mtu 1472

这个我测试没用,大家可以去碰碰运气啦!