想通过VPN上网,因为各种免费或收费的VPN工具不是不稳定就是怕不靠谱,所以打算自己搭一个玩玩。以下是搭建的大致过程:
因为只是做个实验环境,所以申请了一个腾讯云的15天免费服务器,以下是相关信息:
系统:centos 6.5 64位
公网IP:139.155.96.23
内网IP:172.27.0.12
系统资源:1 核 1 GB 1 Mbps
在网上找了很多教程,但搭完后上不了网,有点奇怪,后来找到一个简单版的教程才晓得是防火墙配置有问题。以下是按照这个简单版本的方式搭建的。
原文参考地址:https://www.jb51.net/article/163620.htm
第一步:安装PPP和PPTP
输入命令:
1 yum install -y ppp
2 rpm -ivh http://static.ucloud.cn/pptpd-1.3.4-2.el6.x86_64.rpm
说明:应该直接用yum install -y ppp pptpd也可以
第二步:编辑pptp.conf
通过vi /etc/pptpd.conf打开文件,在文件末尾添加以下两行信息:
1 localip 10.8.0.1
2 remoteip 10.8.0.10-100
说明:这个地址设置与我服务器原来地址无关系,这是指后面配置好后,服务器的地址以及拨号上来的客户端可分配的地址
第三步:编辑options.pptpd
通过vi /etc/ppp/options.pptpd打开文件,在文件末尾添加以下两行信息:
1 ms-DNS 8.8.8.8
2 ms-dns 8.8.4.4
说明:这两个是谷歌提供的DNS服务器,此处设置是用于VPN的DNS,你也可以改成其它可用的,例如国内常用的114.114.114.114或其它DNS
第四步:编辑chap-secrets
通过vi /etc/ppp/chap-secrets打开文件,在文件末尾添加以下信息:
test pptpd test *
说明:看下面截屏中的注释信息应该也能猜到,第1个test代表的是pptpd服务的用户名,第2个test是密码,*号代表任意IP地址登陆
第五步:编辑sysctl.conf
通过vi /etc/sysctl.conf打开文件,在文件末尾添加以下信息:
net.ipv4.ip_forward = 1
保存好文件后,执行以下命令配置其生效:
sysctl -p
说明:这一项是用来开启网络转发功能的,有些配置文件sysctl.conf早已有net.ipv4.ip_forward这一项只是值为0,可以直接修改成1即可。
第六步:配置NAT
执行以下两句命令:
1 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
2 service iptables save
第七步:启动PPTP服务
执行以下命令:
service pptpd start
第八步:设置为开机启动
执行以下两句命令:
chkconfig pptpd on
chkconfig iptables on
OK,以下整个配置就完了,我自己统过win10新建一个VPN拨号能登陆并打开网页。原参考文档里面还提到进一步设置防火墙,但我没有进一步进行设置。
然后有两个问题:
一个就是上网的速度堪忧呀,看了别的文档有提到可能是MTU的关系,所以后面我再设置一下看看;
另一个问题是我在家里拨号是没问题的,但在公司拨号就出问题了。有文章说这可能是路由器对PPTP穿透的不支持,嗯,所以后面考虑再搭一下别的VPN环境看看。
关于网络慢的情况,参考原文:https://blog.csdn.net/JAVA_cainiao2016/article/details/79498340
调试了一下,确实有明显的差别。需要的只是设置一下mss的大小。以下是我在我的实验服务器上设置的命令:
第九步:设置mss
在命令行下输入以下两句命令,修改防火墙配置并让其生效:
1 iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356
2 service iptables save