You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 4.0 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <img src="Shadowsocks.WPF/Resources/ssw128.png" alt="[logo]" width="48"/> Shadowsocks for Windows
  2. =======================
  3. [![Build](https://github.com/shadowsocks/shadowsocks-windows/workflows/Build/badge.svg)](https://github.com/shadowsocks/shadowsocks-windows/actions?query=workflow%3ABuild)
  4. [![Release](https://github.com/shadowsocks/shadowsocks-windows/workflows/Release/badge.svg)](https://github.com/shadowsocks/shadowsocks-windows/actions?query=workflow%3ARelease)
  5. ## Features
  6. - Connect to Shadowsocks servers.
  7. - Automatically set system proxy.
  8. - SIP002 URL scheme.
  9. - SIP003 plugins.
  10. - SIP008 online configuration delivery.
  11. ## Downloads
  12. Download from [releases](https://github.com/shadowsocks/shadowsocks-windows/releases).
  13. ## Usage
  14. - 🚀
  15. ## PAC
  16. - The PAC rules are generated from the geosite database in [v2fly/domain-list-community](https://github.com/v2fly/domain-list-community).
  17. - Generation modes: whitelist mode and blacklist mode.
  18. - Domain groups: `geositeDirectGroups` and `geositeProxiedGroups`.
  19. - `geositeDirectGroups` is initialized with `cn` and `geolocation-!cn@cn`.
  20. - `geositeProxiedGroups` is initialized with `geolocation-!cn`.
  21. - To switch between different modes, modify the `geositePreferDirect` property in `gui-config.json`
  22. - When `geositePreferDirect` is false (default), PAC works in whitelist mode. Exception rules are generated from `geositeDirectGroups`. Unmatched domains goes through the proxy.
  23. - When `geositePreferDirect` is true, PAC works in blacklist mode. Blocking rules are generated from `geositeProxiedGroups`. Exception rules are generated from `geositeDirectGroups`. Unmatched domains are connected to directly.
  24. - Starting from 4.3.0.0, shadowsocks-windows defaults to whitelist mode with Chinese domains excluded from connecting via the proxy.
  25. - The new default values make sure that:
  26. - When in whitelist mode, Chinese domains, including non-Chinese companies' Chinese CDNs, are connected to directly.
  27. - 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.
  28. ### User-defined rules
  29. - To define your own PAC rules, it's recommended to use the `user-rule.txt` file.
  30. - You can also modify `pac.txt` directly. But your modifications won't persist after updating geosite from the upstream.
  31. ## Development
  32. - IDE: Visual Studio 2019
  33. - Language: C# 9.0
  34. - SDK: .NET 5
  35. ### Build
  36. 1. Clone the repository recursively.
  37. ```bash
  38. $ git clone --recursive https://github.com/shadowsocks/shadowsocks-windows.git
  39. ```
  40. 2. Open the repository in VS2019, switch to the _Release_ configuration, and build the solution.
  41. ### Contribute
  42. `PR welcome`
  43. You can use the [Source Browser](https://ss-windows.cube64128.xyz/) to review code online.
  44. ## License
  45. Shadowsocks-windows is licensed under the [GPLv3](LICENSE.txt) license.
  46. ```
  47. BouncyCastle.NetCore (MIT) https://github.com/chrishaly/bc-csharp
  48. Caseless.Fody (MIT) https://github.com/Fody/Caseless
  49. Costura.Fody (MIT) https://github.com/Fody/Costura
  50. Fody (MIT) https://github.com/Fody/Fody
  51. GlobalHotKey (GPLv3) https://github.com/kirmir/GlobalHotKey
  52. MdXaml (MIT) https://github.com/whistyun/MdXaml
  53. Newtonsoft.Json (MIT) https://www.newtonsoft.com/json
  54. Privoxy (GPLv2) https://www.privoxy.org
  55. ReactiveUI.WPF (MIT) https://github.com/reactiveui/ReactiveUI
  56. ReactiveUI.Events.WPF (MIT) https://github.com/reactiveui/ReactiveUI
  57. ReactiveUI.Fody (MIT) https://github.com/reactiveui/ReactiveUI
  58. ReactiveUI.Validation (MIT) https://github.com/reactiveui/ReactiveUI.Validation
  59. WPFLocalizationExtension (MS-PL) https://github.com/XAMLMarkupExtensions/WPFLocalizationExtension/
  60. ZXing.Net (Apache 2.0) https://github.com/micjahn/ZXing.Net
  61. ```