955 Commits
Author SHA1 Message Date
zonyitoo f8410cc329 chore: reformatted with nightlly rustc 2024-04-14 22:08:08 +08:00
stormynoct a5d71a28b9 Fix load balancer to add per server fwmark for outbound traffic 2024-04-14 22:03:12 +08:00
zonyitoo 355bd8a5c3 feat(local): basic implementation of fake-dns 2024-03-31 03:15:05 +08:00
zonyitoo da9927ce1d feat: disable ansi if stdout is not terminal 2024-02-16 16:03:32 +08:00
zonyitoo 1033df0ed4 feat: remove logging ascii escape color 2024-02-16 15:37:37 +08:00
zonyitoo 186c0883e7 feat: IsTerminal in std since v1.70 2024-02-16 15:16:38 +08:00
zonyitoo 5ced7d184e reformatted 2024-02-16 10:51:03 +08:00
zonyitoo 08386d982f updated log4rs deprecation message 2024-02-16 10:43:18 +08:00
zonyitoo bde0d05858 feat: default logger changed to tracing-subscriber
Older version was using log4rs as logging subscriber, which doesn't
support tracing outputs.
2024-02-16 10:40:07 +08:00
zonyitoo 65eb758ad4 feat: support tracing in default logging output (console)
Some depended libraries supports "tracing" structured logs, for example:
tokio, hickory-dns. They don't use "log" framework to emit logs, so
log4rs won't be able to receive those debugging informations.

