Installation
One-line installer for Linux + systemd, manual builds for everything else.
One-line server installer (Linux + systemd)
bash <(curl -fsSL https://s.ee/opensnell)The interactive installer:
- Lets you pick between OpenSnell (default, GPLv3, all-platform) or the
official Surge
snell-server v5.0.1(closed-source, Linux only). - Generates a random PSK with
opensslif you leave it blank. - Picks an unused random port in
10000–60000if you leave the port blank. - Writes
/etc/snell/snell-server.conf, installs a systemd unit (snell-server.service), opens the port in UFW / firewalld if either is active, and starts the service. - Re-run with
reconfigure,update,uninstall,start,stop,restart,status, orinfo— see./install.sh help.
Installing the alpha channel
The alpha branch tracks experimental features ahead of stable release
(currently: TUN inbound, fake-IP DNS, tcp-brutal CC — none of which the
official Surge snell-server ships). CI publishes a rolling pre-release
tagged alpha on every push to that branch; the installer can pull from
it via --alpha:
bash <(curl -fsSL https://s.ee/opensnell) install --alphaThe channel is persisted to /etc/snell/.install_meta, so subsequent
update runs stay on alpha without re-passing the flag. To switch back
to the stable channel, run install again without the flag.
Alpha builds carry the same on-the-wire compatibility guarantees as
stable (full interop with Surge snell-server v5.0.1 is part of CI),
but the extra features above are not yet part of the official Snell
spec and may be removed or reshaped without warning. Use on
production systems at your own risk.
Build from source
go build -o snell-server ./cmd/snell-server
go build -o snell-client ./cmd/snell-clientOr fetch directly with go install:
go install github.com/missuo/opensnell/cmd/snell-server@latest
go install github.com/missuo/opensnell/cmd/snell-client@latestMinimal systemd unit
If you're not using the installer but want systemd supervision:
[Unit]
Description=OpenSnell server
After=network.target
[Service]
ExecStart=/usr/local/bin/snell-server -c /etc/snell/snell-server.conf
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target