- System proxy configuration
- PAC mode and global mode
- GeoSite and user rules
- Supports HTTP proxy
- Supports server auto switching
- Supports UDP relay (see Usage)
- Supports plugins
Download the latest release from release page.
Microsoft .NET Framework 4.7.2 or higher, Microsoft Visual C++ 2015 Redistributable (x86) .
- Find Shadowsocks icon in the notification tray
- You can add multiple servers in servers menu
- Select
Enable System Proxy
menu to enable system proxy. Please disable other proxy addons in your browser, or set them to use system proxy - You can also configure your browser proxy manually if you don't want to enable
system proxy. Set Socks5 or HTTP proxy to 127.0.0.1:1080. You can change this
port in
Servers -> Edit Servers
- The PAC rules are generated from the geosite database in v2fly/domain-list-community.
- Generation modes: whitelist mode and blacklist mode.
- Domain groups:
geositeDirectGroups
andgeositeProxiedGroups
.geositeDirectGroups
is initialized withcn
andgeolocation-!cn@cn
.geositeProxiedGroups
is initialized withgeolocation-!cn
.
- To switch between different modes, modify the
geositePreferDirect
property ingui-config.json
- When
geositePreferDirect
is false (default), PAC works in whitelist mode. Exception rules are generated fromgeositeDirectGroups
. Unmatched domains goes through the proxy. - When
geositePreferDirect
is true, PAC works in blacklist mode. Blocking rules are generated fromgeositeProxiedGroups
. Exception rules are generated fromgeositeDirectGroups
. Unmatched domains are connected to directly.
- When
- Starting from 4.3.0.0, shadowsocks-windows defaults to whitelist mode with Chinese domains excluded from connecting via the proxy.
- The new default values make sure that:
- When in whitelist mode, Chinese domains, including non-Chinese companies' Chinese CDNs, are connected to directly.
- When in blacklist mode, only non-Chinese domains goes through the proxy. Chinese domains, as well as non-Chinese companies' Chinese CDNs, are connected to directly.
- To define your own PAC rules, it's recommended to use the
user-rule.txt
file. - You can also modify
pac.txt
directly. But your modifications won't persist after updating geosite from the upstream.
For Windows10 Store and related applications, please execute the following command under Admin privilege:
netsh winhttp import proxy source=ie
- Load balance: choosing server randomly
- High availability: choosing the best server (low latency and packet loss)
- Choose By Total Package Loss: ping and choose. Please also enable
Availability Statistics
in the menu if you want to use this - Write your own strategy by implement IStrategy interface and send us a pull request!
For UDP, you need to use SocksCap or ProxyCap to force programs you want to be proxied to tunnel over Shadowsocks
If you want to manage multiple servers using other tools like SwitchyOmega, you can start multiple Shadowsocks instances. To avoid configuration conflicts, copy Shadowsocks to a new directory and choose a different local port.
If you would like to connect to server via a plugin, please set the plugin's path (relative or absolute) on Edit Servers form. Note: Forward Proxy will not be used while a plugin is enabled.
Details: Working with non SIP003 standard Plugin.
Hotkeys could be registered automatically on startup. If you are using multiple instances of Shadowsocks, you must set different key combination for each instance.
- Put focus in the corresponding textbox.
- Press the key combination that you want to use.
- Release all keys when you think it is ready.
- Your input appears in the textbox.
- Put focus in the corresponding textbox.
- Press BackSpace key to clear content.
- Re-input new key combination.
- Clear content in the textbox that you want to deactivate, if you want to deactivate all, please clear all textboxes.
- Press OK button to confirm.
- Green: This key combination is not occupied by other programs and register successfully.
- Yellow: This key combination is occupied by other programs and you have to change to another one.
- Transparent without color: The initial status.
Please visit Servers for more information.
- [Visual Studio 2019] & .NET Framework 4.7.2 Developer Pack are required.
- It is recommended to share your idea on the Issue Board before you start to work, especially for feature development.
Caseless.Fody (MIT) https://github.com/Fody/Caseless
Costura.Fody (MIT) https://github.com/Fody/Costura
Fody (MIT) https://github.com/Fody/Fody
GlobalHotKey (GPLv3) https://github.com/kirmir/GlobalHotKey
MdXaml (MIT) https://github.com/whistyun/MdXaml
Newtonsoft.Json (MIT) https://www.newtonsoft.com/json
ReactiveUI.WPF (MIT) https://github.com/reactiveui/ReactiveUI
ReactiveUI.Events.WPF (MIT) https://github.com/reactiveui/ReactiveUI
ReactiveUI.Fody (MIT) https://github.com/reactiveui/ReactiveUI
ReactiveUI.Validation (MIT) https://github.com/reactiveui/ReactiveUI.Validation
WPFLocalizationExtension (MS-PL) https://github.com/XAMLMarkupExtensions/WPFLocalizationExtension/
ZXing.Net (Apache 2.0) https://github.com/micjahn/ZXing.Net
libsscrypto (GPLv2) https://github.com/shadowsocks/libsscrypto
Privoxy (GPLv2) https://www.privoxy.org
Sysproxy () https://github.com/Noisyfox/sysproxy