3
3
# 科学上网
4
4
5
5
作者:左耳朵 [ http://coolshell.cn ] ( http://coolshell.cn )
6
- 更新时间:2020-03-10
6
+ 更新时间:2020-08-01
7
7
8
8
这篇文章可以写的更好,欢迎到 [ https://github.com/haoel/haoel.github.io ] ( https://github.com/haoel/haoel.github.io ) 更新
9
9
34
34
- [ 6.1 Cloudflare] ( #61-cloudflare )
35
35
- [ 6.2 V2Ray] ( #62-v2ray )
36
36
- [ 6.3 补充] ( #63-补充 )
37
- - [ 7. 其它] ( #7-其它 )
38
- - [ 7.1 其它方式] ( #71-其它方式 )
39
- - [ 7.2 搭建脚本] ( #72-搭建脚本 )
37
+ - [ 7. 透明网关] ( #7-透明网关 )
38
+ - [ 7.1 OpenWRT 路由器] ( #71-openwrt-路由器 )
39
+ - [ 7.2 通过树莓派做旁路网关] ( #72-通过树莓派做旁路网关 )
40
+ - [ 7.3 安装 Clash] ( #73-安装-clash )
41
+ - [ 8. 其它] ( #8-其它 )
42
+ - [ 8.1 其它方式] ( #81-其它方式 )
43
+ - [ 8.2 搭建脚本] ( #82-搭建脚本 )
40
44
41
45
## 0. 序
42
46
73
77
74
78
## 2. 购买VPS
75
79
76
- 然后,你需要一个VPS。
80
+ 然后,你需要一个VPS。 在这里,强烈建议通过自建的方式,可能成本会略高一点,但是,整体来说比共享的好很多了。
77
81
78
82
(注:* 当然,你也可以直接购买一些科学上网的服务,但我这里不推荐了,一方面是广告,另一方面通常这样的服务非常的不稳定,而且也容易被代理方做中间人攻击* )
79
83
80
- ** 现在你买一台VPS也不贵了,也就是一个月10美金左右(70元),我个人觉得一个月花70元钱不算奢侈的事,而且会让你的生活质量得得改善** 。
84
+ ** 现在你买一台VPS也不贵了,也就是一个月10美金左右(70元),我个人觉得一个月花70元钱不算奢侈的事,而且会让你的生活质量得得改善。当然,线路好的得需要多花一些钱。 ** 。
81
85
82
86
(注:* 我现在每个投入在科学上网上的成本大概在不到1000元人民币左右,常备3-5个不同国家的VPS,因为国内的网络路由经常性的变化,所以,为了确保总是有一条快的,所以,得多备几个* )。
83
87
123
127
124
128
更多的可以参考这篇文章《[ CN2 GIA VPS主机收集整理汇总-电信,联通,移动三网CN2 GIA线路VPS主机] ( https://wzfou.com/cn2-gia-vps/ ) 》(注:随时间推移,这篇文章的内容可能会失效)
125
129
126
- 重点说一下,** CN2 GIA + 香港机房** ,你会得到巨快无比的上网速度, 然而,香港地区的VPS的确是有点贵了。在Youtube.com上看1080p的视频毫无压力 。虽然阿里云和腾讯的也有,但是被查到的风险基本上是100%,不建议使用,被抓了别怪我没警告过你。
130
+ 重点说一下,** CN2 GIA + 香港机房** ,你会得到巨快无比的上网速度(无论你在中国的哪个位置,无论使用哪家运营商,CN2 GIA都是最优的), 然而,香港地区的VPS的确是有点贵了。在Youtube.com上看 4K 的视频毫无压力 。虽然阿里云和腾讯的也有,但是被查到的风险基本上是100%,不建议使用,被抓了别怪我没警告过你。
127
131
128
132
### 2.3 NCP 线路
129
133
** NCP** 全称 New Cross Pacific(新跨太平洋海底光缆系统)。
@@ -163,7 +167,7 @@ BBR之后移植入Linux内核4.9版本,并且对于QUIC可用。
163
167
164
168
[ gost] ( https://github.com/ginuerzh/gost ) 是一个非常强的代理服务,它可以设置成 HTTPS 代理,然后把你的服务伪装成一个Web服务器,** 我感觉这比其它的流量伪装更好,也更隐蔽。这也是这里强烈推荐的一个方式** 。
165
169
166
- 为了更为的隐蔽,你需要一个域名,然后使用 [ Let's Encrypt] ( https://letsencrypt.org ) 来签 一个证书。使用 Let's Encrypt 证书你需要在服务器上安装一个 [ certbot] ( https://certbot.eff.org/instructions ) ,点击 [ certbot] ( https://certbot.eff.org/instructions ) 这个链接,你可以选择你的服务器,操作系统,然后就跟着指令走吧。
170
+ 为了更为的隐蔽,你需要一个域名(可以上 Godaddy,但一定要使用美国版) ,然后使用 [ Let's Encrypt] ( https://letsencrypt.org ) 来签 一个证书。使用 Let's Encrypt 证书你需要在服务器上安装一个 [ certbot] ( https://certbot.eff.org/instructions ) ,点击 [ certbot] ( https://certbot.eff.org/instructions ) 这个链接,你可以选择你的服务器,操作系统,然后就跟着指令走吧。
167
171
168
172
接下来,你需要申请一个证书(我们使用standalone的方式,然后,你需要输入你的电子邮件和你的域名):
169
173
@@ -219,6 +223,8 @@ curl -v "https://www.google.com" --proxy "https://DOMAIN" --proxy-user 'USER:PAS
219
223
220
224
### 3.4 设置Shadowsocks服务
221
225
226
+ ** (注:Shadowsocks被查的机率非常大,不推荐使用)**
227
+
222
228
Shadowsocks 的 Docker 启动脚本 (其中的 ` SS_PORT ` 和 ` SS_PASSWD ` 需要重新定义一下)
223
229
224
230
@@ -236,6 +242,8 @@ sudo docker run -dt --name ss \
236
242
237
243
### 3.5 设置L2TP/IPSec服务
238
244
245
+ ** (注:VPN方式被查的机率非常大,不推荐使用)**
246
+
239
247
L2TP/IPSec 的启动脚本,其中的三个环境变量 ` USER ` , ` PASS ` 和 ` PSK ` 需要替换一下。
240
248
241
249
```
@@ -257,7 +265,7 @@ sudo docker run -d --privileged \
257
265
258
266
### 3.6 设置PPTP服务
259
267
260
- PPTP不安全,请慎重使用
268
+ ** (注: PPTP不安全,请不要使用) **
261
269
262
270
```
263
271
sudo docker run -d --privileged --net=host
@@ -391,15 +399,212 @@ VPS 上正常安装并配置好 V2Ray,注意两点:
391
399
392
400
网络延迟比直连增加不少,如果是频繁操作会很痛苦。网络带宽如果运气好可能比直连还优化了,用来看 Youtube 搞不好更流畅。
393
401
394
- ## 7. 其它
402
+ ## 7. 透明网关
403
+
404
+ ### 7.1 OpenWRT 路由器
405
+
406
+ 所谓透明网关的意思是,一些都交给网关来做。最好的方式是你需要一个 OpenWRT 的路由器,推荐使用华硕的路由器,贵是贵一些,但是这几年用下来,非常不错。我用的是 ** 华硕(ASUS) RT-AC68U 1900M AC 双频智能无线路由路** 。
407
+
408
+ 路由器买来后,要刷一下固件。首先Asuswrt是华硕公司为他的路由器所开发的固件。Asuswrt-merlin是一个对Asuswrt固件二次开发进行各种改进和修正的项目。源代码在这里:[ https://github.com/RMerl/asuswrt-merlin ] ( https://github.com/RMerl/asuswrt-merlin )
409
+
410
+ 不必担心把路由器刷废了,华硕的路由器可以让你一键重置回来
411
+
412
+ ** 1)下载固件** 。先到 [ https://asuswrt.lostrealm.ca/download ] ( https://asuswrt.lostrealm.ca/download ) 下载相应的固件,并解压。(我下载的是 ` RT-AC68U_380.61_0.zip ` )
413
+
414
+ ** 2)升级固件** 。登录到你的路由器后台 ` http://192.168.1.1/ ` ,在 ` 系统管理 ` -> ` 固件升级 ` 中上传固件文件(我上传的是:` RT-AC68U_380.61_0.trx ` )
415
+
416
+ ** 3)打开 JFFS 分区** 。` 系统管理 ` -> ` 系统设置 ` -> ` Persistent JFFS2 partition `
417
+
418
+ - ` Format JFFS partition at next boot ` - ` 否 `
419
+ - ` Enable JFFS custom scripts and configs ` - ` 是 `
420
+
421
+
422
+ ** 4)打开 ssh 登录** 。 ` 系统管理 ` -> ` 系统设置 ` -> ` SSH Daemon `
423
+
424
+ - ` Allow SSH password login ` - ` 是 `
425
+
426
+ ### 7.2 通过树莓派做旁路网关
427
+
428
+ 如果你的路由器不能刷OpenWRT,也就是没发通过SSH登录上去装软件,你就用一个别的设备。比如用一个树莓派。我正好有一个很老旧的树莓派,刷了一个老旧的Debain 7.5的操作系统。
429
+
430
+ 把它连上你的路由器上,然后,
431
+ - 你需要把你设备上的IP地址、网关和DNS服务器都要手动设置到这个树莓派上。
432
+ - 于是,所有的路由就会通过路由器转到树莓派上,再由树莓派决定是否要走代理。
433
+
434
+ 大概的示意图如下所示。
435
+
436
+ - 1 --> 2 是设备把所有的请求都发给树莓派。
437
+ - 3 --> 3.1 或 3.2 是由树莓派来决走是否翻墙。
438
+
439
+ ```
440
+ Phone/PC/Pad
441
+ +
442
+ | 1
443
+ |
444
+ +-------v-------+ 2 +--------+
445
+ | |-------------> |
446
+ | WiFi 路由器 | | 树莓派 |
447
+ | <-------------| |
448
+ +------+--+-----+ 3 +--------+
449
+ | |
450
+ 3.1| | 3.2
451
+ | +----------> China LAN
452
+ v
453
+ +---+---+
454
+ | Proxy |
455
+ +---+---+
456
+ |
457
+ |
458
+ v
459
+ Internet WAN
460
+
461
+ ```
462
+
463
+ ### 7.3 安装 Clash
464
+
465
+ Clash 的 Github项目是:[ Dreamacro/clash] ( https://github.com/Dreamacro/clash ) ,在它的 Release 页面上,你可以找到相关的下载。(注:在本文更新的时候,如果你需要支持 Tun,你需要下载 Clash 的 [ Premium 版本] ( https://github.com/Dreamacro/clash/releases/tag/premium )
466
+
467
+ Clash支持很多翻墙协议:ShadowSocks(R), Vmess, Socks5, HTTP(s),Snell,Trojan。
468
+
469
+ 在你的 OpenWRT 或 树莓派 下用 ` uname -m ` 查看一下你的硬件架构是什么的,比如,我的是华硕和树莓派都是 ` armv7l ` 的,所以,需要下载 ` clash-linux-armv7-.... ` 的版本。 下载完解压后,加个可执行权限 ` chmod +x clash ` 就可以运行了,不过,还差一个界面和两个配置文件,它们的目录关系如下:
470
+
471
+ ```
472
+ ├── clash <- 建一个 clash 的目录
473
+ │ ├── clash <- 运行文件
474
+ │ ├── config.yaml <- 配置文件
475
+ │ ├── Country.mmdb <- IP地址库
476
+ │ └── ui <- Clash 的 UI
477
+ │ ├── index.html
478
+ │ ├── ...
479
+ ```
480
+
481
+ - UI界面可以到 [ haishah/yacd] ( https://github.com/haishanh/yacd ) 下载。放到clash的配置目录下 ` ui ` 目录下
482
+
483
+ - 一个是 ` Country.mmdb ` 这是IP地址的在哪个国家的数据库。你需要到这里下载 - [ Country.mmdb] ( https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb ) (当然,clash启动时,会自动下载,我这里给你一个手动下载的链接)
484
+
485
+ - 另一个是 ` config.yaml ` 文件,这个文件详细解释可参看 - [ 官方Wiki] ( https://github.com/Dreamacro/clash/wiki/configuration )
486
+
487
+
488
+ 下面是个示例:
489
+
490
+ ```
491
+ port: 7890
492
+ socks-port: 7891
493
+ redir-port: 7892
494
+ mixed-port: 7893
495
+ ipv6: false
496
+ allow-lan: true
497
+ mode: Rule
498
+ log-level: info
499
+ external-controller: '0.0.0.0:9090'
500
+ external-ui: ui
501
+ secret: ''
502
+ tun:
503
+ enable: true
504
+ stack: system
505
+ dns-hijack:
506
+ - tcp://8.8.8.8:53
507
+ - udp://8.8.8.8:53
508
+ dns:
509
+ enable: true
510
+ ipv6: false
511
+ listen: 0.0.0.0:53
512
+ default-nameserver:
513
+ - 114.114.114.114
514
+ #enhanced-mode: redir-host
515
+ enhanced-mode: fake-ip #如果要玩netflix,需要使用fake-ip
516
+ fake-ip-range: 198.18.0.1/16
517
+ nameserver:
518
+ - 114.114.114.114
519
+ - 223.5.5.5
520
+ - tls://8.8.8.8:853
521
+ fallback:
522
+ - tls://8.8.8.8:853
523
+
524
+ # 两个代理服务器
525
+ proxies:
526
+ # http
527
+ - name: "https01"
528
+ type: http
529
+ server: https.server.domain
530
+ port: 443
531
+ username: user
532
+ password: "password"
533
+ tls: true # https
534
+ skip-cert-verify: true
535
+ - name: "https01"
536
+ type: http
537
+ server: https.server.domain
538
+ port: 443
539
+ username: user
540
+ password: "passowrd"
541
+ tls: true # https
542
+ skip-cert-verify: true
543
+
544
+ # 配置 Group
545
+ proxy-groups:
546
+ # 自动切换
547
+ - name: "auto"
548
+ type: url-test
549
+ proxies:
550
+ - us01_https
551
+ #- us02_https
552
+ #- hk_https
553
+ # tolerance: 150
554
+ url: 'https://www.google.com/'
555
+ interval: 300
556
+ # 按需选择 - 可以在UI上选择
557
+ - name: "netflix"
558
+ type: select
559
+ proxies:
560
+ - us01_https
561
+ - us02_https
562
+ - hk_https
563
+
564
+ rules:
565
+ # LAN
566
+ - DOMAIN-SUFFIX,local,DIRECT
567
+ - IP-CIDR,127.0.0.0/8,DIRECT
568
+ - IP-CIDR,172.16.0.0/12,DIRECT
569
+ - IP-CIDR,192.168.0.0/16,DIRECT
570
+ - IP-CIDR,10.0.0.0/8,DIRECT
571
+
572
+ # Netflix
573
+ - DOMAIN-SUFFIX,fast.com,netflix
574
+ - DOMAIN-SUFFIX,api-global.netflix.com,netflix
575
+ - DOMAIN-SUFFIX,netflix.com,netflix
576
+ - DOMAIN-SUFFIX,netflix.net,netflix
577
+ - DOMAIN-SUFFIX,nflxext.com,netflix
578
+ - DOMAIN-SUFFIX,nflximg.com,netflix
579
+ - DOMAIN-SUFFIX,nflximg.net,netflix
580
+ - DOMAIN-SUFFIX,nflxso.net,netflix
581
+ - DOMAIN-SUFFIX,nflxvideo.net,netflix
582
+
583
+ # 最终规则(除了中国区的IP之外的,全部翻墙)
584
+ - GEOIP,CN,DIRECT
585
+ - MATCH,auto
586
+
587
+ ```
588
+ 更多的规则网上可以找到很多,也可以参看这里:[ SS-Rule-Snippet/LAZY_RULES/clash.yaml] ( https://github.com/Hackl0us/SS-Rule-Snippet/blob/master/LAZY_RULES/clash.yaml )
589
+
590
+ 这个时候你就可以启动 clash 了:
591
+
592
+ ```
593
+ /path/to/clash/cash -d /path/to/clash &
594
+ ```
595
+
596
+ 然后,你就可以把你的上网设备上的 路由网关 和 DNS 服务器都手动地配置成这个网关就好了(OpenWRT应该不用配置了,树莓派的方式需要手动配置一下)
597
+
598
+
599
+ ## 8. 其它
395
600
396
- ### 7 .1 其它方式
601
+ ### 8 .1 其它方式
397
602
398
603
如下还有一些其它的方式(注:均由网友提供,我没有验证过)
399
604
400
605
[ Outline] ( https://getoutline.org/en/home ) 是由 Google 旗下 [ Jigsaw] ( https://jigsaw.google.com/ ) 团队开发的整套翻墙解决方案。Server 端使用 Shadowsocks,MacOS, Windows, iOS, Android 均有官方客户端。使用 Outline Manager 可以一键配置 DigitalOcean。其他平台例如 AWS, Google Cloud 也提供相应脚本。主要优点就是使用简单并且整个软件栈全部[ 开源] ( https://github.com/Jigsaw-Code/?q=outline ) ,有专业团队长期维护。
401
606
402
- ### 7 .2 搭建脚本
607
+ ### 8 .2 搭建脚本
403
608
404
609
上述的搭建和安装脚本可参看本库的 scripts 目录下的脚本(感谢网友 [ @gongzili456 ] ( https://github.com/gongzili456 ) 开发)
405
610
0 commit comments