Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zonyitoo/shadowsocks-yamux-plugin
A shadowsocks SIP003 Plugin with connection multiplexor in YAMUX protocol
https://github.com/zonyitoo/shadowsocks-yamux-plugin
plugin shadowsocks sip003 tcp yamux
Last synced: 2 months ago
JSON representation
A shadowsocks SIP003 Plugin with connection multiplexor in YAMUX protocol
- Host: GitHub
- URL: https://github.com/zonyitoo/shadowsocks-yamux-plugin
- Owner: zonyitoo
- License: mit
- Created: 2022-09-29T13:51:06.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-26T16:52:07.000Z (4 months ago)
- Last Synced: 2024-10-29T23:18:02.533Z (2 months ago)
- Topics: plugin, shadowsocks, sip003, tcp, yamux
- Language: Rust
- Homepage:
- Size: 87.9 KB
- Stars: 31
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# shadowsocks-yamux-plugin
A shadowsocks SIP003 (SIP003u) Plugin with connection multiplexor in YAMUX protocol
```plain
ClientA ----+
| N Connections
ClientB ----+---- sslocal ---- yamux-plugin-local
| |
ClientC ----+ |
| M (TCP) Connections
RemoteA ----+ |
| |
RemoteB ----+---- ssserver ---- yamux-plugin-server
| N Connections
RemoteC ----+
````yamux-plugin` could mulplex `N` TCP / UDP connections into `M` TCP tunnels, which `N >= M`.
## Build
```bash
cargo build --release
```## Plugin Options
```json
{
"plugin_opts": "outbound_fwmark=100&outbound_user_cookie=100&outbound_bind_interface=eth1&outbound_bind_addr=1.2.3.4"
}
```* `outbound_fwmark`: Linux (or Android) sockopt `SO_MARK`
* `outbound_user_cookie`: FreeBSD sockopt `SO_USER_COOKIE`
* `outbound_bind_interface`: Socket binds to interface, Linux `SO_BINDTODEVICE`, macOS `IP_BOUND_IF`, Windows `IP_UNICAST_IF`
* `outbound_bind_addr`: Socket binds to IP
* `udp_timeout`: UDP tunnel timeout (default 5 minutes)
* `tcp_keep_alive`: TCP socket keep-alive time (default 15 seconds)
* `tcp_fast_open`: TCP Fast Open
* `mptcp`: Multipath-TCP
* `ipv6_first`: Connect IPv6 first (default true)