Releases: database64128/shadowsocks-go
Releases · database64128/shadowsocks-go
v1.11.3 - Patch Release 🛠️
📝 Release Notes
Networking
- Fixed an issue that could cause UDP relay sessions to get stuck forever when
sendmmsg(2)
is used on Linux and NetBSD. - Improved
sendmmsg(2)
error handling and stats accuracy.
General
- Fixed build on 32-bit Linux.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.11.3-archlinux-x86-64-v2.tar.zst |
Go 1.23.2 w/ CGO |
shadowsocks-go-v1.11.3-archlinux-x86-64-v3.tar.zst |
Go 1.23.2 w/ CGO |
shadowsocks-go-v1.11.3-linux-arm64.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.3-linux-x86-64-v2.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.3-linux-x86-64-v3.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.3-macos-arm64.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.3-macos-x86-64-v3.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.3-windows-arm64.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.3-windows-x86-64-v2.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.3-windows-x86-64-v3.tar.zst |
Go 1.23.2 w/o CGO |
© 2024 database64128
v1.11.2 - Patch Release 🛠️
📝 Release Notes
Service
- Fixed an issue where garbage bytes are sent when initial payload read times out.
Networking
- Improved socket address and control message handling.
- Increased UDP socket buffer size to 7 MiB for improved performance.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.11.2-archlinux-x86-64-v2.tar.zst |
Go 1.23.2 w/ CGO |
shadowsocks-go-v1.11.2-archlinux-x86-64-v3.tar.zst |
Go 1.23.2 w/ CGO |
shadowsocks-go-v1.11.2-linux-arm64.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.2-linux-x86-64-v2.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.2-linux-x86-64-v3.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.2-macos-arm64.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.2-macos-x86-64-v3.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.2-windows-arm64.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.2-windows-x86-64-v2.tar.zst |
Go 1.23.2 w/o CGO |
shadowsocks-go-v1.11.2-windows-x86-64-v3.tar.zst |
Go 1.23.2 w/o CGO |
© 2024 database64128
v1.11.1 - Patch Release 🛠️
📝 Release Notes
Domain set
- Optimized domain suffix matching.
- Optimized generation and loading of domain sets.
Service
- Improved TFO reliability on macOS.
Toolchain
- Upgraded to Go 1.23.1.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.11.1-archlinux-x86-64-v2.tar.zst |
Go 1.23.1 w/ CGO |
shadowsocks-go-v1.11.1-archlinux-x86-64-v3.tar.zst |
Go 1.23.1 w/ CGO |
shadowsocks-go-v1.11.1-linux-arm64.tar.zst |
Go 1.23.1 w/o CGO |
shadowsocks-go-v1.11.1-linux-x86-64-v2.tar.zst |
Go 1.23.1 w/o CGO |
shadowsocks-go-v1.11.1-linux-x86-64-v3.tar.zst |
Go 1.23.1 w/o CGO |
shadowsocks-go-v1.11.1-macos-arm64.tar.zst |
Go 1.23.1 w/o CGO |
shadowsocks-go-v1.11.1-macos-x86-64-v3.tar.zst |
Go 1.23.1 w/o CGO |
shadowsocks-go-v1.11.1-windows-arm64.tar.zst |
Go 1.23.1 w/o CGO |
shadowsocks-go-v1.11.1-windows-x86-64-v2.tar.zst |
Go 1.23.1 w/o CGO |
shadowsocks-go-v1.11.1-windows-x86-64-v3.tar.zst |
Go 1.23.1 w/o CGO |
© 2024 database64128
v1.11.0 - Eleven 🕚
📝 Release Notes
Service
- Added TCP Fast Open (TFO) accept backlog and fallback options. TFO fallback is now enabled by default in the default client.
- Added support for configuring
TCP_DEFER_ACCEPT
andTCP_USER_TIMEOUT
socket options on Linux.
HTTP Proxy
- Improved handling of reused non-CONNECT connections.
- Avoid draining response body when the client disconnects.
- Fixed a regression in error propagation for non-CONNECT connections.
API
- The SSMv1 API has been moved from
/v1
to/api/ssm/v1
. - The pprof endpoint has been moved behind the secret path.
- Added support for serving static files, which is useful for hosting a web UI alongside the API.
General
- Adjusted default logger presets for increased efficiency (up to 900 ns/op faster).
- Prepared for upcoming changes in Go 1.23. Notably, TFO will not be available on Windows starting with Go 1.23, due to new restrictions by the Go toolchain, unless the build tag
tfogo_checklinkname0
is specified along with the linker flag-checklinkname=0
. Release binaries will be built with these flags to ensure full functionality. - Various other improvements and fixes.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.11.0-archlinux-x86-64-v2.tar.zst |
Go 1.22 w/ CGO |
shadowsocks-go-v1.11.0-archlinux-x86-64-v3.tar.zst |
Go 1.22 w/ CGO |
shadowsocks-go-v1.11.0-linux-arm64.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.11.0-linux-x86-64-v2.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.11.0-linux-x86-64-v3.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.11.0-macos-arm64.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.11.0-macos-x86-64-v3.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.11.0-windows-arm64.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.11.0-windows-x86-64-v2.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.11.0-windows-x86-64-v3.tar.zst |
Go 1.22 w/o CGO |
© 2024 database64128
v1.10.1 - Patch Release 🛠️
📝 Release Notes
DNS
- Fixed TCP fallback when handling truncated UDP responses.
Release
- Added macOS build.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.10.1-archlinux-x86-64-v2.tar.zst |
Go 1.22 w/ CGO |
shadowsocks-go-v1.10.1-archlinux-x86-64-v3.tar.zst |
Go 1.22 w/ CGO |
shadowsocks-go-v1.10.1-linux-arm64.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.1-linux-x86-64-v2.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.1-linux-x86-64-v3.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.1-macos-arm64.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.1-macos-x86-64-v3.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.1-windows-arm64.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.1-windows-x86-64-v2.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.1-windows-x86-64-v3.tar.zst |
Go 1.22 w/o CGO |
© 2024 database64128
v1.10.0 - Shortcake 🍰
📝 Release Notes
- Upgraded to Go 1.22
- Service: Added "network" field to client configuration for choosing the preferred address family.
- DNS: Improved handling of truncated responses. Truncated UDP DNS responses immediately trigger fallback to TCP without any warning messages. Truncated TCP DNS responses are accepted without causing lookup failures.
- Other fixes and improvements in code.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.10.0-archlinux-x86-64-v2.tar.zst |
Go 1.22 w/ CGO |
shadowsocks-go-v1.10.0-archlinux-x86-64-v3.tar.zst |
Go 1.22 w/ CGO |
shadowsocks-go-v1.10.0-linux-arm64.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.0-linux-x86-64-v2.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.0-linux-x86-64-v3.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.0-windows-arm64.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.0-windows-x86-64-v2.tar.zst |
Go 1.22 w/o CGO |
shadowsocks-go-v1.10.0-windows-x86-64-v3.tar.zst |
Go 1.22 w/o CGO |
© 2024 database64128
v1.9.0 - Pathfinder 🧭
📝 Release Notes
- Upgraded to Go 1.21.
- Service: Added support for Multipath TCP (MPTCP) with an option to explicitly enable or disable it.
- API: Added an option to enable pprof for profiling and debugging.
- HTTP: Fixed a server goroutine leak in the fail path.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.9.0-archlinux-x86-64-v2.tar.zst |
Go 1.21 w/ CGO |
shadowsocks-go-v1.9.0-archlinux-x86-64-v3.tar.zst |
Go 1.21 w/ CGO |
shadowsocks-go-v1.9.0-linux-arm64.tar.zst |
Go 1.21 w/o CGO |
shadowsocks-go-v1.9.0-linux-x86-64-v2.tar.zst |
Go 1.21 w/o CGO |
shadowsocks-go-v1.9.0-linux-x86-64-v3.tar.zst |
Go 1.21 w/o CGO |
shadowsocks-go-v1.9.0-windows-arm64.tar.zst |
Go 1.21 w/o CGO |
shadowsocks-go-v1.9.0-windows-x86-64-v2.tar.zst |
Go 1.21 w/o CGO |
shadowsocks-go-v1.9.0-windows-x86-64-v3.tar.zst |
Go 1.21 w/o CGO |
© 2023 database64128
v1.8.0 - Listen Up, Hands Down 👆
📝 Release Notes
This release introduces multiple listeners per server, system resolver within builtin DNS, and many other changes and improvements.
Service
- Support multiple listeners per server. Each listener has its own listen address and socket options.
- Allow independent TCP and UDP client endpoint addresses.
- Allow customizing initial payload wait timeout and buffer size.
- Relaxed NAT timeout requirements. The previous 60-second minimum NAT timeout is now only enforced on Shadowsocks 2022 servers.
- Use real listen addresses in logs. This reveals the actual assigned random port if no port number is specified in the listen address, or whether the listener is using a dual-stack socket if the IP is unspecified.
Shadowsocks 2022
- Added a new option to allow segmented TCP fixed-length header.
- Refactored sliding window filter to support a customizable size. The default size has been reduced to 256.
Other Improvements
- Logging: Use colored level printer.
- DNS: Added system resolver, improved API and cleaned up message parsing code.
- Startup: UDP client endpoint address resolution is now deferred until first session, and will no longer cause startup failures.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.8.0-archlinux-x86-64-v2.tar.zst |
Go 1.20 w/ CGO |
shadowsocks-go-v1.8.0-archlinux-x86-64-v3.tar.zst |
Go 1.20 w/ CGO |
shadowsocks-go-v1.8.0-linux-arm64.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.8.0-linux-x86-64-v2.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.8.0-linux-x86-64-v3.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.8.0-windows-arm64.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.8.0-windows-x86-64-v2.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.8.0-windows-x86-64-v3.tar.zst |
Go 1.20 w/o CGO |
© 2023 database64128
v1.7.0 - Definitive Optimum 🪻
📝 Release Notes
This release is mostly focused on stuff behind the scenes. New features are relatively small, but can be useful for those who need them.
Router
- Switched to bit set for efficient source server filtering.
- Switched to port set and port range set for efficient source and destination port filtering.
- Port filtering rules can now be defined as a comma-separated list of ports and port ranges.
Networking
- Refactored socket control functions.
- Refactored UDP mmsg path to be allocation-free during use.
- Opened up UDP mmsg path for NetBSD.
- Extended
PKTINFO
support to macOS. - Added traffic class (DiffServ + ECN) support.
- Added
SO_USER_COOKIE
support on FreeBSD.
Other Improvements
- REST API: The returned user list and traffic stats are now sorted by username.
- All: Switched non-crypto RNG from
math/rand
toruntime.fastrand
for performance.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.7.0-archlinux-x86-64-v2.tar.zst |
Go 1.20 w/ CGO |
shadowsocks-go-v1.7.0-archlinux-x86-64-v3.tar.zst |
Go 1.20 w/ CGO |
shadowsocks-go-v1.7.0-linux-arm64.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.7.0-linux-x86-64-v2.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.7.0-linux-x86-64-v3.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.7.0-windows-arm64.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.7.0-windows-x86-64-v2.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.7.0-windows-x86-64-v3.tar.zst |
Go 1.20 w/o CGO |
© 2023 database64128
v1.6.0 - Statistically Speaking 📊
📝 Release Notes
Server uPSK Changes
- Shadowsocks 2022 servers now use a separate uPSK store file for uPSK definitions.
- The server will reload the uPSK store file when a
SIGUSR1
signal is received. - Each uPSK is now paired with a username.
- The username can be used in routing rules.
Features and Fixes
- Added RESTful API for server user management and traffic statistics.
- Fixed data race in Shadowsocks 2022 UDP server that could result in incorrect uPSK being used for response packets.
- Major refactorings to the
zerocopy
package.
📦 Packages
Filename | Build type |
---|---|
shadowsocks-go-v1.6.0-archlinux-x86-64-v2.tar.zst |
Go 1.20 w/ CGO |
shadowsocks-go-v1.6.0-archlinux-x86-64-v3.tar.zst |
Go 1.20 w/ CGO |
shadowsocks-go-v1.6.0-linux-arm64.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.6.0-linux-x86-64-v2.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.6.0-linux-x86-64-v3.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.6.0-windows-arm64.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.6.0-windows-x86-64-v2.tar.zst |
Go 1.20 w/o CGO |
shadowsocks-go-v1.6.0-windows-x86-64-v3.tar.zst |
Go 1.20 w/o CGO |
© 2023 database64128