Current implementation rely on a tracing subscriber called trace4rs,
which has mostly the same configuration interface like log4rs, but still
missing many features comparing with log4rs.
2024-02-08 02:29:15 +08:00
zonyitoo a82911c8bd chore: more clippy checked suggestions 2024-02-01 21:59:06 +08:00
zonyitoo 609de80b47 chore: make clippy happy 2024-02-01 21:48:23 +08:00
zonyitoo 7736b01431 feat(local): local-tun ignore non-unicast packets 2023-10-18 21:31:56 +08:00
zonyitoo ce344c613b fix(shadowsocks): run_as_user abort if error occurs (#1328) 2023-10-18 21:17:42 +08:00
zonyitoo 268e520a72 feat(sswinservice): Running ssservice as a Windows Service
ref #1292

https://learn.microsoft.com/en-us/windows/win32/services/about-services
2023-09-19 00:29:35 +08:00
zonyitoo a359a84892 make clippy happy 2023-07-19 00:45:35 +08:00
Tim Xylon 535ee0b37f Add "dns-cache-size" command-line option 2023-06-27 13:22:55 +08:00
Tim Xylon 0234a4a571 Remove derivable implementation 2023-06-26 23:59:11 +08:00
zonyitoo 7c5d3cb9c6 Updated config URL in help message, fix #1214 2023-06-17 00:21:34 +08:00
Kirill Fertikov 67232c3010 Added configs for snap daemons (#1204) 2023-06-14 20:45:10 +08:00
zonyitoo c4cec6d8b1 feat(local): Local server builder pattern 2023-05-05 03:25:12 +08:00
zonyitoo c9c59f9664 feat(plugin): Support SIP003u, Plugin UDP mode
- ref shadowsocks/shadowsocks-org#180
- "plugin_mode" option in configuration file, and ssmanager API
- "plugin_mode" is "tcp_only" by default
- ref shadowsocks/shadowsocks-rust#1127
2023-04-15 18:30:22 +08:00
zonyitoo 2dff4ec4da trust-dns setsockopt with outbound socket configs
Outbound configurations, like outbound-fwmark, outbound-bind-interface,
         outbound-bind-addr, ... will also applies to the TCP/UDP
         sockets created by trust-dns DNS resolver.

NOTE: On Android platform, DNS sockets will also be protected.
2023-04-15 17:28:15 +08:00
zonyitoo 7d7fb195f5 feat(mptcp): Basic implementation of Multipath-TCP
- Currently support macOS (Client Only) and Linux (> 5.19)
  - ref #1156
2023-04-05 23:19:50 +08:00
zonyitoo 58c1761630 local-redir UDP compatible with Linux < 2.6.37
fix #988

IPV6_TRANSPARENT was supported since Linux Kernel 2.6.37.
2023-02-06 04:49:15 +08:00
Bran Liang 02f87ba9cc Enable tun destination configuration 2023-01-28 13:30:56 +08:00
5430fecc28 Bump base64 from 0.13.1 to 0.21.0 (#1081)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tim Xylon <zedifen@outlook.com>
Co-authored-by: zonyitoo <zonyitoo@gmail.com>
2023-01-15 22:50:14 +08:00
zonyitoo e3855b4a8d clippy --fix 2022-12-18 11:32:46 +08:00
zonyitoo d8938ac39f fix local-dns compile error
fix #1051
2022-12-15 21:43:13 +08:00
zonyitoo 8953210907 "acl" is available in ext-config "servers" & "locals"
The "acl" in "servers" & "locals" will have higher priority than the
global "acl" in configuration.

fix #1042
2022-12-10 17:49:43 +08:00
zonyitoo 45cc770ef4 ssservice genkey, helper for generate encryption key 2022-10-17 22:29:35 +08:00
zonyitoo 6c5882e6ef fixed NOFILE command line argument 2022-10-08 01:46:08 +08:00
zonyitoo 91b3bfabe1 fixed RemoteDnsAddress parsing 2022-10-08 01:19:44 +08:00
zonyitoo 817f106777 upgrade clap v4.0 2022-10-07 15:51:58 +08:00
zonyitoo e972f082e5 ignore TCP_REDIR, UDP_REDIR if not supported on the current platform 2022-07-17 20:33:17 +08:00
ValdikSS c5f7caab8d Update broken Wiki/documentation URLs 2022-07-07 17:14:48 +08:00
zonyitoo bfd043735e no warning for running from root user
It is Ok to run sslocal, ssmanager, ssserver from root user unless there
are bugs and security holes in these programs which are lethal to the
system.
2022-07-06 06:15:47 +08:00
zonyitoo 0f72001378 fallback getpwnam if uid not exists 2022-06-29 00:41:50 +08:00
zonyitoo 64ad58bd61 switch user with -a, docker adds entrypoint script, #876 2022-06-29 00:31:57 +08:00
spyophobia 1efb02ee6b Binaries spit out correct exit codes 2022-06-23 23:38:03 +08:00
Shun Sakai f57d50659f Change the return type of the main function
Since Rust 1.61.0, the `main` function can return a type that
implements the `Termination` trait.
By this, the `main` function can return custom exit codes, so use this.
2022-06-13 11:26:50 +08:00
zonyitoo 6036d8cbc2 local-stat-report support TCP destination (#860) 2022-06-10 21:59:07 +08:00
zonyitoo 77d343eb98 make "password" optional for none/plain method (#838) 2022-05-16 13:34:59 +08:00
zonyitoo 855f7fa8f1 allow sslocal run without servers (#818)
If no server was configured, then sslocal will bypass all connections
and packets.
2022-05-15 20:42:15 +08:00
zonyitoo f059d4a4cb remember worker_count passed from configuration
tokio's metric APIs is not stablized yet:
https://github.com/tokio-rs/tokio/issues/4073
2022-04-25 00:01:27 +08:00
ty 7c154d2340 AEAD-2022 ciphers (new protocol) (#811) 2022-04-19 11:48:43 +08:00
zonyitoo 66dc357ebf Bumps rpassword from 5.0.1 to 6.0.1. 2022-04-10 01:53:37 +08:00
zonyitoo 6dee125baf sysctlbyname with static [u8] name 2022-03-28 12:21:12 +08:00
zonyitoo 00c7d3f0aa automatically bump RLIMIT_NOFILE on Unix (except Android)
- https://github.com/golang/go/issues/46279
- http://0pointer.net/blog/file-descriptor-limits.html

The I/O runtime, Tokio and Mio, in this Project won't use select(2), so
it is safe to bump the RLIMIT_NOFILE soft limit to hard limit
automatically.
2022-03-26 23:48:21 +08:00
zonyitoo 7a22f8d582 create Task for every local/server instances
- making good use of multicore runtime
2022-03-20 22:09:53 +08:00