RayWangQvQ / sing-box-installer

基于docker一键安装sing-box服务端,并自动生成vmess、naiveproxy、hysteria2节点
309 stars 77 forks source link

sing-box-installer

https://github.com/RayWangQvQ/sing-box-installer

基于sing-boxdocker容器化搭建vmessnaiveproxyhysteria2的保姆级教程。

省流,可以直接执行:

基于docker,需要root:

# get permission
sudo -i

# create a dir
mkdir -p ./sing-box && cd ./sing-box

# install
bash <(curl -sSL https://raw.githubusercontent.com/RayWangQvQ/sing-box-installer/main/install.sh)

serv00:

# create a dir
mkdir -p ./sing-box && cd ./sing-box
bash <(curl -sSL https://raw.githubusercontent.com/RayWangQvQ/sing-box-installer/main/install-serv00.sh)

1. 大概介绍下

1.1. 关于sing-box

开源地址:https://github.com/SagerNet/sing-box

sing-box是一个开源的通用代理部署平台,支持大部分协议,有了它,我可以使用同一套配置规则,部署多个不同的协议。

1.2. 关于naiveproxy

开源地址:

据说是当前最安全的协议之一

1.3. 关于hysteria

开源地址:https://github.com/apernet/hysteria

hysteria的优势是快,基于quic协议,走udp,跟它名字一样(歇斯底里),并发去请求扔包,所以快。

已知问题是qos,来自服务商的限制,当请求流量过大时,会被限速、断流。以前看有图比是嫌清晰度不够,用了hysteria可能要反过来主动去自己调低清晰度了。

关于安全性,目前墙对UDP的管控技术还没有TCP那么成熟,所以相对来说算比较安全。

1.4. 关于sing-box的配置

文档:https://sing-box.sagernet.org/zh/configuration/

部署sing-box的关键,就是编写它的配置文件。

sing-box抽象出一套配置规则,有DNS,有路由(router),有入站(inbound)和出站(outbound)。

如果之前使用过v2ray,对这些概念很熟悉,那么你可以很轻松切换到sing-box

当前sing-box的文档还处于待完善阶段(也可能是故意不想写的太详细),只有对各配置字段的解释,并不会告诉你它是什么以及为什么要这么配。

2. 部署服务端

2.1. 思路

我个人推荐使用docker容器化部署,容器化有很多好处,这里就不多说了。

下面会基于sing-box的官方docker镜像,使用docker-compose进行容器构建。

官方镜像地址:https://github.com/orgs/SagerNet/packages?repo_name=sing-box

如果你的机器没有装过docker,请先安装docker,安装指令:

curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

然后基于docker容器run sing-box的官方镜像,我们只需要配置好配置文件config.json即可。

下面有两种模式:一键脚本部署和手动部署,任选其一即可。

2.2. 一键脚本部署

# get permission
sudo -i

# create a dir
mkdir -p ./sing-box && cd ./sing-box

# install
bash <(curl -sSL https://raw.githubusercontent.com/RayWangQvQ/sing-box-installer/main/install.sh)

运行后会让输入参数:

2.3. 手动部署

教程

3. 客户端

3.1. 安卓-SagerNet

vmess

3.1.1. hysteria

sing-box-client-sagernet-hysteria.jpg

其中:

3.1.2. naive

sing-box-client-sagernet-naive.jpg

其中,密码是配置中的password

3.2. IOS-小火箭

vmess

3.2.1. hysteria

shadowrocket-hy

3.2.2. naiveproxy

shadowrocket-naive

3.3. Win-Nekoray

nekoray

vmess

nekoray-vmess

3.3.1. hysteria

nekoray-hy

3.3.2. naive

nekeray-naive

3.4. Win-V2RayN

如果你没有必要的理由,请优先选择使用Nekoray。

vmess

3.4.1. hysteria

hysteria-v2rayn-add.png

配置文件内容如下:

{
  "server": "sample.zai7lou.ml:10080",
  "server_name": "sample.zai7lou.ml",
  "obfs": "nicetofuckyou",
  "auth_str": "1234@qwer",
  "alpn": "h2",
  "up_mbps": 100,
  "down_mbps": 100,
  "socks5": {
    "listen": "127.0.0.1:10808"
  },
  "http": {
    "listen": "127.0.0.1:10809"
  }
}

3.4.2. naive

naive-v2rayn-add.png

配置文件内容如下:

{
  "listen": "socks://127.0.0.1:10808",
  "proxy": "https://Ray:1234@qwer@sample.zai7lou.ml:8090"
}

3.5. Mac-Nekoray

同上,跟windows下的Nekoray一样。

4. FAQ

4.1. hy的端口hop

sing-box暂不支持,目前只能多加几个hy节点,然后在客户端做负载均衡。