【翻墙节点自建 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用户(如果不是)
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官方文档
8
分享 2023-11-19

要发言请先登录注册

要发言请先登录注册

发起人

个人势vup,是苏州小精灵

状态

  • 最新活动: 2024-01-11
  • 浏览: 10173