【翻墙节点自建 Shadowsocks篇】AEAD 2022抗审查加密隧道搭建教程
Shadowsocks是中国知名度最高的反审查协议,至今已有11年历史,开创者clowwindy在2015年退出了开发,由社区接手。目前,Shadowsocks的维护人员大部分都不再是中国人,已经成为了国际性质的项目。Shadowsocks有数十种分支与组合,我只介绍AEAD 2022,也就是目前最安全的Shadowsocks方案之一。
在开始教程之前,我了解到很多人更倾向于Trojan和Naiveproxy这样的基于TLS的代理协议,Hysteria 2这种QUIC类协议也很流行,但小白入门还是Shadowsocks最好,它简单、快捷且在正确配置下仍具备抗封锁能力。如果一开始就玩TLS类和Hysteria 2,你可能会面临更多的问题且需要更多时间来解决。
首先,在开始之前我假设你生活在中国大陆境内。基于这个前提,你需要一台中国大陆能访问的服务器,本帖发布日期正逢黑色星期五,也是选购服务器的好时机。要匿名购买服务器请寻找支持加密货币的商家,例如buyvm支持XMR,而racknerd支持BTC等,但不支持XMR。商家的背景也值得调查,避免dogyun等支人主机商,这类主机商一般漠视隐私且不允许匿名购买。确认主机商背景不亲共、注册地点靠谱后,就可以选择想要的配置和机房了。一般翻墙节点重视流量和带宽大小,CPU一般不至于连SS都跑不动,而内存512M都够了。机房地点需要自行根据自家地区和运营商来选择,也需要测试,一般要交学费才能了解。若想避雷,买racknerd黑色星期五最便宜的那款10$/年即可,选择圣何塞(San Jose)机房。虽然这么便宜的机器线路质量当然很一般,但足够便宜且稳定,适合低预算入门。
为了统一环境,机器的操作系统请安装Debian 12或Debian 11,安装后你可能会对发过来的邮件不知所措,此时若你是Windows系统则需要SSH客户端来连接,下载PuTTY即可(注意避开钓鱼网站),若是Linux或MacOS,打开终端输入ssh 用户名@ip地址 即可连接。服务商的邮件一般会提供连接所需的IP、用户名和密码等信息,若未提供用户名,一般是root。在这一步遇到困难的话请参阅服务商提供的文档。
成功登入后,先切换为root用户(如果不是)
再改拥塞控制算法为BBR(假设你是Debian11和12)
再输入以下命令应用
再输入以下命令安装服务端sing-box
安装成功后,输入以下命令删除默认配置,且编辑一个新的配置:
虽然只需要对默认的配置文件进行很少的改动,但为了方便小白,教程将会采用以下配置好的模板,只需要修改密码。
除非你知道自己在干什么,否则请仅替换密码部分,且保持"network": "tcp"和"multiplex"字段不变,这两者是缓解封锁的关键。这两者的作用是在服务端禁用UDP,且开启多路复用。在服务端启用UDP可能导致被封锁,多路复用则有助于缓解特征,且能降低延迟。密码部分请使用以下命令生成,注意不能随便写,随便写会报错。
输出结果即为生成的密码,替换配置文件内的相关字段即可,例如
这个密码需要保存且不能泄露,客户端也需要使用一样的密码。在自己电脑上修改配置示例中的密码后,将整个配置一字不差地复制,粘贴(在PuTTY里是右键粘贴)到服务器的编辑器里,然后按Ctrl+X再输入y确认,按Enter保存。想自己写配置,文本编辑器必不可少。如果你的电脑还没有一个文本编辑器,推荐使用Notepad++或VS Code,记事本和nano非常难用,但如果你不愿意下载,也可以继续使用记事本和nano。完成后,输入
检查配置是否正确,输出结果应与刚刚粘贴进去的配置吻合。若吻合,则可以输入以下命令开启sing-box
接下来输入以下命令检查sing-box是否正常运行
如果没有出现报错,而是出现了如tcp listening ::8080之类的正常运行字样,则可以进入客户端配置了。
由于服务端是sing-box且开启了多路复用,为了确保最佳兼容性(sing-box的多路复用不属于shadowsocks标准),客户端也需要使用sing-box。iOS和MacOS用户直接在App Store下载,Android用户在Google Play下载。这些应用商店钓鱼软件居多,下载时请注意不要下到钓鱼软件。正牌sing-box没有广告和应用内购买,开发者为Sager Networks。Linux用户安装方式和服务端一样。Windows则需要自行在GitHub下载可执行文件(exe),通常是amd64架构,例如sing-box-1.6.5-windows-amd64.zip。
客户端配置稍微复杂一些,但也提供一个粘贴即用的配置示例。
这份配置文件配置为TUN Layer4代理,即代理所有网络流量,非socks5/http layer7代理。路由规则配置为中国直连,DNS不泄露。
在iOS,MacOS和Android端仅需创建空配置文件(删除默认配置)并粘贴即可,然后选择该配置并打开VPN。在Windows端需要解压之前的可执行文件和geosite.db到一个空文件夹(假设文件夹在桌面,重命名为sing-box),并新建一个文件config.json,粘贴所有内容进去保存。然后按Win+X打开终端(管理员),输入
然后输入
即可启动。此时应该能代理你的网络流量了。
本文尽量把每个步骤都讲一下以方便小白,对于熟练使用Linux的会显得很啰嗦,见谅。下一篇可能会讲讲Hysteria 2协议。
本文基于sing-box官方文档
在开始教程之前,我了解到很多人更倾向于Trojan和Naiveproxy这样的基于TLS的代理协议,Hysteria 2这种QUIC类协议也很流行,但小白入门还是Shadowsocks最好,它简单、快捷且在正确配置下仍具备抗封锁能力。如果一开始就玩TLS类和Hysteria 2,你可能会面临更多的问题且需要更多时间来解决。
首先,在开始之前我假设你生活在中国大陆境内。基于这个前提,你需要一台中国大陆能访问的服务器,本帖发布日期正逢黑色星期五,也是选购服务器的好时机。要匿名购买服务器请寻找支持加密货币的商家,例如buyvm支持XMR,而racknerd支持BTC等,但不支持XMR。商家的背景也值得调查,避免dogyun等支人主机商,这类主机商一般漠视隐私且不允许匿名购买。确认主机商背景不亲共、注册地点靠谱后,就可以选择想要的配置和机房了。一般翻墙节点重视流量和带宽大小,CPU一般不至于连SS都跑不动,而内存512M都够了。机房地点需要自行根据自家地区和运营商来选择,也需要测试,一般要交学费才能了解。若想避雷,买racknerd黑色星期五最便宜的那款10$/年即可,选择圣何塞(San Jose)机房。虽然这么便宜的机器线路质量当然很一般,但足够便宜且稳定,适合低预算入门。
为了统一环境,机器的操作系统请安装Debian 12或Debian 11,安装后你可能会对发过来的邮件不知所措,此时若你是Windows系统则需要SSH客户端来连接,下载PuTTY即可(注意避开钓鱼网站),若是Linux或MacOS,打开终端输入ssh 用户名@ip地址 即可连接。服务商的邮件一般会提供连接所需的IP、用户名和密码等信息,若未提供用户名,一般是root。在这一步遇到困难的话请参阅服务商提供的文档。
成功登入后,先切换为root用户(如果不是)
sudo -i
再改拥塞控制算法为BBR(假设你是Debian11和12)
echo -e "net.core.default_qdisc=fq\r\nnet.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
再输入以下命令应用
sysctl -p
再输入以下命令安装服务端sing-box
bash <(curl -fsSL https://sing-box.app/deb-install.sh)
安装成功后,输入以下命令删除默认配置,且编辑一个新的配置:
rm -rf /etc/sing-box/config.json && nano /etc/sing-box/config.json
虽然只需要对默认的配置文件进行很少的改动,但为了方便小白,教程将会采用以下配置好的模板,只需要修改密码。
{
"inbounds": [
{
"type": "shadowsocks",
"listen": "::",
"listen_port": 8080,
"method": "2022-blake3-chacha20-poly1305",
"password": "替换成你的密码",
"network": "tcp",
"multiplex": {
"enabled": true
}
}
]
}除非你知道自己在干什么,否则请仅替换密码部分,且保持"network": "tcp"和"multiplex"字段不变,这两者是缓解封锁的关键。这两者的作用是在服务端禁用UDP,且开启多路复用。在服务端启用UDP可能导致被封锁,多路复用则有助于缓解特征,且能降低延迟。密码部分请使用以下命令生成,注意不能随便写,随便写会报错。
openssl rand -base64 32
输出结果即为生成的密码,替换配置文件内的相关字段即可,例如
"password": "NECS8kb9soYf1kKGhbM5Fy4D2WSAdy44GJkh+6cWIwo=",
这个密码需要保存且不能泄露,客户端也需要使用一样的密码。在自己电脑上修改配置示例中的密码后,将整个配置一字不差地复制,粘贴(在PuTTY里是右键粘贴)到服务器的编辑器里,然后按Ctrl+X再输入y确认,按Enter保存。想自己写配置,文本编辑器必不可少。如果你的电脑还没有一个文本编辑器,推荐使用Notepad++或VS Code,记事本和nano非常难用,但如果你不愿意下载,也可以继续使用记事本和nano。完成后,输入
cat /etc/sing-box/config.json
检查配置是否正确,输出结果应与刚刚粘贴进去的配置吻合。若吻合,则可以输入以下命令开启sing-box
systemctl enable sing-box --now && systemctl restart sing-box
接下来输入以下命令检查sing-box是否正常运行
systemctl status sing-box
如果没有出现报错,而是出现了如tcp listening ::8080之类的正常运行字样,则可以进入客户端配置了。
由于服务端是sing-box且开启了多路复用,为了确保最佳兼容性(sing-box的多路复用不属于shadowsocks标准),客户端也需要使用sing-box。iOS和MacOS用户直接在App Store下载,Android用户在Google Play下载。这些应用商店钓鱼软件居多,下载时请注意不要下到钓鱼软件。正牌sing-box没有广告和应用内购买,开发者为Sager Networks。Linux用户安装方式和服务端一样。Windows则需要自行在GitHub下载可执行文件(exe),通常是amd64架构,例如sing-box-1.6.5-windows-amd64.zip。
客户端配置稍微复杂一些,但也提供一个粘贴即用的配置示例。
{
"dns": {
"servers": [
{
"tag": "google",
"address": "tls://8.8.8.8"
},
{
"tag": "local",
"address": "223.5.5.5",
"detour": "direct"
}
],
"rules": [
{
"outbound": "direct",
"server": "local"
},
{
"outbound": "proxy",
"server": "google"
}
],
"strategy": "ipv4_only"
},
"inbounds": [
{
"type": "tun",
"inet4_address": "172.19.0.1/30",
"auto_route": true,
"stack":"gVisor",
"sniff": true
}
],
"outbounds": [
{
"type": "shadowsocks",
"tag": "proxy",
"server": "替换为服务器IP",
"server_port": 8080,
"method" :"2022-blake3-chacha20-poly1305",
"password": "替换为自己的密码",
"multiplex": {
"enabled": true
}
},
{
"type": "block",
"tag": "block"
},
{
"type": "dns",
"tag": "dns-out"
},
{
"type": "direct",
"tag": "direct"
}
],
"route": {
"rules": [
{
"protocol": "dns",
"outbound": "dns-out"
},
{
"geosite": "cn",
"outbound": "direct"
},
{
"geoip": "cn",
"outbound": "direct"
}
],
"auto_detect_interface": true,
"final": "proxy"
}
}这份配置文件配置为TUN Layer4代理,即代理所有网络流量,非socks5/http layer7代理。路由规则配置为中国直连,DNS不泄露。
在iOS,MacOS和Android端仅需创建空配置文件(删除默认配置)并粘贴即可,然后选择该配置并打开VPN。在Windows端需要解压之前的可执行文件和geosite.db到一个空文件夹(假设文件夹在桌面,重命名为sing-box),并新建一个文件config.json,粘贴所有内容进去保存。然后按Win+X打开终端(管理员),输入
cd ~/Desktop/sing-box
然后输入
./sing-box run -c config.json
即可启动。此时应该能代理你的网络流量了。
本文尽量把每个步骤都讲一下以方便小白,对于熟练使用Linux的会显得很啰嗦,见谅。下一篇可能会讲讲Hysteria 2协议。
本文基于sing-box官方文档