服务器搭建Sing-box服务端

瓦工BIGGERBOX-20-1024

官方sing-box一键脚本,搭设多服务的代理服务端。简单方便,可玩性强。

我原服务器是使用Shadowsocks-rust作为服务端进行前置代理的,搭设略显复杂,周末折腾了下sing-box作为服务端,搭设十分简单,且支持更多协议,配合路由器上homeproxy,感觉速度更快了(可能心理作用)。

Sing-box支持Shadowsocks、Socks5、REALITY、Hysteria2、TUIC、 Trojan、VLESS-WS-TLS等多种协议使用。只要配置得当,通过不同的端口号,可以同时使用这些协议。这里以Shadowsocks、Socks5、REALITY这3个为例,介绍下搭建过程。

服务器搭建Sing-box服务端

一、安装Sing-box服务端

Singbox官方有一键脚本,debian搭设一行命令解决。

bash <(curl -fsSL https://sing-box.app/deb-install.sh)

如果报错curl,可以用下列命令解决

apt update
apt install curl -y

有的debian系统还报错脚本,是没有安装sudo的原因

apt install sudo

执行完,只需要写入配置文件就可以使用了,配置文件文件位置在/etc/sing-box/config.json

先启用singbox,

# 开机自启
systemctl enable sing-box
# 启动singbox
systemctl start sing-box

二、更改配置文件

官网wiki提供了配置文件解读,可以查看https://sing-box.sagernet.org/configuration/,这里介绍下Shadowsocks、Socks5、REALITY这3个,简单方便,无需自己配置TLS。

Socks5这个无特殊的配置要求,REALITY由于需要”借用证书“,有些要求。通过下列命令生成uuid,及公私钥。Shaodowsocks如果用2022系列加密方式也需要通过命令获取密码。

# 生成Shaodowsocks 2022 methods key 16位2022-blake3-aes-128-gcm
sing-box generate rand --base64 16
# 生成uuid
sing-box generate uuid
# 生成公私钥,请记录保存
sing-box generate reality-keypair

REALITY对于非合法的代理流量会转发至TLS指向的源站,如果源站套用了CDN会导致流量被有心人士偷跑。所以借用证书的网站需没有套知名的CDN,如Cloudflare、Gcore等。也不要选用大公司的网站如amazon.com等,大公司会公开他们的IP地址段,非他们IP段内服务都是假冒或反代,这给GFW封锁提供了便利。所以我们需要找寻那些没有套CDN的不知名网站域名或自己的域名。

singbox完整配置文件如下:

{
  "log": {
    "disabled": false,
    "level": "warn",
    "timestamp": true
  },
  "inbounds": [
    {
      "type": "socks",
      "tag": "socks-in",
      "listen": "::",
      "listen_port": 1080,
      "users": [
        {
          "username": "vpssocks5",
          "password": "SE63DkP46pMBd8N4"
        }
      ], 
    },
    {
      "type": "shadowsocks",
      "tag": "ss-in",
      "listen": "::",
      "udp_timeout": "5m",
      "udp_fragment": true,
      "listen_port": 9527,
      "method": "2022-blake3-aes-128-gcm",
      "password": "PdvPaKfhCPH/aFO7M7NBZw=="
    },
    {
      "type": "vless",
      "tag": "vless-in",
      "listen": "::",
      "listen_port": 443,
      "users": [
        {
          "uuid": "97672916-60a5-4581-a915-22a707c614fc",
          "flow": "xtls-rprx-vision"
        }
      ],
      "tls": {
        "enabled": true,
        "server_name": "www.wow.com", // 借用证书的域名,tls1.3,h2       
        "reality": {
          "enabled": true,
          "handshake": {
            "server": "www.wow.com",
            "server_port": 443,
           },
          "private_key": "SEwxvL8O_O1qee-T7LnajVvy3uZNiOhnV0YxjXFLikU", // 刚才生成的私钥
          "short_id": [
            "8848" //// 客户端ID之一,0 到 f,长度为 2 的倍数,长度上限为 16
           ],
          "max_time_difference": "1m"
        }     
      }
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "routing_mark": 100 //设置 netfilter 路由标记,供防火墙使用
    }
  ]
}

将上述文件放到记事本里修改为自己的。"uuid": "97672916-60a5-4581-a915-22a707c614fc", 后面不能加注释否则报错。

然后写入配置文件:

rm /etc/sing-box/config.json
nano /etc/sing-box/config.json

黏贴自己的配置文件后 ctrt+x 退出, y 并保存。

重启singbox

systemctl restart sing-box

查看状态:

systemctl status sing-box

如果失败,没有”active (running) “,可以查看日志看看哪里配置错误

journalctl -u sing-box --output cat -e

至此服务器搭建sing-box完成了。1080是socks5代理端口,9527是shadowsocks代理端口,443是reality代理端口,一个服务器同时提供3种服务,可玩性还是不错的。

查看sing-box端口占用情况:

root@example:~# netstat -tulnp |grep sing-box
tcp6       0      0 :::1080                 :::*                    LISTEN      522/sing-box        
tcp6       0      0 :::443                  :::*                    LISTEN      522/sing-box        
tcp6       0      0 :::9527                 :::*                    LISTEN      522/sing-box             
udp6       0      0 :::9527                 :::*                                522/sing-box

 

三、客户端设置

上面没报错的话,根据配置文件的协议、端口、密码等填入客户端,现在就可以完美科学上网了。reality配置里需要填入上述生成的公钥。homeproxy的reality设置图:

服务器搭建Sing-box服务端

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/net/2175.html

(1)

BandWh.com 折腾之路●一起折腾

上一篇 2024年12月18日 10:01
下一篇 2024年12月23日 10:31
瓦工BIGGERBOX-20-1024

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

请文明评论!