Network
中文

sing-box Review: A Universal Proxy Platform in Go, Worth Your Time?

sing-box is a universal proxy platform written in Go, supporting Shadowsocks, VMess, Trojan, and more. This review covers installation, configuration, and real-world usage of this 33k+ Star open-source tool.

goproxyvpn

[广告位: article-top] 请在 .env 中配置至少一个广告平台

sing-box Review: A Universal Proxy Platform in Go, Worth Your Time?

I’ll be honest — when I first heard about sing-box, my immediate reaction was, “Another proxy tool?” I mean, we’ve already got Clash, V2Ray, Shadowrocket, and a dozen others. But after actually using it for a few days, I have to admit: this thing has some real substance.

Project Background

sing-box comes from the SagerNet team, written in Go. The motivation behind it is pretty practical — existing proxy tools are either bloated, a pain to configure, or slow to adopt new protocols. sing-box aims to be the “universal” solution: one binary, all major proxy protocols covered.

That 33k+ star count? It means a lot of people buy into this vision.

Core Features

1. Protocol Buffet

The protocol support is insane: Shadowsocks, VMess, VLESS, Trojan, Hysteria, WireGuard, Tuic… basically if you’ve heard of it, sing-box speaks it. What I love most is having old and new protocols unified under one config. No more juggling multiple clients.

Config example:

{
  "outbounds": [
    {
      "type": "shadowsocks",
      "server": "your-server.com",
      "server_port": 8388,
      "method": "aes-256-gcm",
      "password": "your-password"
    }
  ]
}

2. Flexible Routing

The routing system is among the most granular I’ve used. Route by domain, IP, GEOIP, process name — even auto-switch nodes based on network type (WiFi vs cellular). A common setup for me: domestic sites go direct, international through proxy, specific apps to specific nodes. sing-box handles this effortlessly.

{
  "route": {
    "rules": [
      { "geosite": "cn", "outbound": "direct" },
      { "geosite": "geolocation-!cn", "outbound": "proxy" }
    ]
  }
}

3. Cross-Platform, One Binary

Windows, macOS, Linux, Android, iOS — all supported. The best part? Server and client use the same program. Learn one config syntax and you’re done. I run the server on my VPS and the client on my laptop, and the config barely needs changing.

Quick Start

Installation is dead simple, one command:

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

# Or use brew
brew install sing-box

Fire it up:

sing-box run -c config.json

The config is JSON-based. It looks intimidating at first, but the official docs are decent enough. Copy a few examples, tweak them, and you’re good to go.

Pros and Cons

Pros:

  • One program for all protocols — no more software clutter
  • Written in Go, so memory usage is way lower than Electron-based clients
  • Active development, new protocols get supported quickly
  • Routing rules are incredibly powerful for precise traffic splitting

Cons (gotta be real here):

  • JSON configs aren’t beginner-friendly. One missing comma and it won’t start, and error messages can be cryptic
  • The GUI clients (SFA, SFM) are less capable than the CLI version — some advanced settings still require manual config editing
  • Documentation is comprehensive but poorly organized; finding stuff takes time
  • Ecosystem isn’t as mature as Clash’s; many third-party tools haven’t adapted to sing-box’s config format

Who’s It For and Final Thoughts

If you’re a tinkerer who loves tweaking configs, sing-box is absolutely worth trying. The flexibility and performance are genuinely impressive, especially when you’re managing multiple protocols — one sing-box can replace three or four tools.

But if you just want “one-click, don’t make me think” connectivity, you’re probably better off with something like Clash Verge or Surge that has a polished GUI. sing-box is more of a power user’s tool.

My advice? Install the CLI version and take it for a spin. If it clicks, dive deeper into the routing rules. It’s free and open source, so what have you got to lose?

[广告位: article-bottom] 请在 .env 中配置至少一个广告平台

Related Posts