在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:haoel/haoel.github.io开源软件地址:https://github.com/haoel/haoel.github.io开源编程语言:Shell 100.0%开源软件介绍:科学上网作者:左耳朵 http://coolshell.cn 更新时间:2022-04-23 这篇文章可以写的更好,欢迎到 https://github.com/haoel/haoel.github.io 更新
0. 序首先,我们先明确一下,我科学上网的目的主要是为了学习、工作、交友、查资料、和丰富自己的眼界,不是其它的事。 对我来说,科学上网很重要,下面罗列一下需要科学上网,我才能真正学习工作和生活的网站:
是的,我的互联网不是——全是骗子的百度、充满广告的微信朋友圈、质量低下的公众号、娱乐至死的新浪微博、只有抖机灵和“怎么看XX”的知乎、毫无营养的今日头条…… 在这样的网络空间里,我真的无法生存…… 这根本不是互联网,不是为我服务的互联网,而是在消费我的互联网,是让我变傻变笨的互联网…… 我不能忍,因为它影响到了我的生存…… 1. 英文能力首先,你应该对英文读写没什么问题! 为什么这么说?这主要是针对计算机相关的知识,逻辑是这样的,如果你上了Google还是在用中文关键词,那么你好不容易出来了,结果又回去了,所以没什么意义。 换言之,科学上网的目的是为了进入广阔的世界范围与全世界的人交流,所以,英文是必备的,如果你英文有问题,VPN过去的用处也不大。 所以,我把这个前提条件放在第一的位置,就是说—— 真正的墙不是GFW,而是人的大脑! 意思是,屏蔽你获得信息能力的不是墙,而很大一部分则是我们自己的语言能力! 2. 购买VPS然后,你需要一个VPS。 在这里,强烈建议通过自建的方式,可能成本会比托管的“机场”要高一些,而且还很麻烦,但是,在安全性方面会比较好一些。自己动手,自力更生,让人有更多的安全感。 (注:当然,你也可以直接购买一些科学上网的服务,但我这里不推荐了,一方面是广告,另一方面通常这样的服务非常的不稳定,而且也容易被代理方做中间人攻击) 现在你买一台VPS也不贵了,也就是一个月10美金左右(70元),我个人觉得一个月花70元钱不算奢侈的事,而且会让你的生活质量得得改善。当然,线路好的得需要多花一些钱。。 (注:我现在每个月投入在科学上网上的成本大概在不到500元人民币左右,常备3-5个不同国家的VPS,因为国内的网络路由经常性的变化,所以,为了确保总是有一条快的,所以,得多备几个)。 2.1 常规VPS对于 VPS,下面是一些常规选项。
2.2 CN2 线路如果你需要更好更高速的网络服务(比如你要看Youtube的1080P),那么,你需要下面的这些服务器资源了(价格也会高一些)
多说一句, CN2本身又分为两种类型:
关于
更多的可以参考这篇文章《CN2 GIA VPS主机收集整理汇总-电信,联通,移动三网CN2 GIA线路VPS主机》(注:随时间推移,这篇文章的内容可能会失效) 重点说一下,CN2 GIA + 香港机房,你会得到巨快无比的上网速度(无论你在中国的哪个位置,无论使用哪家运营商,CN2 GIA都是最优的),然而,香港地区的VPS的确是有点贵了。在Youtube.com上看 4K 的视频毫无压力。虽然阿里云和腾讯的也有,但是被查到的风险基本上是100%,不建议使用,被抓了别怪我没警告过你。 2.3 NCP 线路NCP 全称 New Cross Pacific(新跨太平洋海底光缆系统)。 2018年11月底,中国到美国之间的海底光缆新开通了NCP线路,并且容量更大(系统设计容量超过80Tbps),路由更少(中国上海到美国中间路由节点只有11个,ping值110ms)。 NCP线路全长13,000公里,连接美国俄勒冈州希尔斯伯勒,连接崇明(中国大陆),南汇(中国大陆),临港(中国大陆),釜山(韩国),头城(台湾),和丸山(日本)。 相对于第二条中美直达海底光缆系统(跨太平洋快线,TPE),现阶段NCP线路的网络流量更少更稳定。特征是华东/中地区流量会经过NCP直达路由节点,IP地址为202.97.95.201/202。 关于
3. 搭建相关代理服务
3.1 设置Docker服务首先,你要安装一个Docker CE 服务,这里你要去看一下docker官方的安装文档: 然后开始设置你的VPN/SS服务 3.2 开启 TCP BBR 拥塞控制算法TCP BBR(Bottleneck Bandwidth and Round-trip propagation time)是由Google设计,于2016年发布的拥塞算法。以往大部分拥塞算法是基于丢包来作为降低传输速率的信号,而BBR则基于模型主动探测。该算法使用网络最近出站数据分组当时的最大带宽和往返时间来创建网络的显式模型。数据包传输的每个累积或选择性确认用于生成记录在数据包传输过程和确认返回期间的时间内所传送数据量的采样率。该算法认为随着网络接口控制器逐渐进入千兆速度时,分组丢失不应该被认为是识别拥塞的主要决定因素,所以基于模型的拥塞控制算法能有更高的吞吐量和更低的延迟,可以用BBR来替代其他流行的拥塞算法,例如CUBIC。Google在YouTube上应用该算法,将全球平均的YouTube网络吞吐量提高了4%,在一些国家超过了14%。 BBR之后移植入Linux内核4.9版本,并且对于QUIC可用。 如果开启,请参看 《开启TCP BBR拥塞控制算法 》 3.3 用 Gost 设置 HTTPS 服务gost 是一个非常强的代理服务,它可以设置成 HTTPS 代理,然后把你的服务伪装成一个Web服务器,我感觉这比其它的流量伪装更好,也更隐蔽。这也是这里强烈推荐的一个方式。 为了更为的隐蔽,你需要一个域名(可以上 GoDaddy,但一定要使用美国版),然后使用 Let's Encrypt 来签 一个证书。使用 Let's Encrypt 证书你需要在服务器上安装一个 certbot,点击 certbot 这个链接,你可以选择你的服务器,操作系统,然后就跟着指令走吧。 接下来,你需要申请一个证书(我们使用standalone的方式,然后,你需要输入你的电子邮件和你的域名): $ sudo certbot certonly --standalone 证书默认生成在 接下来就是启动 gost 服务了,我们这里还是使用 Docker 的方式建立 gost 服务器。 #!/bin/bash
# 下面的四个参数需要改成你的
DOMAIN="YOU.DOMAIN.NAME"
USER="username"
PASS="password"
PORT=443
BIND_IP=0.0.0.0
CERT_DIR=/etc/letsencrypt
CERT=${CERT_DIR}/live/${DOMAIN}/fullchain.pem
KEY=${CERT_DIR}/live/${DOMAIN}/privkey.pem
sudo docker run -d --name gost \
-v ${CERT_DIR}:${CERT_DIR}:ro \
--net=host ginuerzh/gost \
-L "http2://${USER}:${PASS}@${BIND_IP}:${PORT}?cert=${CERT}&key=${KEY}&probe_resist=code:404&knock=www.google.com" 上面这个脚本,你需要配置:域名( 关于 gost 的参数, 你可以参看其文档:Gost Wiki,上面我设置一个参数 注意:开启了探测防御功能后,当认证失败时服务器默认不会响应 注意:如果认证信息(也就是用户名和密码)中包含特殊字符,则可以(应该是必须!否则客户端一侧会有很多不兼容)通过auth参数来设置:
auth的值为user:passbase64编码值 如无意外,你的服务就启起来了。你可以使用下面的命令验证你的 gost 服务是否正常。 curl -v "https://www.google.com" --proxy "https://DOMAIN" --proxy-user 'USER:PASS' 接下来就是证书的自动化更新。 可以使用命令
S 这样,服务器就配置完成了。客户端请移动后面的客户端章节。 3.4 设置 ShadowSocks 服务(注:ShadowSocks 被查的机率非常大,不推荐使用) ShadowSocks 的 Docker 启动脚本 (其中的 #!/bin/bash
SS_PORT=1984
SS_PASSWD=MyPasswd
sudo docker run -dt --name ss \
-p ${SS_PORT}:${SS_PORT} mritd/shadowsocks \
-s "-s 0.0.0.0 -p ${SS_PORT} -m aes-256-cfb -k ${SS_PASSWD} --fast-open" 3.5 设置L2TP/IPSec服务(注:VPN方式被查的机率非常大,不推荐使用) L2TP/IPSec 的启动脚本,其中的三个环境变量 #!/bin/bash
USER=someone
PASS=password
PSK=psk_key
sudo docker run -d --privileged \
-e PSK=${PSK} \
-e USERNAME=${USER} -e PASSWORD=${PASS} \
-p 500:500/udp \
-p 4500:4500/udp \
-p 1701:1701/tcp \
-p 1194:1194/udp \
siomiz/softethervpn 3.6 设置 PPTP 服务(注:PPTP 不安全,请不要使用) sudo docker run -d --privileged --net=host
-v {/path_to_file/chap-secrets}:/etc/ppp/chap-secrets \
mobtitude/vpn-pptp PPTP 使用
4. 客户端设置4.1 gost 客户端大多数的代理服务都支持 https 的代理,但是我们需要智能代理(也就是该翻的时候翻,不用翻的时候不翻),那么我们可以重用 ShadowSocks 的客户端。 对于电脑来说,你同样可以 下载 gost 程序,然后使用下面的命令行:
这样用 gost 在你的本机启动了一个
ShadowSocks Client 主要完成:自动设置操作系统代理服务器的 pac (自动设置翻墙或是不翻墙的路由) 这样,你的ShadowSocks客户端只需要简单的配置一个本机的 SS 配置就好了。 对于手机端
注明:如果你之前使用了Chrome插件 SwitchyOmega,如果无法直接配置HTTPS代理,具体原因可能是因为你设置了 或是,干脆使用gost客户端在本机启动一个 SOCKS5的代理服务用来代替( 4.2 Shadowsocks 客户端对于 Shadowsocks 客户端,可以到这里查看 Shadowsocks Clients
4.3 VPN 客户端对于L2TP/IPSec,几乎所有的客户端操作系统(无论是Windows/Mac/Linux的电脑,还是iPhone/Android)都支持,你可以自行Google。 5. 流量伪装和其它方式无论你用VPN,SS,SSR,都有可能被识别,只有使用 HTTP over TLS 的样子,才会跟正常的流量混在一起,很难被识别,所以,目前来说,V2Ray客户端 + Nginx + V2Ray服务端的方式,或是gost的HTTPS的方式,基本上来说,在网络四层上看到的都是TLS的包,很难被识别。这种代理服务我觉得只能做探测,或是得到更多的算力来做统计学分析。所以,V2Ray 和 gost 的服务器端用 nginx 再挡一道,那么就很难被发现了。
5.1 V2RayV2Ray 可以配置成一个非常隐蔽的代理软件。
一般来说,祼用 V2Ray 不是一个很好的方式,现在比较流行的是使用nginx来代理,也就是 V2Ray + WebSocket + TLS + Nginx,可以参看这篇文章《V2Ray+WebSocket+TLS+Nginx配置与使用教程》(需要翻墙)。 我个人觉得,配置起来比较复杂,而且环节太多,不如直接用 5.2 BrookBrook是一个由 Go语言编写的跨平台代理软件,支持 Linux/MacOS/Windows/Android/iOS 各个平台。
服务器一行命令安装:
运行 然后你可以在 Brook 项目的 Github 首页上下载不同平台的客户端。设置起来也很简单!
6. 针对 IP 被封的解决方案花钱购买的 VPS 即便做了流量伪装依然有很大的几率 IP 被封锁,大多 VPS 服务商并不提供更换 IP 的服务,使用 CDN 可以让被封锁的 VPS 继续发挥翻墙功能。 6.1 CloudflareCloudflare 是一个 CDN 服务商,目前国内依然能正常的访问,可以作为跳板来实现翻墙。 注册 Cloudflare 帐号,并有一个空闲域名(三级域名即可),交给 Cloudflare 托管并将域名指向被封的 VPS IP,注意开启 Proxied 并且 SSL-TLS 使用 Flexible 选项。 Cloudflare 只需免费方案足以,不必花钱。
6.2 V2RayVPS 上正常安装并配置好 V2Ray,注意两点:
如果端口有其他用途,那么用 Nginx/Caddy 之类软件,做一个 WebSocket proxy 到 V2Ray 即可。 6.3 补充客户端注意使用网址来连接。 目前支持 WebSocket 的免费 CDN 似乎只有 Cloudflare 一家,国内 CDN 服务商既不支持也不安全,不要考虑了。如果有更好的服务商欢迎补充。 网络延迟比直连增加不少,如果是频繁操作会很痛苦。网络带宽如果运气好可能比直连还优化了,用来看 Youtube 搞不好更流畅。 7. 家用透明网关7.1 OpenWRT 路由器所谓透明网关的意思是,一切都交给网关来做。最好的方式是你需要一个 OpenWRT 的路由器,推荐使用华硕的路由器,贵是贵一些,但是这几年用下来,非常不错。我用的是 华硕(ASUS) RT-AC68U 1900M AC 双频智能无线路由路 。 路由器买来后,要刷一下固件。首先 Asuswrt 是华硕公司为他的路由器所开发的固件。Asuswrt-merlin是一个对Asuswrt固件二次开发进行各种改进和修正的项目。源代码在这里:https://github.com/RMerl/asuswrt-merlin 不必担心把路由器刷废了,华硕的路由器可以让你一键重置回来 1)下载固件。先到 https://asuswrt.lostrealm.ca/download 下载相应的固件,并解压。(我下载的是 2)升级固件。登录到你的路由器后台 3)打开 JFFS 分区。
4)打开 ssh 登录。
接下来,在 WiFi 路由器上安装 Clash,就可以了。 大概的示意图如下所示。
7.2 通过树莓派做旁路网关如果你的路由器不能刷 OpenWRT,也就是没发通过SSH登录上去装软件,你就用一个别的设备。比如用一个树莓派。我正好有一个很老旧的树莓派,刷了一个老旧的 Debian 7.5的操作系统。 把它连上你的路由器上,然后,
大概的示意图如下所示。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论