PPTP是点对点隧道协议,用于在公网上建立两个节点之间的专用用网络。普通的用户一般是通过拨号的方式,接入ISP提供的网络,由于国内的上网环境,是访问不了google的,所以必须首先要有一台可以上google的机器(一般是vps或者云主机,可以去淘宝上买),然后在那台机器上搭配PPTP协议服务端,本地电脑通过配置PPTP客户端去连接服务端,就可以实现本地机器访问google。这篇文章只是谈论PPTP如何上google,至于PPTP其他的用处不考虑。下面就具体来部署PPTP服务端。
1 安装pptp
# apt-get install pptpd
2 安装之后配置pptp,首先查看本机ip和网卡信息
# ifconfig
eth0是外网的的网卡,下面的步骤要用的
3 配置pptp的主配置文件,设置pptp内网地址,并配置地址池
# vi /etc/pptpd.conf
localip 是本机的局域网的IP地址,remoteip是ip地址池范围,这里用默认的就好了,将前面的注释符去掉就可以了
4 设置pptp用于解析dns的服务器ip地址
#vi /etc/ppp/pptpd-options
在这里用来两个dns服务器,114.114.114.114是电信的,8.8.8.8是google的,国内解析的走电信的,国外的走google的
注意: 我之前用的是这两个dns,但是碰到连上去之后不能访问谷歌,将上面的第一dns和第二dns调换就行了,出现问题的原因可能就是第一dns出现问题,第二dns没有在工作
5 添加pptp登录用户
# vi /etc/ppp/chap-secrets
6 重启下pptpd服务
# /etc/init.d/pptpd restart
7 开启系统的路由转发功能
# vi /etc/sysctl.conf
将 net.ipv4.ip_forward=1
重新读取sysctl配置
#sysctl -p
8 配置防火墙规则,没有安装iptables的话,先安装下
开启路由转发规则
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
保存规则
# iptables-save >/etc/iptables-rules
编辑网卡,使得网卡每次重启自动加载防火墙规则
# vi /etc/network/interfaces
9 设置mtu,防止数据包过大,产生有些网站访问不了。正常设置为1200
# iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200
保存规则
# iptables-save >/etc/iptables-rules
10 设置pptp随系统自启动, 测试下pptp服务有没有开启,默认开启的端口是1723端口
# update-rc.d pptpd enable
# netstat -tuln | grep 1723
pptp服务端配置到此结束,客户端的配置可以分为在windows和linux下,windows的客户端一进集成到系统,简单配置及可以了,暂时讨论。这里我配置的过程中出现619的错误,原来是我配置pptp的账户密码时填错了服务名将pptpd填成httpd,呵呵,这个错误也会发生。
配置pptp的关键步骤
1 安装服务
2 配置内网地址池 解析dns服务器地址
3 开启系统路由转发
4 开启防火墙的NAT (类似将vps当成一个有NAT功能的路由器)