这个教程会创建两个上网协议 NaiveProxy(sing-box当前主推的协议) Hysteria2(备用),我们只开80和443端口,我们用的sing-box 1.14.4版本。
环境准备
- vps一个,本文以ubuntu26为例
- 自己的域名一个,本文中我们以 speedtest.abc.com 为例
- 开放80/tcp端口,给你的域名申请证书用
- 开放443/tcp 443/udp分别给两个上网协议用
安装并配置服务端
安装
直接在vps执行命令
1 | sudo mkdir -p /etc/apt/keyrings && |
其他操作系统可以看官方给的 https://sing-box.sagernet.org/zh/installation/package-manager/
生成两个密钥
1 | sing-box generate rand --base64 32 # naive的密码 |
服务端配置
修改 /etc/sing-box/config.json
1 |
|
这里的"masquerade": "https://www.bing.com",并不是类似vless的伪装地址,而是说当有机器人访问你的hy2的443端口是让它跳到masquerade指定的网址。
防火墙
开启 80/tcp 443/tcp 443/udp
比如ufw防火墙
1 | ufw allow 80/tcp |
启动服务端
1 | sudo sing-box check -c /etc/sing-box/config.json |
安装并配置客户端
安装
https://github.com/SagerNet/sing-box/releases
我们以 sing-box 1.14.4 为例
- windows图形客户端叫SFW-1.14.4-x64.exe
- macOS的图形客户端叫SFM-1.14.4-Apple.pkg,你也可以brew install sfm安装,看你喜欢哪个
文档 https://sing-box.sagernet.org/zh/clients/apple/#source-code
配置
在安装好打开的app界面里创建并编辑配置文件
1 | { |
上边的配置里我禁用了ipv6
1 | { |
第一次链接会自动下载rule_set里的两个文件,都是github上的,大概率下载不到,然后会一直报错,可以改成把文件放本地文件夹里,把rule_set改成下边这样
1 | "rule_set": [ |
path里你可以写C:/your/path/geosite-cn.srs没问题,但sing-box客户端会提示让你在设置里开启不安全运行模式,可以开。
你也可以不开,然后把文件放到你的sing-box安装目录下,如果你不知道目录在哪里,你可以先不写具体path,就写两个文件名,这时候编辑配置文件sing-box会自动检查并报错提醒你它的默认path下找不到这个文件,这时候你就知道这个默认path叫啥了。
如果你不想用本地文件的方式,那么你自己在本地起一个fileserver提供一个文件链接就行了。
naive配置里我加了"udp_over_tcp": true来让naive的udp都通过tcp发送到服务端,因为我们配置的服务端443端口的tcp给了naive,udp给了hy2协议,分别监听的。
开始上网
就点击启动就可以了,如果报错会有弹窗提示,或者看app的日志里内容。
参考
https://sing-box.sagernet.org/
https://github.com/SagerNet/sing-box