作为一个程序员,科学上网是必备的技能之一。科学上网可以让我接触到一手的学习资料,扩展自己的视野,更高效的去检索信息等等。这篇文章分享一些我的科学上网的方式与经验。
思路
我个人科学上的方式是购买机场的服务
+ 自建
。
其中机场的服务
能保证我在绝大的时候都能够科学上网,即使我自己的被屏蔽之后,我依然能通过第三方提供的服务来再次恢复自建的节点。
而自建的节点,更多的是为了保证数据的安全以及IP地址不会频繁的去变动。
这就是我科学上网的总体思路,我自用感觉是完全足够了。 左耳朵耗子的这篇《科学上网》也分享了很多他科学上网的方法,值得一看。
购买现成的服务
我购买的是shadowsocks的服务 (链接含aff)。
他家的服务我从2017年就开始接触,每次一买就是三年,稳定性能接受(在某些时期会出现抖动,这段时期内节点会频繁的更新,能接受可以选择这个)。
服务有Lite和Pro版本,个人Lite就好了,$19.95/年,$49.95/三年, 价格不算高,支持支付宝付款。
速度方面,这是用美国的节点看Youtube,速度还可以(当然速度还取决于你家的带宽,出口等,仅供参考)。
如何购买
购买很简单,大部分的机场都差不多,以我购买这个为例子,如下图所示。
总结了一下可能需要注意的点:
看看节点的路由,需要质量高的,就选好一点路线的,什么
国际专线 IPLC Access
之类的,当然价格也会贵一些;看看流量是否符合自己的需求,一般都会有流量限制。
支付选择多年会有一定的优惠,双11,黑五等可能会有活动(我上次双11买的Lite,不到$30买了3年);
如何使用
一般购买的机场服务都会提供一个订阅地址,可以结合客户端使用。
目前个人使用下来,桌面/安卓端使用 Clash, iOS端使用 Shadowrocket, 体验还不错;
- Windows : Clash for Windows 下载地址
- Android: Clash for Android 下载地址
- MacOS: ClashX macOS 下载地址
- iOS: Shadowrocket 下载地址 大陆的AppleID无法购买, 可以参考如何注册美区的 Apple ID (2023年/无需科学上网)注册非大陆ID
如何上述链接失效,可以到这个地址去找一找。
下面主要介绍一下 MacOS 和 iOS 的使用。
ClashX
软件下载好后,如下图所示,打开配置中的远程配置管理
然后到购买的服务中”获取地址“,复制地址后,在ClashX中添加
添加完成后,就可以看到现在的配置已经切换到了刚刚添加的“clashx"
这样就完成添加了。
Shadowrocket
添加比较简单,如下图。
几种代理模式
不管是使用ClashX还是Shadowrocket, 或者其他的软件,这三种模式都是有的:
全局代理 (Global/Proxy) : 全部的访问都走代理转发。
规则模式 (Rule/Config): 按照规则转发,国内直连,国外走代理转发。
直连(Direct):全部不走代理,都直连。
全局代理和规则模式都可以单独选择固定节点,也可以配置一个自动选择,自动会根据代理节点的连通性,延迟来选择代理节点。
如何自建
自建的话方案有很多,我目前使用的是 trojan + ws
的方式。trojan
使用的是trojan-go这个项目。
下面是详细的步骤。
购买海外服务器
首先,肯定是需要一个海外的服务器,我目前用的是racknerd家的服务器。
他家会推出一些比较便宜的机器大概 $10 就能用一年,一个月1000GB的流量,自己用完全是够了。
他家黑五,新年都会搞一些活动,挺便宜的,这里就有一些以前黑五的,最低 $10.28 就能买一年,搭梯子完全够用了。
当然也有一些大佬,收集了一些其他的活动, 其中也有不少比较便宜的,按需购买。
购买海外服务器需要注意测试IP是否能连通,有些VPS IP可能被屏蔽了。买了第一时间去测试一下,大部分服务商之后换IP是需要额外收费的, 但刚买的这段时间,可以尝试和客服沟通,一般是给换的。
配置服务器
购买完成,系统初始化好后,就可以配置了。最简单的就是全部使用docker安装了。这里就不详细展开了,只描述一下大概步骤。
安装docker 可以参考官方文档
然后,准备好配置文件
config.json
。
详细的配置说明看官方文档,下面是我用的。
{
"run_type": "server",
"local_addr": "127.0.0.1",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"ugbajhgsajgdasdhjksa"
],
"ssl": {
"cert": "/etc/trojan-go/cert.pem",
"key": "/etc/trojan-go/key.pem",
"sni": "trojan.example.com" ,
"verify_hostname": false
},
"websocket": {
"enabled": true,
"path": "/dksdasd"
}
}
- 为了伪装的更像,后面可以用nginx跑个网站。
docker run --name nginx -p 80:80 -d nginx
一个域名,可以到 cloudflare.com, name.com 等等很多家注册。
一个证书,利用ACME快速的申请证书,详细文档。
然后我们就可以启动服务了。
docker run \
--name trojan-go \
-d \
-v /etc/trojan-go/:/etc/trojan-go \
--network host \
p4gefau1t/trojan-go
- 最后注意一下是否有防火墙或iptables, 如果有,需要放行443端口。
这样我们的服务就启动好了。
ClashX
首先 ClashX 需要更新到比较新的版本,如果老版本,可能不支持 trojan-go 开启 ws。
然后,我们在 “配置 > 打开配置文件” , 配置一下config.yml文件,然后选择该文件即可。
如我的配置文件为:
port: 7890
socks-port: 7891
allow-lan: false
mode: Global
log-level: silent
external-controller: 127.0.0.1:9090
secret: ""
proxies:
-
name: trojan-ws-xx
type: trojan
server: trojan.example.com
port: 443
password: ugbajhgsajgdasdhjksa
# sni: trojan.example.com
alpn:
- http/1.1
tls: true
# skip-cert-verify: true
network: ws
ws-opts:
path: /dksdasd
proxy-groups:
-
name: Proxy
type: select
proxies:
- trojan-ws-xx
rules:
- IP-CIDR,91.108.4.0/22,Proxy,no-resolve
- IP-CIDR,91.108.8.0/22,Proxy,no-resolve
- IP-CIDR,91.108.12.0/22,Proxy,no-resolve
- IP-CIDR,91.108.16.0/22,Proxy,no-resolve
- IP-CIDR,91.108.56.0/22,Proxy,no-resolve
- IP-CIDR,149.154.160.0/22,Proxy,no-resolve
- IP-CIDR,149.154.164.0/22,Proxy,no-resolve
- IP-CIDR,149.154.168.0/22,Proxy,no-resolve
- IP-CIDR,149.154.172.0/22,Proxy,no-resolve
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,172.16.0.0/12,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT
- IP-CIDR,17.0.0.0/8,DIRECT
- IP-CIDR,100.64.0.0/10,DIRECT
- GEOIP,CN,DIRECT
- MATCH,Proxy
Shadowrocket
如下图所示,在Shadowrocket中添加一个服务,类型是trojan
, 地址端口添加我们服务端的 域名/端口/密码,Transport 选择 websocket, 并把ws路径设置上去。这样就设置完成了。
自建进阶(Trojan + ws + cloudflare cdn)
自建🪜有个问题就是节点IP很可能被封,而一些VPS更换节点IP是需要收费的。为了解决这个问题,目前可以在节点前套一层cloudflare的cdn。这样直连的其实是Cloudflare的IP,能解救被封的IP。同时这种方法也能隐藏我们真实的IP。操作步骤如下:
注册 Cloudflare
直接到 Cloudflare 使用邮箱注册。
添加域名到Cloudflare
登陆到Cloudflare后,到“网站”中,输入你的域名,并“添加站点”。
选择 Free 的计划就好了。
Cloudflare 会自动检测你当前的域名解析,可以做到一键导入。
然后,Cloudflare 会给你一个 Cloudflare 的NS地址。到域名的DNS服务商那里将原来的NS地址更换成这个地址, 各家稍微不一样,一般都在域名管理里面。
完成后,等待一段时间,可以到Cloudflare完成检测。
添加解析,并开启中转
域名成功的使用Cloudflare DNS解析后,到DNS记录中添加A记录,ipv4填写自己的IP, 然后开启“代理状态”中的这朵云,这样Cloudflare会给你中站流量。
这样,我们对外的IP就是Cloudflare的IP了。