VPS+ShadowsocksR 搭建自己的 VPN

本文上半部分写于 2017年10月12日,因为使用了一段时间,有了少许收获,文章于 2018年3月2日、2019年6月2日更新作为补充。

真诚表态

  1. 翻墙只为了更好的学习
  2. 不做不利于国家的事情

(害怕被请去喝茶,低调低调)


缘由

我的 VPN 还有大半年到期,但是最近风声紧,SS 换成 SSR 都不能用。去官网一看,提醒如下

We received an important request and suspended all of the service before the end of the meeting until the end of this month.
Due to the suspension of service to the loss, We will give you a unified compensation after the restoration, to bring you the inconvenience, please understand.

要等好久呀。

昨天同事去见了一个马来西亚的老师,老师帮着下载了一个 VPN,用自己账号登陆了。同事开心得不得了,因为她能无障碍上 P 站网罗资源了,但今天发现又不能上了,她表示很失落。

然后 Boss 不知道是受什么刺激,突然觉得公司一起翻墙是很有必要的事情,拉着我来琢磨这件事情。我之前跟他讨论过自己买 VPS 的事情,我说明年我给公司搭一个一起玩。Boss 说就今天吧,交给我了。=-=

最终是搭建好了的,速度爽翻~ 不过我觉得可能还有些缺陷。为了方便日后查找,同时也给其他朋友一些经验作为借鉴,我就将这次的过程、思路、参考网页以及不足都写下来。


目的

  1. 不限制同时登陆的设备数,要能好几个人一起用
  2. 流量限制的上限要能让我们几个人玩得尽兴
  3. 翻墙速度要快,上 Youtube 和 Coursera 要清晰
  4. 翻墙的操作不要太麻烦,Mac 和 Win,iOS 和 Android 都能用

我们几个人之前都用过 Shadowsocks,只是各自购买的服务商不同,年费价格在 120-180 元。由于此前我已经在各种地方了解过,自己购买 VPS 然后搭建 VPN 是最方便最稳定的方式,一直就想折腾一个,能不受限制地自由玩耍,所以这次就直接从 VPS+ShadowsocksR 入手。


背景和工具介绍

  1. 非技术出身,不懂 Linux、SS、SSR
  2. Windows 7 x 64 位系统的电脑
  3. 搬瓦工 VPS
  4. ShadowsocksR
  5. Dropbox
  6. Test your IP

关键流程梳理

1. 明确需求,做出选择

  • VPS 服务商选搬瓦工、Vultr 还是 Linode?
  • 服务器地址选香港、日本、美国还是韩国、俄罗斯等国家?
  • VPS 的框架选 Openvz、KVM 还是 XEN 框架?
  • 服务器系统选 CentOS、Debian 还是 Ubuntu?
  • 加速选锐速、TCP BBR、Final Speed 还是 Google BBR?
  • 用 SS 还是 SSR?

我的选择依次为搬瓦工、美国洛杉矶、KVM、CentOS-6-x86_64-bbr、SSR。

因为搬瓦工是公认的性价比高,而且搬瓦工的教程最多、最齐全,我没有专人指导,最好找资料丰富的方式。

我选择的套餐就是洛杉矶机房的,因为之前的 SS 用下来,我发现洛杉矶机房的速度最快,延迟最少、最稳定,我自己也不喜欢切换来切换去,直接锁定洛杉矶就行了。

至于 Openvz、KVM、XEN 的选择很简单。我看过一篇教程帖,知道了 Openvz 是被淘汰的选择,现在主流就是 KVM,它内置了 BBR 内核优化,访问速度会比 Openvz 好很多。

Shadowsocks 和 ShadowsocksR 的选择,我毫不犹豫选了后者。一方面是我之前的 VPN 服务商发了一封通告告诉大家要强制换用 SSR 让我了解到 SSR 更加密(加入了混淆算法),后来又搜到了不少谈论它们两者区别的文章,让我下定决心使用 SSR。

