视频教程

youtube播放地址:https://youtu.be/yUJ--0eUs_o

GIA高速VPS推荐: https://d.m123.org
家宽住宅VPS推荐: https://v.m123.org
自用专线机场推荐: https://b.m123.org

AnyTLS

https://github.com/anytls/anytls-go

一个试图缓解 嵌套的TLS握手指纹(TLS in TLS) 问题的代理协议。anytls-go 是该协议的参考实现。

  • 灵活的分包和填充策略
  • 连接复用,降低代理延迟
  • 简洁的配置

支持AnyTLS协议的代理工具

sing-box

https://github.com/SagerNet/sing-box

包含 anytls 协议的服务器和客户端

mihomo

https://github.com/MetaCubeX/mihomo

包含 anytls 协议的服务器和客户端

Shadowrocket

https://apps.apple.com/app/shadowrocket/id932747118

Shadowrocket 2.2.65+ 实现了 anytls 协议的客户端

NekoBox For Android

https://github.com/MatsuriDayo/NekoBoxForAndroid/releases

NekoBox For Android 1.3.8+ 实现了 anytls 协议的客户端

搭建方式

通过anytls-go

服务端

./anytls-server -l 0.0.0.0:8443 -p 密码

#后台运行
nohup ./anytls-server -l 0.0.0.0:8443 -p 密码 > /dev/null 2>&1 &

#结束进程
pkill -f anytls-server
Shell

客户端

./anytls-client -l 127.0.0.1:1080 -s 服务器ip:端口 -p 密码
Shell

通过mihomo

生成自签证书

openssl req -x509 -newkey ec:<(openssl ecparam -name prime256v1) -keyout "./server.key" -out "./server.crt" -days 36500 -nodes -subj "/CN=bing.com"

配置文件

cat > config.yaml << 'EOF'
listeners:
- name: anytls-in-1
  type: anytls
  port: 8443
  listen: 0.0.0.0
  users:
    username1: 密码1
    username2: 密码2
  certificate: ./server.crt
  private-key: ./server.key
  padding-scheme: |
   stop=8
   0=30-30
   1=100-400
   2=400-500,c,500-1000,c,500-1000,c,500-1000,c,500-1000
   3=9-9,500-1000
   4=500-1000
   5=500-1000
   6=500-1000
   7=500-1000
EOF
YAML

启动指令

./mihomo -d ./

#后台运行
nohup ./mihomo -d ./ > /dev/null 2>&1 &

#结束进程
pkill -f mihomo
Shell

视频文稿(忽略)

对稳定要求比较高的用户建议自己搭建,我的频道也做了很多搭建教程,对于零基础的朋友建议参考23年这期视频搭建第三种reality节点,都是图形化操作非常简单,很多朋友担心自己搭建的节点会被墙,但只要跟着教程一步步操作就没问题,根据我多年被墙经验,以及这两年收到的反馈,我可以很负责的告诉大家
在使用视频中同款vps的情况下,搭建使用ss节点,第二天大概率会被封ip,反馈ip被封的用户无一例外都是搭建并使用了ss节点

搭建视频中介绍的第一种vmess+ws节点,第二天大概率被封端口,但不会直接封ip,换个端口能继续使用,但第二天又会被封端口,这是在2024年3月4号之后陆续收到大家的反馈,也就是一年前的事了,所以现在不推荐使用vmess+ws

搭建视频中介绍的第二种vless+vision节点,从今年的5月4号开始,也就是十天前,也陆续收到了部分用户反馈节点用不了,但是端口没有被封,经排查,是因为教程中用到的证书域名是nip.io,这个域名会被防火墙阻断导致节点无法使用,和协议本身没关系

搭建视频中介绍的第三种vless+vision+reality节点,这两年一例被封的反馈都没有,真的是一例都没有,偶尔有白名单地区的用户反馈用不了,让他改成大厂域名之后就能用了,另外上面反馈vmess+ws被封端口的用户,我让他们在同一台vps上搭建reality节点,也都正常使用没有再收到反馈,可以说目前reality是稳如老狗,所以如果你要搭建的话,就回看那期视频的第三种方式搭建reality节点

以上情况仅供大家参考,不代表所有人都是一样的效果

回到今天的主题,tls in tls,也就是在tls里传输tls,这个已经能被防火墙识别应该是有共识了,当年vision流控的出现主要就是解决这个问题,通过填充指定长度的随机数据来消除tls in tls的流量特征,在这个月收到vless+vision节点被封的反馈时,我的第一反应是vision流控被防火墙识别了?经过测试发现只是对证书域名nip.io做了阻断,换个域名就行了,所以并不是vision流控本身被识别

本期介绍的anytls和vision类似,也是为了解决tls in tls特征,区别在于vision是固定的对开头的几个短包做指定长度的填充,我们无法进行自定义,而anytls可以通过参数指定我们要填充几个数据包,以及填充长度是多少,可以进行更加灵活个性化的设定,以此来增加防火墙识别的难度

目前除了官方的anytls-go,singbox和mihomo以及苹果端的小火箭和安卓端的nekobox也添加了对anytls的支持,至于xray的话还不支持而且大概率不会支持,因为有个还没发布的vision seed也能自定义,详情可以看这个讨论

接下来就来搭建anytls节点,我将演示两种搭建方式,一种是使用官方项目anytls-go搭建,另一种使用mihomo搭建
首先演示anytls-go,进入项目地址,这些用到的信息我会放在视频下方的说明栏,目前最新版本是008,复制这条链接地址,在你的vps上使用wget指令将其下载,由于是zip压缩文件,需要使用unzip进行解压,会得到三个文件,作为节点的服务端我们只需要运行这个anytls-server,运行的方式非常简单,一行代码搞定,你可以修改节点使用的端口,以及密码,视频演示我就简单一点,你的密码应该尽量复杂,将其复制到vps上执行,此时节点就运行在这台vps上的8443端口了,接着我们就可以连上这个节点进行科学上网了,首先还是演示官方程序,如果你是windows系统就下载这个,我是mac系统就下载这个, 下载完成将其解压出来,和vps一样解压后有三个文件,客户端我们只要使用anytls-client即可,在这个路径下打开命令行终端,windows系统的话可以在文件夹的地址栏输入cmd,回车进入命令行终端,接着执行这条指令,需要把端口改成服务器的8443,服务器ip就填入你vps的ip地址,密码要和服务端设置的一样,将修改后的指令粘贴到终端上执行,此时就会在我电脑的1080端口上开启一个socks代理,这个端口收到的数据都会交给vps上监听了8443端口的anytls处理,现在我就可以给系统或者浏览器设置一个socks代理使用了,但是由于官方程序比较简单,无法做分流,所以我们可以借助其他代理工具做分流,比如v2rayN,在这里添加一个socks代理,随便给个名称,地址和端口就填写anytls客户端监听的1080,点击确定,接着我们在v2rayN中使用这个socks节点,同样会将数据交给anytls处理,还能使用v2rayN的分流配置,测一下真链接,有延迟说明没问题,苹果用户也可以使用小火箭,新版支持anytls协议,如果你在这里没有看到anytls,需要进入app store更新小火箭,填入vps的ip,端口8443,以及密码abc,随便给个名称,点击保存,就算是添加好了,非常简单,安卓用户可以使用nekobox,同样如果在这里没有看到anytls的选项,建议更新到最新版,配置方式和小火箭是一样的,填入ip端口和密码即可,但还需要多一个步骤,anytls-go默认用的是自签证书,需要将这里的允许不安全启用,点击保存,接着就可以使用这个节点进行科学上网了,有延迟说明没问题,当确认节点没问题之后,我们就可以使用这条指令让anytls在vps后台运行,按ctrl+c结束进程,然后粘贴刚才的后台指令,回车执行,这样我们关闭终端也不会退出代理了,有延迟说明没问题,如果你想退出后台进程,可以使用这条指令关闭,关闭代理之后节点就没用了

这就是anytls的快速上手,你还可以使用其他基于singbox或者mihomo内核的代理工具使用anytls节点,这里就不演示了

可以看到基于tls的节点搭建居然这么简单,那是因为anytls-go只是为了验证anytls协议的一个demo,默认使用自签证书并且没法自己配置证书,所以如果你要使用自己域名证书的话,建议使用singbox或者mihomo搭建anytls节点

就以mihomo为例,当然为了简单一点我就使用自签证书了,复制这条指令到vps上执行,执行之后会生成证书和私钥文件,如果你有自己的域名可以找ca机构申请正规证书,然后同样会得到这两个文件,至于证书是啥怎么申请可以回看经典老番节点搭建系列教程之trojan篇,这段是mihomo使用的配置文件,你可以修改anytls的监听端口8443,以及密码,你可以设置多个密码,这里填入我们刚才生成的证书和私钥文件路径,最后就是anytls最关键的padding部分,可以灵活的设置填充几个数据包?每个数据包填充的字节范围,比如这里的意思是处理前8个数据包,给第0个数据包填充30字节,给第一个数据包填充100-400之间的随机字节大小,将第二个数据包进行策略拆分,先发送400-500字节,然后check检查该数据包是否还有数据,如果还有就继续发送500-1000字节,以此类推,你可以做独一无二的配置,比如只填充3个,就可以把后面的填充规则删掉,或者模仿vision填充,更详细的规则可以查看官方文档,如果你不配置padding话anytls也有默认配置,就是刚才的8个填充方案,将其全选复制,粘贴到vps上执行,会生成config.yaml的配置文件,接着进入这里下载mihomo,选择适合自己操作系统的版本,使用wget指令下载,使用gzip指令解压并且将名称重命名为mihomo,然后使用这条指令赋予文件可执行权限,接着就可以使用这条指令运行mihomo了,不出意外的话就可以看到日志输出anytls监听了8443端口,节点就算是搭建好了,再次测试连接,由于只是换了个搭建工具,节点的密码和端口都没变,所以不需要修改节点参数即可恢复使用,并且mihomo可以看到访问日志,这就是通过mihomo搭建anytls节点,也挺简单的,确定没问题之后,也可以使用这条指令放入后台运行,关闭命令行终端节点也能正常使用

另外如果你使用的是正规ca机构颁发的证书,建议取消启用允许不安全,然后在sni这里填入你的证书域名,最后点击保存即可,小火箭也需要重新配置,在tls设置下的sni中填入证书的域名,并且取消启用允许不安全,最后保存即可

最后修改:2025 年 05 月 17 日 11 : 18 AM