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 7.3 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <img src="shadowsocks-csharp/Resources/ssw128.png" alt="[logo]" width="48"/> Shadowsocks for Windows
  2. =======================
  3. [![Build Status]][Appveyor]
  4. [中文说明]
  5. ## Features
  6. 1. System proxy configuration
  7. 2. PAC mode and global mode
  8. 3. [GeoSite] and user rules
  9. 4. Supports HTTP proxy
  10. 5. Supports server auto switching
  11. 6. Supports UDP relay (see Usage)
  12. 7. Supports plugins
  13. ## Downloads
  14. Download the latest release from [release page].
  15. ## Requirements
  16. .NET Framework 4.8 or higher, Microsoft [Visual C++ 2015 Redistributable] (x86) .
  17. ## Basics
  18. 1. Find Shadowsocks icon in the notification tray
  19. 2. You can add multiple servers in servers menu
  20. 3. Select `Enable System Proxy` menu to enable system proxy. Please disable other
  21. proxy addons in your browser, or set them to use system proxy
  22. 4. You can also configure your browser proxy manually if you don't want to enable
  23. system proxy. Set Socks5 or HTTP proxy to 127.0.0.1:1080. You can change this
  24. port in `Servers -> Edit Servers`
  25. ## PAC
  26. - The PAC rules are generated from the geosite database in [v2fly/domain-list-community](https://github.com/v2fly/domain-list-community).
  27. - Generation modes: whitelist mode and blacklist mode.
  28. - Domain groups: `geositeDirectGroups` and `geositeProxiedGroups`.
  29. - `geositeDirectGroups` is initialized with `cn` and `geolocation-!cn@cn`.
  30. - `geositeProxiedGroups` is initialized with `geolocation-!cn`.
  31. - To switch between different modes, modify the `geositePreferDirect` property in `gui-config.json`
  32. - When `geositePreferDirect` is false (default), PAC works in whitelist mode. Exception rules are generated from `geositeDirectGroups`. Unmatched domains goes through the proxy.
  33. - 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.
  34. - Starting from 4.3.0.0, shadowsocks-windows defaults to whitelist mode with Chinese domains excluded from connecting via the proxy.
  35. - The new default values make sure that:
  36. - When in whitelist mode, Chinese domains, including non-Chinese companies' Chinese CDNs, are connected to directly.
  37. - 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.
  38. ### User-defined rules
  39. - To define your own PAC rules, it's recommended to use the `user-rule.txt` file.
  40. - You can also modify `pac.txt` directly. But your modifications won't persist after updating geosite from the upstream.
  41. For Windows10 Store and related applications, please execute the following command under Admin privilege:
  42. ```
  43. netsh winhttp import proxy source=ie
  44. ```
  45. ## Server Auto Switching
  46. 1. Load balance: choosing server randomly
  47. 2. High availability: choosing the best server (low latency and packet loss)
  48. 3. Choose By Total Package Loss: ping and choose. Please also enable
  49. `Availability Statistics` in the menu if you want to use this
  50. 4. Write your own strategy by implement IStrategy interface and send us a pull request!
  51. ## UDP
  52. For UDP, you need to use SocksCap or ProxyCap to force programs you want
  53. to be proxied to tunnel over Shadowsocks
  54. ## Multiple Instances
  55. If you want to manage multiple servers using other tools like SwitchyOmega,
  56. you can start multiple Shadowsocks instances. To avoid configuration conflicts,
  57. copy Shadowsocks to a new directory and choose a different local port.
  58. ## Plugins
  59. If you would like to connect to server via a plugin, please set the plugin's
  60. path (relative or absolute) on Edit Servers form.
  61. _Note_: Forward Proxy will not be used while a plugin is enabled.
  62. Details:
  63. [Working with non SIP003 standard Plugin].
  64. ## Global hotkeys
  65. Hotkeys could be registered automatically on startup.
  66. If you are using multiple instances of Shadowsocks,
  67. you must set different key combination for each instance.
  68. ### How to input?
  69. 1. Put focus in the corresponding textbox.
  70. 2. Press the key combination that you want to use.
  71. 3. Release all keys when you think it is ready.
  72. 4. Your input appears in the textbox.
  73. ### How to change?
  74. 1. Put focus in the corresponding textbox.
  75. 2. Press BackSpace key to clear content.
  76. 3. Re-input new key combination.
  77. ### How to deactivate?
  78. 1. Clear content in the textbox that you want to deactivate,
  79. if you want to deactivate all, please clear all textboxes.
  80. 2. Press OK button to confirm.
  81. ### Meaning of label color
  82. - Green: This key combination is not occupied by other programs and register successfully.
  83. - Yellow: This key combination is occupied by other programs and you have to change to another one.
  84. - Transparent without color: The initial status.
  85. ## Server Configuration
  86. Please visit [Servers] for more information.
  87. ## Experimental
  88. [Experimental Features]
  89. ## Development
  90. 1. Visual Studio 2019 & .NET Framework 4.8 SDK are required.
  91. 2. It is recommended to share your idea on the Issue Board before you start to work,
  92. especially for feature development.
  93. ## License
  94. [GPLv3]
  95. ## Open Source Components / Libraries
  96. ```
  97. Caseless.Fody (MIT) https://github.com/Fody/Caseless
  98. Costura.Fody (MIT) https://github.com/Fody/Costura
  99. Fody (MIT) https://github.com/Fody/Fody
  100. GlobalHotKey (GPLv3) https://github.com/kirmir/GlobalHotKey
  101. MdXaml (MIT) https://github.com/whistyun/MdXaml
  102. Newtonsoft.Json (MIT) https://www.newtonsoft.com/json
  103. ReactiveUI.WPF (MIT) https://github.com/reactiveui/ReactiveUI
  104. ReactiveUI.Events.WPF (MIT) https://github.com/reactiveui/ReactiveUI
  105. ReactiveUI.Fody (MIT) https://github.com/reactiveui/ReactiveUI
  106. ReactiveUI.Validation (MIT) https://github.com/reactiveui/ReactiveUI.Validation
  107. WPFLocalizationExtension (MS-PL) https://github.com/XAMLMarkupExtensions/WPFLocalizationExtension/
  108. ZXing.Net (Apache 2.0) https://github.com/micjahn/ZXing.Net
  109. libsscrypto (GPLv2) https://github.com/shadowsocks/libsscrypto
  110. Privoxy (GPLv2) https://www.privoxy.org
  111. Sysproxy () https://github.com/Noisyfox/sysproxy
  112. ```
  113. [Appveyor]: https://ci.appveyor.com/project/celeron533/shadowsocks-windows
  114. [Build Status]: https://ci.appveyor.com/api/projects/status/tfw57q6eecippsl5/branch/master?svg=true
  115. [release page]: https://github.com/shadowsocks/shadowsocks-csharp/releases
  116. [GeoSite]: https://github.com/v2fly/domain-list-community
  117. [Servers]: https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#linux--server-side
  118. [中文说明]: https://github.com/shadowsocks/shadowsocks-windows/wiki/Shadowsocks-Windows-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
  119. [Visual C++ 2015 Redistributable]: https://www.microsoft.com/en-us/download/details.aspx?id=53840
  120. [GPLv3]: https://github.com/shadowsocks/shadowsocks-windows/blob/master/LICENSE.txt
  121. [Working with non SIP003 standard Plugin]: https://github.com/shadowsocks/shadowsocks-windows/wiki/Working-with-non-SIP003-standard-Plugin
  122. [Experimental Features]: https://github.com/shadowsocks/shadowsocks-windows/wiki/Experimental