另外,之前 SS 换 SSR 的时候,我就已经找到了 SSR 的安装包(我的这篇教程后面放了下载链接),这就省了很多时间。

2. 购买 VPS

最终选购的方案是搬瓦工 Special 20G KVM-洛杉矶-中国直连,可更换机房,内存 1024 MB,20G SSD,月流量 2000 GB,年付 39.99 美元,使用优惠码 BWH1ZBPVK,后 37.59 美元一年,支付宝付款。

购买成功后,邮箱收到三封邮件,里面有重要信息(SSH port、VPS IP、root 临时密码)需要记录。之后有用。

3. 配置服务器

登陆搬瓦工网站,进入 Services-My Services-KiwiVM Control Panel,先去 Main controls 改一下 Hostname (如果你用 putty 的话,这个就是登陆的名字,当然你也可以用 root 这个名字)

还是 Main controls,点一下 Stop,接着去 Install new OS 这里,选择 CentOS-6-x86_64-bbr,勾选 I agree, 点击 Reload。然后逐个改密码咯~

  • Root password modification 这个是装系统之后,搬瓦工给你的,已经是强密码了,所以不建议你再改。当然,你要是执意想改掉,也行。你可以点击“Generate and set new root password”再次生成一个密码,也是强密码。注意记录好。
  • KiwiVM password modification 是登陆控制面板的密码,直接输入两遍新密码即可

然后 KiwiVM Extras 这里安装 ShadowsocksR Server,它自动装好之后显示的信息要记录一下,稍后在 SSR 里需要填写。没有安装好 SSR 客户端的也可以在这个页面根据提示去下载安装。

注:我这里是直接使用搬瓦工的一键安装服务,但也有人说这样不好,要自己手动装,下载一个 putty 或者 xshell 连接远程服务器去安装 SS 或 SSR,我认为很麻烦,懂得自定义的人可以选择下载。

更新于2017年12月6日,不用下载 putty 或 xshell,直接一键安装 SSR 服务即可。

4. 上网测试

安装 SSR 之后,编辑服务器信息,试验是否成功。

因为我一直开着 Dropbox,如果我成功翻墙,Dropbox 的图标会变成绿色对勾。在做完上述步骤后,我没有成功。所以我做了两件事:

  1. 下载 putty 并连接远程服务器(我只是成功连接,但并没有输入任何命令)
  2. 我将搬瓦工服务器里的 ShadowsocksR Server 和 OpenVPN Server 也一并安装了

我不清楚是因为我安装了 ShadowsocksR Server 和 OpenVPN Serve 的哪一个,才令我成功翻墙的。又或者是本身就需要等待一小会?我不清楚。

SSR 的系统代理模式选择的是 PAC 模式,代理规则选择的是绕过局域网和大陆,至于编辑服务器的具体设置就不赘述了,这里不是难点,相关信息照着搬瓦工里的信息填写就好了。

上网测试让我非常满意,Youtube 的清晰度自动是最高的 1080 P,缓冲很快,开其他国外网站也很快,国内网站打开也很迅速。比我之前用的 VPN 好得不止一星半点,满意!

Test your IP 显示的地址是 United States。

2017年12月6日更新:上面的操作可以优化一下,大家不用去下载 putty,也不需要安装 OpenVPN Server,只需要安装 ShadowsocksR Server 即可。


ShadowsocksR

Windows 下载地址

ShadowsocksR 分为 dotnet 2.0 和 4.0,实际功能无区别,只是电脑安装 .NET Framework v2.0 或 4.0 的支持库版本不同。一般 Win7 以后都默认安装了 v2.0;Win8 以后都默认安装了 2.0 和 4.0,只有 XP 系统两个都默认没有安装,需要手动安装支持库。

Android 下载地址

Mac 下载地址

