来源:http://blog.csdn.net/noahsun1024/article/details/52196365
来源:http://blog.csdn.net/noahsun1024/article/details/52206369
前言
作为一名技术人员,经常需要访问一些墙外的网站,你懂的。本来想直接购买个vpn,但又怕不太安全。看到网上有很多自己搭建vpn的教程,于是自己折腾了一下,终于成功搭建,随便与大家分享一些经验。
选择一个vps
搭建vpn的第一步是,你必须有一台公网能访问的vps,而且该vps要在墙外,简单来说就是你必须要有一台能访问墙外的电脑。如何选择一个适合自己的vps呢?我自己认为主要有价格、稳定性和带宽等方面的因素,当然易操作性、良好的售后服务等也比较重要。
国外常见的vps有Linode、Vultr、SugarHosts、bandwagonhost等。
看了网上的一些评测,如《Vultr超高性价比VPS评测使用教程》,以及Vultr每月$5的费用,觉得可以入手,因为网上购买一个vpn也差不多这个费用。
注册账号
首先,登陆Vultr官网(点此进去有优惠),点击Create Account注册即可,现在官方搞活动,暑假注册使用免费送 20官方也不是白送给你的,好像是要先充 5)才能用。暂时不支持国内常见的支付工具(如支付宝),不过可以用paypal充值,至少怎么注册使用paypal,本文就不再介绍了,网上搜一大把。
选择机房
如何选择一个好的机房,当然是自己测过才放心。这里推荐使用PingInfoView来测试。以下是vultr的机房:
列表如下,贴到PingInfoView上即可。
- hnd-jp-ping.vultr.com
- syd-au-ping.vultr.com
- fra-de-ping.vultr.com
- ams-nl-ping.vultr.com
- lon-gb-ping.vultr.com
- par-fr-ping.vultr.com
- wa-us-ping.vultr.com
- sjo-ca-us-ping.vultr.com
- lax-ca-us-ping.vultr.com
- il-us-ping.vultr.com
- nj-us-ping.vultr.com
- tx-us-ping.vultr.com
- ga-us-ping.vultr.com
- fl-us-ping.vultr.com
以下是我的测试结果:
选择的原则是,ping值最小,丢包率最小。比如我的测试结果中,较不错的是sjo、wa和lax,都是美国机房。
部署实例
点击Servers,然后点右边的+号
依次选择自己测试比较好的机房,选择操作系统版本,选择方案($5的低配方案搭vpn已经够用,另外还可以自己搭个博客什么的),然后部署就搞定了。
如果是使用linux系统的操作系统,可以使用ssh的客户端登录上去,这里就不再详细说明。
上一篇《搭建自己专属的vpn——选择一个vps》提到如何选择一个vps,这一篇就淡淡如何利用vultr的vps搭建一个vpn。
方法一:搭建shadowsocks+serverspeeder(特别推荐)
CentOS:
- yum install python-setuptools && easy_install pip
- pip install shadowsocks
- apt-get install python-pip
- pip install shadowsocks
编写配置(参考 Configuration via Config File):
- vi /etc/shadowsocks.json
- {
- ”server”:“0.0.0.0”,
- ”server_port”:8388,
- ”local_address”: “127.0.0.1”,
- ”local_port”:1080,
- ”password”:“mypassword”,
- ”timeout”:300,
- ”method”:“aes-256-cfb”,
- ”fast_open”: false
- }
- {
- “server”:”0.0.0.0”,
- “port_password”:{
- “8381”:”xxxxxxx”,
- “8382”:”xxxxxxx”,
- “8383”:”xxxxxxx”,
- “8384”:”xxxxxxx”
- },
- “timeout”:300,
- “method”:”aes-256-cfb”,
- “fast_open”: false
- }
字段 | 说明 |
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系统 |
启动:
- ssserver -c /etc/shadowsocks.json
- ssserver -c /etc/shadowsocks.json -d start
- ssserver -c /etc/shadowsocks.json -d stop
- vi /etc/rc.local
- ssserver -c /etc/shadowsocks.json -d start
- Windows
- https://github.com/shadowsocks/shadowsocks-windows/releases
- Mac OS X
- https://github.com/shadowsocks/ShadowsocksX-NG/releases
- linux
- https://github.com/shadowsocks/shadowsocks-qt5/wiki/Installation
- https://github.com/shadowsocks/shadowsocks-qt5/releases
- iOS
- https://itunes.apple.com/app/apple-store/id1070901416?pt=2305194&ct=shadowsocks.org&mt=8
- https://github.com/shadowsocks/shadowsocks-iOS/releases
- Android
- https://play.google.com/store/apps/details?id=com.github.shadowsocks
- https://github.com/shadowsocks/shadowsocks-android/releases
- wget -N –no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh
如果报内核不支持,可以更换系统内核
- 下载内核安装包
- wget http://ftp.scientificlinux.org/linux/scientific/6.6/x86_64/updates/security/kernel-2.6.32-504.3.3.el6.x86_64.rpm
- 更换内核
- rpm -ivh kernel-2.6.32-504.3.3.el6.x86_64.rpm –force
- 重启
- reboot
- 查看内核版本是否替换成功
- cat /proc/version
- chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f
方法二:搭建l2tp vpn(推荐)
操作系统:CentOS6
参考DearTanker’s Blog的一键安装方法:
- wget –no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
- chmod +x l2tp.sh
- ./l2tp.sh
- service ipsec restart
- service xl2tpd restart
- ipsec verify
如果需要修改或者增加账号密码,可以修改/etc/ppp/chap-secrets
- 账户 l2tpd 密码 *
测试成功使用的客户端有,win7+win10自带vpn客户端,andriod自带vpn客户端。
测试成功使用的网络环境有,电信+联通宽带,移动4g无法连接成功,如果哪位朋友在移动网络下有成功的经验,麻烦分享一下。
不使用vpn时,使用speedtest的测速结果(我自己使用的是10M联通宽带):
下面是成功连接vpn后,使用speedtest的测速结果,虽然不是非常快,但基本够用。
操作系统:CentOS6
vultr面板提供一键安装openvpn的办法,方法是在新建一个vps实例时选择默认安装一个应用程序:
具体安装办法参考官方的一键安装openvpn说明。openvpn是使用操作系统的登录账号登录的,所以搭建完openvpn后,你可以参考linux新建用户的办法新建一个用户及修改用户密码,然后使用opevpn提供的客户端或者网页(一般情况下是https://your_vps_ip:943/)登录即可。
之所以不建议使用openvpn,原因是测速发现比较慢,下载带宽不到1M,而且openvpn貌似不支持移动端登录。
注:之所以不建议使用pptpd,一方面是pptpd经常被墙,二是容易出问题。
操作系统:CentOS6
一、安装
- yum install ppp iptables pptpd
1. 编辑pptpd.conf
- vi /etc/pptpd.conf
- localip 192.168.0.1
- remoteip 192.168.0.234-238,192.168.0.245
3. 编辑options.pptpd,搜索ms-dns,去掉搜索到的两行ms-dns前面的#,并修改为下面的字段
- ms-dns 8.8.8.8
- ms-dns 8.8.4.4
4. 编辑/etc/ppp/chap-secrets设置VPN的帐号密码,注意,用户名与密码是区分大小写的
- 用户名 pptpd 密码 *
- net.ipv4.ip_forward=1
- sysctl -p
- iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
三、启动
1. 用下面的命令使pptpd开机自动启动
- chkconfig pptpd on
2. 启动pptpd
- service pptpd start
使用你的vpn客户端连接即可,如果配置没问题的话,就可以连接成功。
测试成功连接的vpn客户端有,win7+win10自带vpn客户端,andriod自带vpn客户端。但只在宽带网络上连接成功,4g网络连接不成功。
五、排错
1. 如果你的vpn连接不成功,有可能是iptable防火墙的问题,你可以使用下面命令
- iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
- 或者
- iptables -F
2. 如果你遇到访问网站偶尔连接上又断的问题,可能是MTU太大导致,可以
- 执行
- iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356
- 或者修改/etc/ppp/options.pptpd,在文件最后添加
- mtu 1356
3. 更多问题,可以打开pptpd的debug日志,根据debug日志的输出上网搜索一步步解决
- 修改/etc/ppp/options.pptpd
- 取消下面的注释
- debug
- dump
- logfile /var/log/pptpd.log(没有则手工修改)
来源:http://blog.csdn.net/noahsun1024/article/details/52196365
来源:http://blog.csdn.net/noahsun1024/article/details/52206369
来源:https://blog.csdn.net/rentian1/article/details/78864523/
前言
作为一名技术人员,经常需要访问一些墙外的网站,你懂的。本来想直接购买个vpn,但又怕不太安全。看到网上有很多自己搭建vpn的教程,于是自己折腾了一下,终于成功搭建,随便与大家分享一些经验。
选择一个vps
搭建vpn的第一步是,你必须有一台公网能访问的vps,而且该vps要在墙外,简单来说就是你必须要有一台能访问墙外的电脑。如何选择一个适合自己的vps呢?我自己认为主要有价格、稳定性和带宽等方面的因素,当然易操作性、良好的售后服务等也比较重要。
国外常见的vps有Linode、Vultr、SugarHosts、bandwagonhost等。
看了网上的一些评测,如《Vultr超高性价比VPS评测使用教程》,以及Vultr每月$5的费用,觉得可以入手,因为网上购买一个vpn也差不多这个费用。
注册账号
首先,登陆Vultr官网(点此进去有优惠),点击Create Account注册即可,现在官方搞活动,暑假注册使用免费送 20官方也不是白送给你的,好像是要先充 5)才能用。暂时不支持国内常见的支付工具(如支付宝),不过可以用paypal充值,至少怎么注册使用paypal,本文就不再介绍了,网上搜一大把。
选择机房
如何选择一个好的机房,当然是自己测过才放心。这里推荐使用PingInfoView来测试。以下是vultr的机房:
列表如下,贴到PingInfoView上即可。
- hnd-jp-ping.vultr.com
- syd-au-ping.vultr.com
- fra-de-ping.vultr.com
- ams-nl-ping.vultr.com
- lon-gb-ping.vultr.com
- par-fr-ping.vultr.com
- wa-us-ping.vultr.com
- sjo-ca-us-ping.vultr.com
- lax-ca-us-ping.vultr.com
- il-us-ping.vultr.com
- nj-us-ping.vultr.com
- tx-us-ping.vultr.com
- ga-us-ping.vultr.com
- fl-us-ping.vultr.com
以下是我的测试结果:
选择的原则是,ping值最小,丢包率最小。比如我的测试结果中,较不错的是sjo、wa和lax,都是美国机房。
部署实例
点击Servers,然后点右边的+号
依次选择自己测试比较好的机房,选择操作系统版本,选择方案($5的低配方案搭vpn已经够用,另外还可以自己搭个博客什么的),然后部署就搞定了。
如果是使用linux系统的操作系统,可以使用ssh的客户端登录上去,这里就不再详细说明。
上一篇《搭建自己专属的vpn——选择一个vps》提到如何选择一个vps,这一篇就淡淡如何利用vultr的vps搭建一个vpn。
方法一:搭建shadowsocks+serverspeeder(特别推荐)
CentOS:
- yum install python-setuptools && easy_install pip
- pip install shadowsocks
- apt-get install python-pip
- pip install shadowsocks
编写配置(参考 Configuration via Config File):
- vi /etc/shadowsocks.json
- {
- ”server”:“0.0.0.0”,
- ”server_port”:8388,
- ”local_address”: “127.0.0.1”,
- ”local_port”:1080,
- ”password”:“mypassword”,
- ”timeout”:300,
- ”method”:“aes-256-cfb”,
- ”fast_open”: false
- }
- {
- “server”:”0.0.0.0”,
- “port_password”:{
- “8381”:”xxxxxxx”,
- “8382”:”xxxxxxx”,
- “8383”:”xxxxxxx”,
- “8384”:”xxxxxxx”
- },
- “timeout”:300,
- “method”:”aes-256-cfb”,
- “fast_open”: false
- }
字段 | 说明 |
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系统 |
启动:
- ssserver -c /etc/shadowsocks.json
- ssserver -c /etc/shadowsocks.json -d start
- ssserver -c /etc/shadowsocks.json -d stop
- vi /etc/rc.local
- ssserver -c /etc/shadowsocks.json -d start
- Windows
- https://github.com/shadowsocks/shadowsocks-windows/releases
- Mac OS X
- https://github.com/shadowsocks/ShadowsocksX-NG/releases
- linux
- https://github.com/shadowsocks/shadowsocks-qt5/wiki/Installation
- https://github.com/shadowsocks/shadowsocks-qt5/releases
- iOS
- https://itunes.apple.com/app/apple-store/id1070901416?pt=2305194&ct=shadowsocks.org&mt=8
- https://github.com/shadowsocks/shadowsocks-iOS/releases
- Android
- https://play.google.com/store/apps/details?id=com.github.shadowsocks
- https://github.com/shadowsocks/shadowsocks-android/releases
- wget -N –no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh
如果报内核不支持,可以更换系统内核
- 下载内核安装包
- wget http://ftp.scientificlinux.org/linux/scientific/6.6/x86_64/updates/security/kernel-2.6.32-504.3.3.el6.x86_64.rpm
- 更换内核
- rpm -ivh kernel-2.6.32-504.3.3.el6.x86_64.rpm –force
- 重启
- reboot
- 查看内核版本是否替换成功
- cat /proc/version
- chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f
方法二:搭建l2tp vpn(推荐)
操作系统:CentOS6
参考DearTanker’s Blog的一键安装方法:
- wget –no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
- chmod +x l2tp.sh
- ./l2tp.sh
- service ipsec restart
- service xl2tpd restart
- ipsec verify
如果需要修改或者增加账号密码,可以修改/etc/ppp/chap-secrets
- 账户 l2tpd 密码 *
测试成功使用的客户端有,win7+win10自带vpn客户端,andriod自带vpn客户端。
测试成功使用的网络环境有,电信+联通宽带,移动4g无法连接成功,如果哪位朋友在移动网络下有成功的经验,麻烦分享一下。
不使用vpn时,使用speedtest的测速结果(我自己使用的是10M联通宽带):
下面是成功连接vpn后,使用speedtest的测速结果,虽然不是非常快,但基本够用。
操作系统:CentOS6
vultr面板提供一键安装openvpn的办法,方法是在新建一个vps实例时选择默认安装一个应用程序:
具体安装办法参考官方的一键安装openvpn说明。openvpn是使用操作系统的登录账号登录的,所以搭建完openvpn后,你可以参考linux新建用户的办法新建一个用户及修改用户密码,然后使用opevpn提供的客户端或者网页(一般情况下是https://your_vps_ip:943/)登录即可。
之所以不建议使用openvpn,原因是测速发现比较慢,下载带宽不到1M,而且openvpn貌似不支持移动端登录。
注:之所以不建议使用pptpd,一方面是pptpd经常被墙,二是容易出问题。
操作系统:CentOS6
一、安装
- yum install ppp iptables pptpd
1. 编辑pptpd.conf
- vi /etc/pptpd.conf
- localip 192.168.0.1
- remoteip 192.168.0.234-238,192.168.0.245
3. 编辑options.pptpd,搜索ms-dns,去掉搜索到的两行ms-dns前面的#,并修改为下面的字段
- ms-dns 8.8.8.8
- ms-dns 8.8.4.4
4. 编辑/etc/ppp/chap-secrets设置VPN的帐号密码,注意,用户名与密码是区分大小写的
- 用户名 pptpd 密码 *
- net.ipv4.ip_forward=1
- sysctl -p
- iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
三、启动
1. 用下面的命令使pptpd开机自动启动
- chkconfig pptpd on
2. 启动pptpd
- service pptpd start
使用你的vpn客户端连接即可,如果配置没问题的话,就可以连接成功。
测试成功连接的vpn客户端有,win7+win10自带vpn客户端,andriod自带vpn客户端。但只在宽带网络上连接成功,4g网络连接不成功。
五、排错
1. 如果你的vpn连接不成功,有可能是iptable防火墙的问题,你可以使用下面命令
- iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
- 或者
- iptables -F
2. 如果你遇到访问网站偶尔连接上又断的问题,可能是MTU太大导致,可以
- 执行
- iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356
- 或者修改/etc/ppp/options.pptpd,在文件最后添加
- mtu 1356
3. 更多问题,可以打开pptpd的debug日志,根据debug日志的输出上网搜索一步步解决
- 修改/etc/ppp/options.pptpd
- 取消下面的注释
- debug
- dump
- logfile /var/log/pptpd.log(没有则手工修改)