前言
上一篇《搭建自己专属的vpn——选择一个vps》提到如何选择一个vps,这一篇就淡淡如何利用vultr的vps搭建一个vpn。
方法一:搭建shadowsocks+serverspeeder(特别推荐)
shadowsocks服务端安装
CentOS:
1 | yum install python-setuptools && easy_install pip |
Debian / Ubuntu:
1 | apt-get install python-pip |
配置
参考Configuration via Config File
修改配置文件/etc/shadowsocks.json,如果没有则新建。
内容如下:
1 | { |
或(多个SS账号)
1 | { |
配置说明:
字段 | 说明 |
---|---|
server | ss服务监听地址 |
server_port | ss服务监听端口 |
local_address | 本地的监听地址 |
local_port | 本地的监听端口 |
password | 密码 |
timeout | 超时时间,单位秒 |
method | 加密方法,默认是aes-256-cfb |
fast_open | 使用TCP_FASTOPEN, true / false |
workers | workers数,只支持Unix/Linux系统 |
启动:
前台启动
1 | ssserver -c /etc/shadowsocks.json |
后台启动与停止
1 | ssserver -c /etc/shadowsocks.json -d start |
如需开机启动
修改/etc/rc.local,加入以下内容
1 | ssserver -c /etc/shadowsocks.json -d start |
日志
shadowsocks的日志保存在 /var/log/shadowsocks.log
shadowsocks客户端安装
下载地址:
1 | Windows |
serverspeeder加速安装
注意:serverspeeder加速是可选的,如果你使用vpn测速发现很慢,可以安装试试。
加速前
加速后
下行速度瞬间提升,是不是觉得有点小激动?
一键安装serverspeeder
注:参考serverspeeder锐速一键破解安装版
1 | wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh |
如果报内核不支持,可以更换系统内核
1 | 下载内核安装包 |
如果系统内核已更新,再次执行一键安装serverspeeder方法即可。至此serverspeeder安装完毕,快去试试速度是不提升了。
卸载serverspeeder的方法
1 | chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f |
方法二:搭建l2tp vpn(推荐)
参考DearTanker’s Blog的一键安装方法:
1 | wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh |
基本上,按交互式命令的提示按回车或者自定义自己的选择即可,然后再次验证ipsec(L2TP)并重启相关服务,否则提示服务器无响应
1 | service ipsec restart |
如果需要修改或者增加账号密码,可以修改/etc/ppp/chap-secrets
1 | 账户 l2tpd 密码 * |
测试成功使用的客户端有,win7+win10自带vpn客户端,andriod自带vpn客户端。
测试成功使用的网络环境有,电信+联通宽带,移动4g无法连接成功,如果哪位朋友在移动网络下有成功的经验,麻烦分享一下。
不使用vpn时,使用speedtest的测速结果:
下面是成功连接vpn后,使用speedtest的测速结果,虽然不是非常快,但基本够用。
方法三:搭建openvpn(不建议)
vultr面板提供一键安装openvpn的办法,方法是在新建一个vps实例时选择默认安装一个应用程序:
具体安装办法参考官方的一键安装openvpn说明。openvpn是使用操作系统的登录账号登录的,所以搭建完openvpn后,你可以参考linux新建用户的办法新建一个用户及修改用户密码,然后使用opevpn提供的客户端或者网页(一般情况下是 https://your_vps_ip:943/ )登录即可。
之所以不建议使用openvpn,原因是测速发现比较慢,下载带宽不到1M,而且openvpn貌似不支持移动端登录。
方法四:搭建pptpd vpn(不建议)
注:之所以不建议使用pptpd,一方面是pptpd经常被墙,二是容易出问题。
安装
1 | yum install ppp iptables pptpd |
配置
编辑/etc/pptpd.conf,搜索localip,去掉下面字段前面的#,然后保存退出
1 | localip 192.168.0.1 |
注意,pptpd默认支持最大100个连接,每个remoteip分配一个连接,如果remoteip数不够100个,那么默认连接数就会变成remoteip数。如果默认连接数不够的话,就会出现自动断开的情况,比如手机上的vpn连上了,PC端的vpn就会断开。
编辑options.pptpd,搜索ms-dns,去掉搜索到的两行ms-dns前面的#,并修改为下面的字段
1 | ms-dns 8.8.8.8 |
编辑/etc/ppp/chap-secrets设置VPN的帐号密码,注意,用户名与密码是区分大小写的
1 | 用户名 pptpd 密码 * |
编辑/etc/sysctl.conf,修改内核参数,在末尾添加下面的代码,使内核支持转发
1 | net.ipv4.ip_forward=1 |
运行下面的命令使内核修改生效
1 | sysctl -p |
添加下面的iptables转发规则(直接在SSH运行下面命令即可)
1 | iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE |
添加转发规则后重启就会失效,Centos 6系统可以使用service iptables save保存配置,而Centos7则可以修改/etc/rc.d/rc.local保存上面的命令,这样开机会自动执行上面的命令。
启动
用下面的命令使pptpd开机自动启动
1 | chkconfig pptpd on |
启动pptpd
1 | service pptpd start |
使用
使用你的vpn客户端连接即可,如果配置没问题的话,就可以连接成功。
测试成功连接的vpn客户端有,win7+win10自带vpn客户端,andriod自带vpn客户端。但只在宽带网络上连接成功,4g网络连接不成功。
排错
如果你的vpn连接不成功,有可能是iptable防火墙的问题,你可以使用下面命令
1 | iptables -A INPUT -p tcp --dport 1723 -j ACCEPT |
然后在你的其他电脑使用telnet your_ip 1723测试是否连通。
如果你遇到访问网站偶尔连接上又断的问题,可能是MTU太大导致,可以
1 | 执行 |
更多问题,可以打开pptpd的debug日志,根据debug日志的输出上网搜索一步步解决
修改/etc/ppp/options.pptpd
取消下面的注释1
2
3debug
dump
logfile /var/log/pptpd.log(没有则手工修改)