opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

sing-box: a universal proxy platform that's GPLv3 licensed
GitHub RepoImpressions4

Project Description

View on GitHub

sing-box: A Universal Proxy Platform That Puts You in Control

If you've ever wrestled with proxy clients that are locked to a single protocol, or tried to juggle multiple tools for different VPN setups, you know the pain. Most proxy software is either hyper-specialized (great at one thing, useless for another) or so heavyweight it feels like running a small data center on your laptop.

That's why sing-box caught my eye. It's a universal proxy platform that doesn't care whether you're dealing with Shadowsocks, VLESS, Trojan, or plain old SOCKS5. It handles them all under one hood, and it's open source under the GPLv3 license. If you're the kind of developer who likes having a Swiss Army knife for network traffic, this is worth a look.

What It Does

At its core, sing-box is a proxy client and server daemon written in Go. It reads a single JSON config file and can act as a client, a server, or both simultaneously. You point it at your inbound connections (like a local SOCKS5 port) and tell it where to route that traffic (like a remote VLESS server). It does the rest.

The project is built around rules-based routing. You can define rules like "if the destination is a Chinese IP, send it direct" or "if the request is for example.com, use the Trojan server." It's that kind of granular control that makes it feel less like a proxy tool and more like a traffic orchestrator.

Why It's Cool

Here's where sing-box separates itself from the crowd. Most proxy clients are protocol-specific. sing-box supports a bunch of protocols natively including Shadowsocks, VMess, VLESS, Trojan, Hysteria, and even plain HTTP/SOCKS5. You don't need separate configs for each. One YAML/JSON file handles everything.

The rules engine is genuinely powerful. You can route based on:

  • Domain names (with wildcard matching)
  • IP address ranges
  • GeoIP databases
  • Port numbers
  • Process names (on Linux)
  • And even time-based rules

Another big win: it's built for cross-platform use. It runs on Windows, macOS, Linux, Android, iOS, and even routers with OpenWrt. That's a serious flex for a Go binary. It's also lightweight enough to run on a Raspberry Pi without breaking a sweat.

One clever implementation detail is that sing-box includes a built-in DNS server (called dns in the config). You can configure DNS re-routing, fake IP, and client-side domain resolution for proxies that don't support it. This makes it a complete solution for your proxy stack, not just a pipe.

How to Try It

Getting started is straightforward. Head over to the GitHub releases page and grab a binary for your system. Or, if you're on a Mac with Homebrew, it's even easier:

brew install sing-box

Once installed, you'll need a config file. The project has good examples in the repo, but here's a minimal client config to get your feet wet:

{
  "inbounds": [
    {
      "type": "socks",
      "listen": "127.0.0.1",
      "listen_port": 1080
    }
  ],
  "outbounds": [
    {
      "type": "vless",
      "server": "your-server.com",
      "server_port": 443,
      "uuid": "your-uuid"
    }
  ]
}

Save that as config.json and run:

sing-box run -c config.json

You now have a local SOCKS5 proxy on port 1080 that forwards traffic to your VLESS server. The official wiki has much deeper documentation if you want to play with routing rules and advanced settings.

Final Thoughts

sing-box is one of those projects that feels inevitable once you see it. It consolidates multiple proxy protocols into a single, rule-driven engine, and it does so with a clean, configurable design. The fact that it's GPLv3 and built in Go means it's easy to audit and even easier to embed into your own tools.

For developers, this is more than a VPN client. It's a building block. You can use it as the network layer for a custom privacy tool, run it on your home server to route traffic smartly, or even call its Go library directly if you want programmatic control.

If you're tired of maintaining five different proxy configs or want a single binary to handle all your routing needs, go give sing-box a spin. It's one of those rare tools that makes you wonder why it didn't exist earlier.


Found this useful? Follow @githubprojects for more open-source finds.

Back to Projects
Project ID: e282ed82-249d-432c-94f7-f418e2ce2246Last updated: August 3, 2026 at 02:43 AM