iOS 下载地址

  • 小火箭 ipa 客户端,这个方法很复杂,我是从网上搜索下载 iOS 可用的 shadowrocket.ipa 文件,然后用电脑连接数据线,选择安装本地应用到手机和 ipad 里的(有点复杂,如果可以最好直接去应用市场下载 Wingy 或者 Shadowrocket)
  • 肉身翻墙…… 当你去国外旅游时,赶紧下载好 =-=
  • Wingy
  • Shadowrocket

我的不足(我没弄明白的地方)

括号里的是我自己的回答,更新于 2017年12月6日。

  1. 我不知道最终生效是因为我成功登陆了 putty 还是在服务器中安装了 OpenVPN 服务?(跟 putty 和 OpenVPN 无关,主要是我安装了 SSR 服务)
  2. 我不知道直接在服务器中一键安装 SSR 服务,跟我用 putty/xshell 手动安装有多大差别?(它们只是远程连接服务器,自由度更高,如果我没有那么多需要自定义的东西,直接一键安装就行了)
  3. 服务器的 SS 和 SSR 服务都安装了,会不会有冲突,能否同时用呢?(虽然都安装了,但我只用 SSR,并没有同时开启 SS 和 SSR,后来卸载了 SS 服务,并无影响)
  4. 我不知道目前的状态需不需要再做多用户配置?(目前不需要,多用户配置需要输入代码)
  5. 我不知道需不需要加一段代码,让服务器自动启动?(目前是可以的,所有账户都不需要做另外的操作,打开 SSR 就能成功翻墙;不过最好是 2-3 个月去搬瓦工控制面板重启一次)
  6. 我的 Windows 系统有 SS 和 SSR 之分,可是 Mac 端只有 ShadowsocksX-R,不知道会不会有问题?(Mac 端的 ShadowsocksX-R 需要用全局模式才能上 Pixiv 站,PAC 模式能上 Google 和 Youtube)
  7. 不知道 ShadowsocksR 开发者是否会持续维护?(不知道哦,反正现在没啥更新了)
  8. SSR 服务端加密方式 chacha20 和 aes-256-cfb 有多大区别,编译安装 libsodium?(还是不懂,因为跟我的关系不太大)
  9. IPv6 有必要开启嘛,KVM 系统不支持 IPv6?(不明白,我的网络连接只开了 IPv4,似乎是校园网用户需要用到 IPv6)

总结经验

  1. 优先看官方文档,官方论坛,尽快补全基本知识
  2. 一些小众的问题需要单独搜索,也多开几个页面互相补充知识
  3. 很多教程受限于时间,其实后来有更好的解决办法
  4. 根据自己的需求去做决定,不要盲目跟随别人的选择
  5. 有些选择很纠结,但你做完前面所有操作之后,你可能会发现它已经不成问题了
  6. 遇到问题的时候,不要蛮干,实在做不好就先放松心情,等会继续
  7. 一定会有人遇到跟你一样的问题,搜不到解决方法的时候换一个检索词
  8. 你解决了一个问题时,不妨输出成文章,兴许能帮助到其他人
  9. 写教程的时候,不仅要写 What 和 How,也要写上 Why,还有参考资料,能帮别人省很多事

参考网站

总网站

单篇教程

杂文


使用后的补充

(以下更新于 2018年3月2日 0:21:55)

搬瓦工使用也有一段时间了,也遇到好几次突然不能翻墙的情况。我也算是有了些经验,想要总结沉淀一下,也作为日后的回顾。晚上的文章实在是太多了,很多都是过时的,要不然就是只写了一小点,根本不具体,没办法解决我的疑惑。想来想去,干脆自己写一篇。

下面只是我的经验,大神不要见笑。

为什么会突然不能翻墙?

