shadowsocks

package module
v0.0.0-...-934465a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2016 License: MIT Imports: 5 Imported by: 0

README

Shadowsocks

Shadowsocks implementation written in Go.

What it is?

Yet another shadowsocks implementation. Not official, but conforms to its protocol.

What it is not?

It is not a socks5 implementation. Though, it does contain a package socks5 to read and write socks5 messages.

Why not another name?

Should I named it yassi?

What is missing?

Various cipher methods and UDP are not supported. For now, only supported cipher methods are:

  • aes-128-cfb
  • aes-192-cfb
  • aes-256-cfb
  • rc4-md5

Usage

Run go get github.com/kezhuw/shadowsocks/cmd/shadowsocks to install command line executable file.

Usage of shadowsocks:
  -config string
        Configuration file
  -help
        Print usage

See examples/config.toml for configration fields.

Details

Go godoc to see documentation.

Use git submodule and vendor to resolve dependency. So if you want to build it, Go 1.5 is preferred.

It is worth mentioning that cipher methods are supported via driver-like method used by official database/sql package. So it should be trivially easy to integrate external cipher method if you contribute one. See file crypto.go, crypto/aes.go, cmd/shadowsocks/ciphers.go for details.

License

Released under The MIT License (MIT). See LICENSE for the full license text.

Some implementations that I read portions of them:

  • Shadowsocks Official implementation, written in Python. Official repository is purged, here is a backup.
  • shadowsocks-go One of yet another implementations, written in Go.

Contributions

Due to permissive license, feel free to fork and hack. If you have any questions, fire issues. For bugs and features, pull requests are preferred.

TODO

Wait a minute. I need to drink some wine.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Serve

func Serve(configs *config.Config)

Types

This section is empty.

Directories

Path Synopsis
cmd
Package config parses configurations used by other components.
Package config parses configurations used by other components.
Package crypto provides interface for cipher method providers.
Package crypto provides interface for cipher method providers.
aes
Package aes implements cipher methods based on AES encryption.
Package aes implements cipher methods based on AES encryption.
rc4
Package rc4 implements cipher methods based on RC4 encryption.
Package rc4 implements cipher methods based on RC4 encryption.
Package key defines function to create key generator conformed to official shadowsocks implementation.
Package key defines function to create key generator conformed to official shadowsocks implementation.
Package local implements a proxy to accept incoming plaintext connection and relay network traffics between client and remote server using configured cipher method.
Package local implements a proxy to accept incoming plaintext connection and relay network traffics between client and remote server using configured cipher method.
Package netaddr defines type Address which is composed of ip address and port number used by transport layer TCP and UDP.
Package netaddr defines type Address which is composed of ip address and port number used by transport layer TCP and UDP.
Package server implements a proxy to accept incoming ciphertext connection and relay network traffics between client and destination.
Package server implements a proxy to accept incoming ciphertext connection and relay network traffics between client and destination.
Package socks5 contains constants defined in https://tools.ietf.org/rfc/rfc1928.txt and functions to read and write socks5 messages.
Package socks5 contains constants defined in https://tools.ietf.org/rfc/rfc1928.txt and functions to read and write socks5 messages.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL