原文来自:https://surge.tel/12/2488 由于原文在我这里复现的时候有处地方会报错,故修改了用于自用
搭建Shadow-Tls v3
搭建一般分为docker和在系统里面,我个人比较喜欢的是在系统里面搭建,这里先附上系统搭建的步骤,后面附上docker的
系统搭建
先去Shadow-Tls的发布页面查看一下最新发行版的版本号和下载地址,这里以AMD机器为例
获取权限
sudo -i进行系统更新和升级
apt update && apt upgrade -y下载Shadow-TlsX86_AMD
wget https://github.com/ihciah/shadow-tls/releases/download/v0.2.23/shadow-tls-x86_64-unknown-linux-musl -O /usr/local/bin/shadow-tlsARM
wget https://github.com/ihciah/shadow-tls/releases/download/v0.2.25/shadow-tls-aarch64-unknown-linux-musl -O /usr/local/bin/shadow-tls给权限
chmod +x /usr/local/bin/shadow-tls写服务单元
vim /etc/systemd/system/shadow-tls.service然后将以下内容复制粘贴进去并保存退出即可:
[Unit]
Description=Shadow-TLS Server Service
Documentation=man:sstls-server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/shadow-tls --fastopen --v3 server --listen ::0:13105 --server 127.0.0.1:13106 --tls gateway.icloud.com --password xPk2Gx+NGm0V3
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=shadow-tls
[Install]<br>WantedBy=multi-user.target参数说明:
–listen 0.0.0.0:8443
这个是你后面在 surge 里面输入的端口,ipv6的话改成::0:8443,8443不用改动
/# –fastopen
开启TFO
–server 127.0.0.1:40712
监听端口,也就是你的snell服务的端口,SS 那边可以监听改为 127.0.0.1,ipv6的话改成[::1]:40172,
–password JsJeWtjiUyJ5yeto
shadow-tls 的密码
–tls gateway.icloud.com
tls伪装网址 要改TLS的话,作者推荐V3 Protocol · ihciah/shadow-tls Wiki · GitHub
vim操作:
按i 底下出现INSERT提示即可进行编辑
编辑完成后按ESC键后,再输入:wq即可保存退出
如果想不保存退出,输入:q!
将服务单元添加到自启动项
systemctl enable shadow-tls.service重载系统配置文件
systemctl daemon-reload启动服务
systemctl start shadow-tls.service可以通过以下查看服务状态看是否运行正常,并根据错误提示代码进行排障
查看服务状态
systemctl status shadow-tls.service重启服务
systemctl restart shadow-tls.service最后在surge的代理服务器中,Snell协议配置UI上根据上面填写的服务单元信息,修改Snell端口为:8443,并在底下填写上相应的Shdow-Tls 参数和版本号等信息
如果熟悉的话可以在文本编辑模式下,在原Snell协议后面贴上下面这段,并将Snell端口改为:8443
,shadow-tls-password=JsJeWtjiUyJ5yeto, shadow-tls-sni=gateway.icloud.com, shadow-tls-version=3最终Surge的文本配置文件格式应该是:
Snell+TLS = snell, x.x.x.x(vps的ip), 8443, psk=xxxxxxxx, version=4, shadow-tls-password=JsJeWtjiUyJ5yeto, shadow-tls-sni=gateway.icloud.com, shadow-tls-version=3Docker搭建shadow-Tls
首先用cd命令,进入snell的docker-compose.yml所在文件夹
例:
cd /root/snelldocker接下来教程都将以这个路径作为例子,请将snelldocker换成自己的文件夹名
改docker-compose.yml第一种方法
可以用带sftp的ssh工具直接将下面的这一段复制到docker-compose.yml里去
⚠️注意:里面的一些内容要自己改动
shadow-tls: image: ghcr.io/ihciah/shadow-tls:latest container_name: shadow-tls restart: always network_mode: "host" environment: - MODE=server - V3=1 - LISTEN=0.0.0.0:8443 # ipv6的话改成[::]:8443 ,8443不用改动 - SERVER=127.0.0.1:xxx # ipv6的话改成[::1]:xxx ,xxx是你snell节点的端口 - TLS=mp.weixin.qq.com:443 #这里可以自己选,下面放了作者推荐的链接` - PASSWORD=Gm8UXm6aridZ # 这里是密码,随便改`要改TLS的话,作者推荐V3 Protocol · ihciah/shadow-tls Wiki · GitHub
改docker-compose.yml第二种方法
如果没有sftp的话,那也可以使用vim工具(⚠️注意,要用英文输入法)
输入以下命令
vim /root/snelldocker/docker-compose.yml按i进入编辑模式,将光标移动到上图中的地方,然后复制下面的代码到里面去
shadow-tls:
image: ghcr.io/ihciah/shadow-tls:latest
container_name: shadow-tls
restart: always
network_mode: "host"
environment:
- MODE=server
- V3=1
- LISTEN=0.0.0.0:8443 # ipv6的话改成[::]:8443 ,8443不用改动
- SERVER=127.0.0.1:xxx # ipv6的话改成[::1]:xxx ,xxx是你snell节点的端口,图中我以28272做例子 - TLS=mp.weixin.qq.com:443 - PASSWORD=Gm8UXm6aridZ # 这里是密码,随便改注意对齐!!
然后按esc退出编辑模式,再按:加上wq保存退出即可
启动shadow-tls
输入以下命令即可
cd /root/snelldocker && docker compose pull && docker compose up -d查看日志输入
docker logs -f shadow-tls在surge上应用
在确定服务端搭建完成之后,就可以将以下配置,复制到对应的snell节点上了
, shadow-tls-password=Gm8UXm6aridZ, shadow-tls-sni=mp.weixin.qq.com, shadow-tls-version=3然后再把原本的snell节点的端口改成8443!
最终节点的配置应该是这样
Snell+TLS = snell, x.x.x.x(vps的ip), 8443, psk=GLk1ff4wuQNCDSqr97WwsHwe8KBjy3S, version=4, shadow-tls-password=Gm8UXm6aridZ, shadow-tls-sni=mp.weixin.qq.com, shadow-tls-version=3至此全部完成!
暂无评论