/open-snell

This is an unofficial open source port of https://github.com/surge-networks/snell

Primary LanguageGoGNU General Public License v3.0GPL-3.0

open-snell

An open source port of snell

Features

  • snell-server: v1, v2, v3

  • snell-client: v1, v2

snell-client is bug-fix-only, please consider clash for full feature opensource snell client

Build

Requirements

  • git

  • go 1.17+

Build Steps

Only tested on macOS.

# clone and enter the repo

make

# or `make server/client' to build snell-server/snell-client separately

The binaries are produced at ./build/snell-{server,client}

Usage

An ini file is needed (compatible with the offical port):

# snell.conf

# section "snell-client" is used by snell-client
[snell-client]
listen = 0.0.0.0:1234
server = 1.2.3.4:5678
psk = psk
obfs = tls
obfs-host = www.bing.com
version = 1 # default 2

# section "snell-server" is used by snell-client
[snell-server]
listen = 0.0.0.0:5678
psk = psk
obfs = tls

Start the snell-*:

./snell-{server,client} -c ./snell.conf

Docker image

The auto-built docker image is also available at ghcr.io/icpz/snell-server:latest and ghcr.io/icpz/snell-client:latest.

License

Copyright (C) 2020-, icpz <y@icpz.dev>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Thanks