原因有很多,你要知道,只有国内是有墙存在的。

  1. 每当出现了比较重要的事情时,比如开会,比如春节,比如网络信息安全法律修订等等,前后几天的风声都紧,梯子很可能就挂了。一般就是几天,最多一礼拜的样子。
  2. 你的 IP 被发现了,然后 ban 掉了你。比如你使用 360 浏览器或者某安全管家,它们很有可能检测到你的 IP 有问题,然后上报给国家,你的 IP 就暴露了,添加到黑名单里,就无法愉快地翻墙了。
  3. 你的 VPS 出问题了。比如设置出问题了,service stopped;再比如你用的流量太多(我有一次用 VPN 下载了 steam 的游戏,700M左右,第二天挂掉了),超过了 VPS 的限制,被监测到然后封了;还比如你的服务商跑路了,倒闭了,业务转型了……

怎么确定是哪种原因导致的?

无需确定,我们的目的只是顺畅使用。所以你只需要分辨,哪些情况是有希望、还能继续用的,哪些情况是没希望的。

如何 ping?

1)本地 ping
Win+R 打开“运行”,输入“cmd”,会弹出一个黑色底的窗口,在这个窗口里输入“ipconfig/all”,其中 ipv4 地址就是你本地的 ip 地址。

如果有问题,它会提示。

2)超级 ping 工具
常用的超级 ping 有:https://ping.pehttp://ping.chinaz.comhttp://www.ipip.net/ping.php
第一个是搬瓦工承认的网站,第二个是国内常用的网站。
打开一个,输入你的 VPS 的 IP 就行了,绿色说明良好,红色说明没有 ping 通,有问题。

搬瓦工 ping 不通的几种情况

  1. 本地 ping 不通,超级 ping 显示国内其他地区能 ping 通。说明本地网络有问题,可能是暂时的。
  2. 本地 ping 不通,超级 ping 显示全球都 ping 不通。一般是 VPS 状态的问题。
  3. 本地 ping 不通,超级 ping 显示国内 ping 不通,但是国外 ping 能通。这种情况 IP 基本是废了。可能是暂时的,过几天就好,也可能是永久废掉了。

一般怎么解决?(旧版)有效

无论你的 VPS 发生了什么情况,你都可以做以下操作进行自救。

首先,打开 SSR 的服务器-服务器连接状态,每进行一步尝试,都等一等看看恢复了没。

第一步,登陆后台查看 VPS 的状态是否为 running,SSR Service 是否为 running,不是就 start 一下。

第二步,别怕玩坏。把 VPS 主机、SSR 服务都重启一下,还不行就给 SSR 换一个端口(change port),推荐换 20 或者 5353,不要用 443 或者 444 端口。如果还不行,那只能重装大法了~

把 SSR 服务卸载。然后将主机 stop,再重装 OS,清除所有内容。重来一遍 VPS 的配置,重装 SSR,试试看。

第三步,换 IP 或者重新买一个套餐。如果你的 IP 被墙,搬瓦工后台的自由切换机房功能也用不了。可以点这个链接https://bwh88.net/ipchange.php 选择你要更换的 IP,付款 8.79 美元。很快你就能收到新 IP 的邮件了,之后配置好就行了。买新套餐也是一样。

以下更新于 2018年10月12日 18:28:53
我之前还有尝试给客服写工单,因为有一次我刚换好 IP,没到半个月就又被墙了。我感到很忧伤,所以问客服怎么回事。客服是这样回复的,大概意思就是被墙是与他们无关的,他们的一切运转良好,这事需要我自己负责。

以下更新于 2019年6月2日 18:10:26
时隔 8 个月,我的梯子挂了~ 折腾了一下最终付费 8.79 USD 更换成功(保住了我的传家宝 VPS 哈哈哈,值了。不过我很怀念春节时 2.7 USD 就能换 IP 的日子,还有那个免费换 IP 福利…)
我给搬瓦工客服写工单,问他们 怎么没有免费更换 IP 服务了,我的 IP 又被 ban 了~ 然后客服回我建议付费换 IP,地址是 https://bandwagonhost.com/ipchange.php 镜像地址是 https://bwh88.net/ipchange.php

不过这次新增了一项服务,看上去是搬瓦工和这个网站:https://justmysocks.net 合作的(是不是发现中国被 ban 的用户很多,想要帮助他们解决这个需求,顺便实现一些盈利~哈哈,我还没买这个服务,之后有机会体验下)

一般怎么解决?(~~新版~~)已失效

听说是因为大量用户都申请免费换,搬瓦工支持不住,停止了这项福利。下面那个 Test Main IP 网址已失效了,会提示“This feature is disabled while we work on improving the accuracy of testing.”。只能选择付费更换 IP 了。
—— 更新于 2019年6月2日 18:10:26

更新于 2018年10月12日 18:28:53,我的 VPS 到期了,来续费的时候看到一个消息,真是太高兴了!搬瓦工支持每 5 周免费更换一次 IP 了,之前还要 6-8 美元才能换呢!

用超级 ping 看一下 IP 情况怎么样,也可以登陆 KiwiVM 面板,然后打开 https://kiwivm.64clouds.com/main-exec.php?mode=blacklistcheck ,点击“Test Main IP”检查 IP 有没有被封掉。

如果显示被封掉“IP IS BLOCKED”,你可以直接在页面上申请 “replace”换一个新 IP,很快的。你会收到邮件告诉你新 IP, KiwiVM 控制面板也可以刷新出新的 IP,这时候你要 stop 然后重新安装 OS,这里等 5 分钟。再重新安装 SSR,也等 2 分钟。基本就没问题了。

如果打开之后显示“IP NOT BLOCKED”,但是你又没办法上网,这时候你可以尝试在 SSR 服务里,更换端口,比如我的是 443 端口换成了 20 端口,然后就可以了~

我还出现过一种情况,我的国外服务一切良好,但是下载 Google 云盘大文件的时候很慢,(我用的是 IDM 下载器),我点开 IDM 下载器的设置,设置了代理,选的是 socks5,端口就是你的 SSR 那边告诉你的,账号密码也都是 SSR 服务那边显示的账号密码。

后记

我现在用两个套餐,一个 39.9 美元的,一个 19.9 美元的。不得不说,贵的就是好用。之所以买两个,是为了防止其中一个出问题时,我还有一个保底,这样不会闹心。

2018年10月13日 补充:我发现 39.9 美元的涨价到 49.9 美元了。看来 VPS 还是早点买比较划算,一定要记得续费,难怪有很多人说自己的 VPS 是传家宝…… 很早买的续费价格也不变,晚买真的越来越贵。

不能翻墙,真的很烦躁啊~

值得一提的是,有的套餐版本没有一键 SSR 服务,这时候就需要自己下载 Xshell 免费版,远程连接 SSH 去做配置(网络上有很多一键管理脚本,不用担心,我折腾了好久才找到了靠谱的)。

一键安装服务,说到底还是代码。VPS 存在那么多年了,程序员那么那么多,不可能没有人写过一键安装的代码,只是手动输入上去而已。

去年,我阴差阳错地学会了如何远程连接服务器,现在只需要学会,如何输入正确的 SSR 代码即可。翻找了半天,比对了若干篇教程,终于让我研究出了自己安装的办法。2333

还顺带知道了,如何让服务器自动重启、如何做用户登录和流量限制、如何做多用户配置等设置。也就是说,以后我可以尝试其他套餐啦,还有其他服务商的 VPS 也不惧,只要提供 VPS 给我,我就会自己设置,哈哈哈~


番外:用 Xshell 远程连接配置 SSR

更新于 2019年6月6日 14:50:14

第一步,下载 Xshell 连接 VPS 服务器

5.0 或者 6.0 的都可以
去 NETSARANG 官网下载 Xshell6(家庭/学校免费版) ,然后去邮箱收下载链接。



安装好,之前保存的

