### 安装PPTP ###
在linux下安装软件一般都很简单如下:
apt-get install pptpd
包管理工具会帮我们搞定所有的依赖项。如果你非要安装最新版的,那就老老实实去编译吧!
### 配置PPTP ###
安装好后需要配置PPTP,linux下软件的配置文件大部分都在etc下面,这个也不例外。
编辑
/etc/pptpd.conf 文件在文件最末尾有几行,如下:
# (Recommended)
#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245
我们只要将第2、3两行的注释去掉就行。
localip 表示连接后服务器的ip地址
remoteip 表示给客户端分配的ip
可自行设置 修改后如下
# (Recommended)
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245
其他参数默认即可,有兴趣可以看一下呵呵。
编辑/etc/ppp/pptpd.options文件 这个文件也pptp的配置文件
这里我们主要设置客户端连接是分配的dns
找到 ms-dns 字段,修改为相应的dns服务器地址,比如谷歌的
ms-dns 8.8.8.8
ms-dns 8.8.4.4
添加VPN用户帐号
服务端设置好后我们需要配置一些账户,用来客户端进行登陆。
编辑 /etc/ppp/chap-secrets 文件 可看到如下内容
# Secrets for authentication using CHAP
# client server secret IP addresses
第一列是用户名,第二列是服务器名(默认写 pptpd 即可,如果在 pptpd-options 文件中更改过的话,注意这里保持和文件中的name行一致),第三列是密码,第四列是 IP 限制(不做限制写 * 即可)如创建一个名为user,密码为userpasswd,不限制登录IP的VPN账号:
user pptpd userpasswd *
修改完成后,保存文件,重启服务
service pptp restart
或
/etc/init.d/pptpd restart
不出意外的话现在应该已经能进行连接了,如果连接失败,请检查防火墙设置,PPTP 服务需要使用 1723(tcp) 端口和 gre 协议,因此确保防火墙设置允许这两者通行。
这个时候虽然我们已经能够进行连接了,但是客户端如果想要访问外网的话还需要继续配置。
打开ipv4 forward功能
修改文件 /etc/sysctl.conf,去掉这一行 #net.ipv4.ip_forward=1 的#号,开启ipv4 forward。
然后运行命令:
sysctl -p
有些机器这样设置后就已经可以访问外网了,如果不行,就继续配置
使用iptables来建立NAT
安装iptables,一般都已经安装了
apt-get install iptables
我们向 nat 表中加入一条规则:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
或
iptables -t nat -I POSTROUTING -j MASQUERADE
eth0 代表的是网卡编号,可执行ifconfig查看网卡。
注意一点 iptables是即时生效的,所以无需重启,如果要停止iptables,请使用iptables -F命令,如果要iptables配置重启后仍然有效,请按如下操作步骤:
1.创建/etc/iptables文件(文件名可以随意取)
2.创建/etc/network/if-pre-up.d/iptables文件,并给予其执行权限
touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
3.编辑/etc/network/if-pre-up.d/iptables文件,使其内容如下:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables
4.配置iptables,过程略,配置好iptables后,将配置保存到/etc/iptables文件中即可
iptables-save > /etc/iptables
iptables -F //将内存中iptables的所有配置清空,效果等同于停止了iptables
配置完后重启pptp,应该就没有问题了。
关于一些网站或游戏无法连接
我配置完成后,能顺利打开百度,谷歌等网站,但是QQ,163等的网站无法打开,一些游戏也是连接异常,但是断开vpn后可无压力打开,经过百度搜索后发现原来是MTU大小太大所致。改小即可,可通过iptables设置如下:
iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356
呵呵,试用一晚,效果不错!理论上其他发行版应该也行!