mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-20 21:43:41 +00:00
readme: refine structure; add info about mbedTLS.
This commit is contained in:
@@ -2,11 +2,11 @@
|
||||
|
||||
## Intro
|
||||
|
||||
[Shadowsocks-libev](http://shadowsocks.org) is a lightweight secured SOCKS5
|
||||
[Shadowsocks-libev](http://shadowsocks.org) is a lightweight secured SOCKS5
|
||||
proxy for embedded devices and low-end boxes.
|
||||
|
||||
It is a port of [Shadowsocks](https://github.com/shadowsocks/shadowsocks)
|
||||
created by [@clowwindy](https://github.com/clowwindy), which is maintained by
|
||||
It is a port of [Shadowsocks](https://github.com/shadowsocks/shadowsocks)
|
||||
created by [@clowwindy](https://github.com/clowwindy), which is maintained by
|
||||
[@madeye](https://github.com/madeye) and [@linusyang](https://github.com/linusyang).
|
||||
|
||||
Current version: 2.4.3 | [Changelog](debian/changelog)
|
||||
@@ -16,24 +16,76 @@ Travis CI: [ and
|
||||
[libev](http://software.schmorp.de/pkg/libev.html) and
|
||||
[OpenSSL](http://www.openssl.org/) or [PolarSSL](https://polarssl.org/).
|
||||
The use of [mbedTLS](https://tls.mbed.org/) is added but still for testing, and
|
||||
it is not officially supported yet.
|
||||
|
||||
In normal usage, the memory footprint is about 600KB and the CPU utilization is
|
||||
no more than 5% on a low-end router (Buffalo WHR-G300N V2 with a 400MHz MIPS CPU,
|
||||
In normal usage, the memory footprint is about 600KB and the CPU utilization is
|
||||
no more than 5% on a low-end router (Buffalo WHR-G300N V2 with a 400MHz MIPS CPU,
|
||||
32MB memory and 4MB flash).
|
||||
|
||||
For a full list of feature comparison between different versions of shadowsocks,
|
||||
refer to the [Wiki page](https://github.com/shadowsocks/shadowsocks/wiki/Feature-Comparison-across-Different-Versions).
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
**Notes about PolarSSL**
|
||||
### Distribution-specific guide
|
||||
|
||||
* The default crypto library is OpenSSL. To build against PolarSSL,
|
||||
specify `--with-crypto-library=polarssl` and `--with-polarssl=/path/to/polarssl`
|
||||
when running `./configure`.
|
||||
* PolarSSL __1.2.5 or newer__ is required. Currently, PolarSSL does __NOT__ support
|
||||
- [Debian & Ubuntu](#debian--ubuntu)
|
||||
+ [Install from repository](#install-from-repository)
|
||||
+ [Build deb package from source](#build-deb-package-from-source)
|
||||
+ [Configure and start the service](#configure-and-start-the-service)
|
||||
- [Fedora & RHEL](#fedora--rhel)
|
||||
+ [Install from repository](#install-from-repository-1)
|
||||
- [Archlinux](#archlinux)
|
||||
- [Directly build and install on UNIX-like system](#linux)
|
||||
- [FreeBSD](#freebsd)
|
||||
- [OpenWRT](#openwrt)
|
||||
- [OS X](#os-x)
|
||||
- [Windows](#windows)
|
||||
|
||||
* * *
|
||||
|
||||
### Pre-build configure guide
|
||||
|
||||
For a complete list of avaliable configure-time option,
|
||||
try `configure --help`.
|
||||
|
||||
#### Using alternative crypto library
|
||||
|
||||
There are three crypto libraries available:
|
||||
|
||||
- OpenSSL (**default**)
|
||||
- PolarSSL
|
||||
- mbedTLS (__NOT__ officially supported)
|
||||
|
||||
##### PolarSSL
|
||||
|
||||
To build against PolarSSL, specify `--with-crypto-library=polarssl`
|
||||
and `--with-polarssl=/path/to/polarssl` when running `./configure`.
|
||||
|
||||
* PolarSSL __1.2.5 or newer__ is required. Currently, PolarSSL does __NOT__ support
|
||||
CAST5-CFB, DES-CFB, IDEA-CFB, RC2-CFB and SEED-CFB.
|
||||
* RC4 is only support by PolarSSL __1.3.0 or above__.
|
||||
|
||||
##### mbedTLS
|
||||
To build against mbedTLS, specify `--with-crypto-library=mbedtls`
|
||||
and `--with-mbedtls=/path/to/mbedtls` when running `./configure`.
|
||||
|
||||
Please not that we do **NOT** officially support mbedTLS right now,
|
||||
and you should use it at your own risk.
|
||||
|
||||
Windows users will need extra work when compiling mbedTLS library,
|
||||
see [this issue](https://github.com/shadowsocks/shadowsocks-libev/issues/422) for detail info.
|
||||
|
||||
#### Using shared library from system
|
||||
|
||||
Please specify `--enable-system-shared-lib`. This will replace the bundled
|
||||
`libev`, `libsodium` and `libudns` with the corresponding libraries installed
|
||||
in the system during compilation and linking.
|
||||
|
||||
### Debian & Ubuntu
|
||||
|
||||
#### Install from repository
|
||||
@@ -82,7 +134,7 @@ Please follow the instructions on [Debian Backports](http://backports.debian.org
|
||||
This also means that you can only install those built packages on systems that have
|
||||
`init-system-helpers` installed.
|
||||
|
||||
Otherwise, try to build and install directly from source. See the **Linux**
|
||||
Otherwise, try to build and install directly from source. See the [Linux](#linux)
|
||||
section below.
|
||||
|
||||
``` bash
|
||||
@@ -145,11 +197,11 @@ sudo pacman -S shadowsocks-libev
|
||||
```
|
||||
|
||||
Please refer to downstream [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/trunk?h=packages/shadowsocks-libev)
|
||||
script for extra modifications.
|
||||
script for extra modifications and distribution-specific bugs.
|
||||
|
||||
### Linux
|
||||
|
||||
For Unix-like systems, especially Debian-based systems,
|
||||
For Unix-like systems, especially Debian-based systems,
|
||||
e.g. Ubuntu, Debian or Linux Mint, you can build the binary like this:
|
||||
|
||||
```bash
|
||||
@@ -182,13 +234,16 @@ service shadowsocks_libev start
|
||||
|
||||
### OpenWRT
|
||||
|
||||
**Note**: You may want to use [openwrt-shadowsocks](https://github.com/shadowsocks/openwrt-shadowsocks)
|
||||
, which is developed specifically for OpenWRT.
|
||||
|
||||
```bash
|
||||
# At OpenWRT build root
|
||||
pushd package
|
||||
git clone https://github.com/shadowsocks/shadowsocks-libev.git
|
||||
popd
|
||||
|
||||
# Enable shadowsocks-libev in network category
|
||||
# Enable shadowsocks-libev in network category
|
||||
make menuconfig
|
||||
|
||||
# Optional
|
||||
@@ -238,7 +293,7 @@ make lib WINDOWS=1
|
||||
make install DESTDIR="$HOME/prebuilt"
|
||||
```
|
||||
|
||||
Then, build the binary using the commands below, and all `.exe` files
|
||||
Then, build the binary using the commands below, and all `.exe` files
|
||||
will be built at `$HOME/ss/bin`:
|
||||
|
||||
#### OpenSSL
|
||||
@@ -322,7 +377,7 @@ man pages of the applications, respectively.
|
||||
|
||||
notes:
|
||||
|
||||
ss-redir provides a transparent proxy function and only works on the
|
||||
ss-redir provides a transparent proxy function and only works on the
|
||||
Linux platform with iptables.
|
||||
|
||||
```
|
||||
@@ -334,7 +389,7 @@ The latest shadowsocks-libev has provided a *redir* mode. You can configure your
|
||||
# Create new chain
|
||||
root@Wrt:~# iptables -t nat -N SHADOWSOCKS
|
||||
root@Wrt:~# iptables -t mangle -N SHADOWSOCKS
|
||||
|
||||
|
||||
# Ignore your shadowsocks server's addresses
|
||||
# It's very IMPORTANT, just be careful.
|
||||
root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 123.123.123.123 -j RETURN
|
||||
@@ -358,7 +413,7 @@ The latest shadowsocks-libev has provided a *redir* mode. You can configure your
|
||||
root@Wrt:~# ip rule add fwmark 0x01/0x01 table 100
|
||||
root@Wrt:~# ip route add local 0.0.0.0/0 dev lo table 100
|
||||
root@Wrt:~# iptables -t mangle -A SHADOWSOCKS -p udp --dport 53 -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01
|
||||
|
||||
|
||||
# Apply the rules
|
||||
root@Wrt:~# iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS
|
||||
root@Wrt:~# iptables -t mangle -A PREROUTING -j SHADOWSOCKS
|
||||
|
||||
Reference in New Issue
Block a user