文件-新建-连接,进入输入主机IP 和 端口,是搬瓦工那边显示的

然后点用户身份验证,用户名一定要填 root,密码去搬瓦工那边找(之前邮件里发过)

要是忘记这个 Root 密码了,就去搬瓦工控制面板重置一下吧(要记录好呀)

确定就连接好了。

第二步,通过 Xshell 配置 SSR

第一次的要下载,按 Ctrl+Insert 复制下面这段代码

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/ssr.sh && chmod +x ssr.sh && bash ssr.sh

再按 Shift+Insert 到 Xshell 里面黏贴,这是 Xshell 的黏贴快捷键。不是 Ctrl+C 和 V 哦。

如果出现提示“-bash: wget: command not found”
那你要先安装 wget 软件包(自动的)
按 Ctrl+Insert 复制下面这段代码,Shift+Insert 黏贴到 Xshell 里回车
yum -y install wget
如下图就好了。

安装好再重新输入第一行的代码,然后它会提示你,弄完之后再输入

bash ssr.sh

(我这个是单用户 单端口的,如果是多用户多端口 是输入 bash ssrmu.sh)

接下来一路设置就好了。
我给两个设置给大家参考:
服务器端口 (你自己随便输入个 1-65535 之间的数字都行,不要设 443、22、277889 等常用的)
① 加密选 aes-256-cfb、协议 origin、混淆 tls1.2_ticket_auth
② 加密选 none、协议 auth_chain_a、混淆 plain
这两种都可以,其实应该还有其他配置,但是我总会出现空连、错误的情况。

设置成功如下图:

第三步,调整好 SSR,成功上网

空连、错误基本上是 SSR 的密码、端口、加密方式、协议、混淆有东西搞错了,多折腾下 =-=
设备数、单线程限速是都可以调整的,可以不用照抄我的设置,按需按需~

我被 SSR 的密码坑过。
搬瓦工直接一键配置的倒还好,它会明确告诉你对应填空是什么。但如果自己配置的,很容易搞混服务器密码 和 SSR 密码。
我再强调一下,自己连 Xshell 配置的,配置属性时填的是 网站里的 Root 密码。
你在 Xshell 里配置完 SSR 的东西后,你去 SSR 客户端里填的密码,是 Xshell 最终结果出来的密码(中间你可以自己设,想设置成什么样就什么样)。
希望大家少走弯路~

再会!

@2018-03-02 01:40
Comments
Write a Comment
  • init reply

    不知道你用的是哪个脚本,推荐使用逗比的脚本(自带bbr和锐速):https://doub.io/ss-jc42/

    主要就三步:

    1.登录linux

    2.输入wget -N --no-check-certificate https://softs.fun/Bash/ssr.sh && chmod +x ssr.sh && bash ssr.sh

    3. 一路回车,完成(有提示,可根据自己的情况设置)

    ShadowsocksR 不会再更新了,作者把github上的代码都删了,(因为被网友人肉,是去年夏天的事)

    有网友接手了这个项目,名字叫ShadowsocksRR,作者是Akkariiin,不过也没有改了多少.

    可以关注一下V2Ray,另一个翻wall工具,此外还有brook等比较小众的工具.

    • init reply

      @init 落了一步:2.5:输入1,回车

  • wellsleep reply

    多人共用的话还是要么开多账户,要么多开几个VPS分摊流量的好,反正很便宜。流量太集中的话目标很明显。我的搬瓦工SS梯子非重度使用(每个月不超过100G流量),用了一年多依然健康。

    或者还有个办法,在VPS上建个网站,开HTTPS,兴许能糊弄一下。

  • weiyt reply

    刚换了一个IP,还没两天就被墙了。免费的IP要等很久,付费的IP是否也还是会有很大机率被墙?请问有什么好的解决办法吗?有什么办法可以降低IP的被墙?谢谢~

  • YUCCI reply

    感觉还是买机场省事~哈哈哈