本仓库仅用于测试和学习研究,禁止用于商业用途,作者不保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
在符合中华人民共和国法律的前提下,学会科学、正确、合理的上网,是作为一个合法的中国公民必须具备的基本素养!这本小册子的目的是为了让我们在某些弱网环境下,更方便,更快捷的获取到网络上的一些资源,但前提是一定要保证你获取的资源是合法的!
想要科学、正确、合理且合法的上网,前期的准备工作少不了。就算你真的嫌麻烦,那你也需要加入某个相对稳定的 vpn 节点。不过,我个人更看重的是举一反三的能力,授人渔 才是这本小册子的真实目的。
接下来,我们讨论的是如何自己动手搭建一套属于自己的 vps,别看它和 vpn 只差一个字母,但技术含量和难以程度都如同云泥!(我身边就有不少程序猿依然只会使用别人提供的vpn,想想都替他们感到那啥……)
想要有一个自己的 vps,你至少需要以下几个条件👇:
-
一台属于自己的 云服务器,别管配置,哪怕 0.5G内存 + 1核CPU 也行;
-
一个能在你的 云服务器 上跑起来的 服务;(关于服务器和服务的区别,后面有说明)
-
最重要的一点:拥有 相信自己一定能行 的信心。
推荐几个比较常见的云服务供应商,以作参考。
针对低端用户,笔者尝试过国内的阿里云、百度云、腾讯云、新浪云,对于服务稳定性而言,比较推荐腾讯云,如果考虑价格等其他因素,其实各大厂商对于新用户都有优惠政策,可根据自己的实际情况选择。
对于境外的运营商,考虑到 支付的便捷性,推荐vultr;vultr 的相关优惠,可以在搜索引擎中输入 vultr新用户优惠
关键字进行搜索。
但若考虑到 稳定性 和 长期使用的成本,最为推荐的是 AWS,因为综合对比下来,AWS 的价格更为低廉,且稳定性较高,但上手难度比 vultr 高一些,需要有双币种(Visa、Mastercard 等)的信用卡或借记卡。
另外,亚马逊的AWS 和 微软的Azure 都有一年的免费使用套餐,谷歌云则有3个月的免费套餐,大家视自己情况而定。
代理服务器,就是我们 合法、科学 上网的核心 —— 即使用你在👆上面这些云服务器供应商购买的云服务器,然后将你的资源获取请求事先发送到这些云服务器,而后这些 代理服务器 会代理你要请求的资源,最终将这些请求到的资源返回给你。
关于 代理服务器 的详细概念介绍,详见维基百科
千万别天真的认为,你只要购买了 云服务器 就实现能代理你的资源请求!想想看你的电脑想要运行起来,光靠电脑本身的硬件 CPU、GPU、内存……显然是不够的,还要安装最基本的操作系统才行。
因此,云服务器 你可以把它简单理解成 硬件,而在这个服务器上,我们还需要安装相应的 服务,即 软件,才能让整个系统正常的运行起来。
大多数的编程语言,配合相应的编译和解释器,都能在你的电脑上直接运行起来。但程序一旦运行完毕,这世界就好像什么都没发生一样(当然发生了点什么),计算机依然安静的等待你继续下一个操作。
突然有一天,你想让你的计算机能够持续运行,或者说保持某种待命的状态,一旦有任何你的风吹草动,它都会再次执行你之前定义好的任务 —— 我们简单的将这样的特性理解为 服务 —— 就好比定义好一个 问候 的任务给计算机,一旦有人访问它,它立马返回你定义好的问候语句,就比如大部分的编程课的第一章都是教你如何写出一个 hello, world!
。
我们想要 合法、科学 的上网也离不开服务,而执行这些服务的基础,早已有很多很多开源的项目(感谢开源)。常见的服务基础设置有 apache、tomcat、nginx、caddy……一旦有了这些基础的服务设置,然后再配合你编写的脚本程序,就能对外提供服务了。
Tips: 编写服务的脚本语言有很多,比如 PHP、Java、Javascript、go、python……
我们在这里重点关注以下几个服务的安装和配置:
-
ssr + caddy + tls:ssr 做反向代理,转发普通请求到 caddy 服务(自带tls),对于其他请求,则进行正向代理; -
v2ray + nginx + tls:nginx 做反向代理,将自定义的某个路由转发到 v2ray 服务进行正向代理,需要手动配置tls。
-
ssr + caddy + tls 模式-
ssr 基本配置 —— (兼具正、反向代理服务,搭配caddy) -
caddy 基本配置 —— (web服务,搭配ssr)
-
-
v2ray + nginx + tls 模式
-
v2ray 基本配置 —— (正向代理服务,搭配nginx)
-
nginx 基本配置 —— (反向代理服务,同时也是web服务,搭配v2ray)
-
Tips: 按照目前的情况,大部分基于 ssr
的衍生项目都年久失修,长期处于停滞维护更新的状态,而且其特征往往十分明显,故而不太推荐该方案。除了 v2ray + nginx + tls
的模式之外,Trojan 同样也是一个优秀的实现方案。
如果你购买的是国内的云服务,一般来说都有安全限制,此时你需要手动设置你的 安全组规则,开放对应端口(包括TCP和UDP协议)出入站的权限,而后将规则绑定到云服务的实例上。
如果嫌麻烦不想配置诸多环境,可以使用👇下面的办法一键安装最优配置
配置要求:x86_64 + ubuntu>=18.04 / debian>=10.8
sudo su
wget --no-check-certificate -O /tmp/install.sh https://github.com/BobbyLH/Scientific_Surf_The_Internet/raw/master/install.sh &&\
chmod 755 /tmp/install.sh &&\
/tmp/install.sh &&\
rm /tmp/install.sh
如果使用的是 ipv6 only 的服务,那么需要先配置 DNS-NAT64
:
cp /etc/resolv.conf /etc/resolv.conf.bak &&\
echo -e "nameserver 2a01:4f8:c2c:123f::1\nnameserver 2a00:1098:2c::1\nnameserver 2a01:4f9:c010:3f02::1" > /etc/resolv.conf
上述安装完成后,恢复之前备份的 resolv.conf
文件
&&\
rm /etc/resolv.conf &&\
mv /etc/resolv.conf.bak /etc/resolv.conf
服务都搭建好了,但是每台设备都需要安装相应的客户端才能达到实际想要的效果,这很不爽。解决的办法也很简单 —— 用路由器作为入口终端,代理所有的请求,在这个局域网下,所有的设备自然而然就达到了预期的效果。
市面上的路由器很多很杂,中高端里较为推荐 华硕 和 网件,质量稳定,功能强大(因为梅林)。稍次一些就比较多了,比如 Tenda、TPLink、水星、小米路由器、联想路由器、360路由器……,虽便宜,也能胜任工作。
笔者自家使用的是两台ASUS(华硕)组成的Aimesh,一台是AC68U,一台是AC66U-B1,价格相差无几,稳定性、功能、信号强度都没太多区别,关键是它们都采用了 博通方案,刷梅林固件几乎是傻瓜式,相关的教程也很多,就不再赘述。
贴两个地址:
要刷固件,路由器的型号一定要选对,不是每个路由器都适合或是能够刷固。下面以国货之光,联想的 新路由3(newwifi-3),作为刷固的教程。
新路由3 应该是性价比较高的机型了,二手某宝价格在100元RMB左右,便宜的甚至能到60元,机器配置不低(双核 + 512M 内存),网上其刷固的教程也很多,此乃国货之光,值得入手。
所谓的路由器固件,可以简单理解为路由器的操作系统。一般我们在市面上能够买到的路由器,都是由路由器厂家提供好了一套原厂的操作系统,其功能单一,不能很好的满足我们一些需求(华硕除外)。
一般来讲,中高端玩家可以直接选择华硕的路由器,省去了刷固的烦劳,毕竟自带梅林固件,而中低端玩家,那就要自己动手了,毕竟钱也不是那么好省的。
主流固件列表:
Breed 就好像我们电脑开机时启动的 UEFI、BIOS 等基本系统一样,提供了各种硬件的设备信息,用来给上层操作系统(windows、linux)提供支持。
以 新路由3 为例,在 MacOS 操作系统下,刷入的步骤很简单:
-
确保路由器正常连接到网络,并连接到路由器;
-
输入网址
http://192.168.99.1/newifi/ifiwen_hss.html
,若页面显示 success 即表明开启了SSH; -
打开终端(Terminal),而后输入
scp ${your_path_to_breed}/newifi-d2-jail-break.ko [email protected]:/tmp/
将 breed 固件拷贝到路由器中 -
在终端中输入
ssh [email protected]
,而后填写路由器的登陆密码 -
成功用 SSH 登陆后,在终端中输入
cd /tmp && insmod newifi-d2-jail-break.ko
-
此时路由器会停止而后重启,待路由器重启完毕后(2.4G 和 5G 的信号灯都开始闪烁),将其电源线断开,然后按住 reset 重置按钮不放,接着再插上电源线(一定要先按住 reset 按钮再插电源线),等待10秒以上,当路由器的电源灯开始闪烁时,松手,而后等待路由器启动完毕,就成功了。
-
此时关闭电脑的无线,用网线直接连接路由器,而后进入浏览器,输入
http://192.168.99.1/
,就会看到 Breed Web 恢复控制台,你的路由器就可以随便刷固件不怕变成砖头了:
老毛子 Padavan 传说是一位俄罗斯的大神,基于梅林固件改版而来,其性能优异,稳定性较好,功能强大,是刷固入门的首选。
只要刷好了Breed,接下去刷入Padavan就很容易了:
-
下载 Padavan 1.4 固件
-
进入
http://192.168.99.1/
,在左侧的菜单栏选择 固件更新,而后点击右侧的 固件 的上传按钮,上传固件; -
上传完毕后,在弹出的对话框中点击
更新
按钮: -
路由器会自动重启,等候一段时间,取下电脑的网线,而后打开无线开关,在 wifi 列表中出现了
NEWWIFI3xnxy2012*
或NEWWIFI3xnxy2012_5G*
时,链接它,初始密码是1234567890
,此时刷固就完成了。 -
最后,在浏览器中输入
http://10.10.10.1/
,账户和密码都是admin
,即可进入路由器的控制页面,管理你的路由器了。
-
有苹果设备,当然首选 surge,几百块钱真不贵!
-
要是舍不得那点钱咋办?多花点时间和精力呗,SpechtLite 是个免费开源的项目,不过已经停止维护;
-
其他客户端,可以参考 v2ray官网 的清单。
“条条大路通罗马” 这个道理在科学上网面前也同样适用,无论你用什么实现科学上网,目的都只是为了能不被局限在狭小的世界里,当一只井底之蛙;
科技在发展,技术在进步,魔高一尺道高一丈,今天适用的理论,也许到了明天就毫无用武之地!而这本小册子的目的不仅仅在于让你成功的实现科学上网,更为重要的是让你明白,阻止你畅游网络世界的背后到底是什么。
希望在将来的某一天,我们的子孙后代完全不必去理解 “科学上网” 到底是什么……
自从2021年前后,Netflix加大了封锁非原生住宅ip的措施,大部分机房的vps,只能用来看自制剧了……
这并没有大不了,但对于肉身尚在墙内,而内心向往着自由世界的我们来说,要是连《Breaking Bad》或者《Better call Saul》都看不了,那算个屁的自由!
多花点时间和子弹,也不是不能搞定,但显然在 Cloudflare 推出了 warp 之后,事情突然变得简单起来。
如果你已经按照本文提供 v2ray + nginx 的方法,搭建好了一台网速还不错的 vps(推荐腾讯云香港轻量入门级),那剩下的操作应该水到渠成:
-
找一台用 warp 还能刷出看非自制剧的 vps,别问我哪里能有,这个会随时间变化而变化,但关键是地域,亚太地区就别想了,重灾区
-
登入你的高速小鸡,比如腾讯云香港轻量
-
vi /usr/local/etc/v2ray/config.json
-
在
outbounds
添加:{ "tag": "media-unlock", "protocol": "vmess", "settings": { "vnext": [ { "address": "your_unlock_address", "port": "your_unlock_port", "users": [ { "id": "your_id", "alterId": 64 } ] } ] }, "streamSettings": { "network": "mkcp", "kcpSettings": { "uplinkCapacity": 5, "downlinkCapacity": 100, "congestion": true, "header": { "type": "none" } } }, "mux": { "enabled": true } }
-
在出站即
routing
的配置中,加上对于 netflix 的规则:{ "type": "field", "domains": [ "geosite:netflix", "domain:netflix.com", "domain:netflix.net", "domain:nflximg.net", "domain:nflxvideo.net", "domain:nflxso.net", "domain:nflxext.com" ], "outboundTag": "media-unlock" }
- 登陆你能看非自制剧的小鸡
-
用 这位大佬提供的脚本,搞定繁琐的 warp 配置
wget -N https://raw.githubusercontent.com/fscarmen/warp/main/menu.sh && bash menu.sh
,选择安装 WARP WireProxy 的解决方案 -
完成后再使用 自动刷 ip 脚本
bash <(curl -sSL https://raw.githubusercontent.com/fscarmen/warp_unlock/main/unlock.sh)
,推荐 crontab 的方式 -
在
outbounds
中添加:{ "tag": "media-unlock", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 40000 } ] } }
-
在
routing
中,加上对于 netflix 的规则:{ "type": "field", "outboundTag": "media-unlock", "domain": [ "geosite:netflix", "domain:netflix.com", "domain:netflix.net", "domain:nflximg.net", "domain:nflxvideo.net", "domain:nflxso.net", "domain:nflxext.com" ] }
- Google 一下 Netflix Breaking Bad,能看小粉、老白和Mike 黄金铁三角的页面,那恭喜你,解锁成功。
核心的关键是:找到一台能用 warp 解锁看非自制的vps
而至于清晰度,只要你的vps不是在南极,通过香港小鸡提速(bbr + kcp + mux),能同样做到高清观看。
Copyright (c) 2019 Bobby.li
Released under the MIT License