Skip to content

Commit

Permalink
🆙 Update documentations and bump version to 4.3.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
database64128 committed Oct 18, 2020
1 parent d6d105f commit 3688b41
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 32 deletions.
6 changes: 6 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
4.3.0.0 2020-10-19
- Cleanup and update dependencies (#2983)
- Geosite group validation + PAC regeneration on version update (#2988)
- PAC: add options for direct and proxied groups (#2990)
- Transition to WPF: ForwardProxyView + HotkeysView + OnlineConfigView + VersionUpdatePromptView (#2991)

4.2.1.0 2020-10-12
- SIP008 support (#2942)
- Exclude @cn from PAC proxied list (#2982)
Expand Down
80 changes: 49 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

[中文说明]

#### Features
## Features

1. System proxy configuration
2. PAC mode and global mode
Expand All @@ -15,15 +15,15 @@
6. Supports UDP relay (see Usage)
7. Supports plugins

#### Download
## Downloads

Download the latest release from [release page].

#### Requirements
## Requirements

Microsoft [.NET Framework 4.7.2] or higher, Microsoft [Visual C++ 2015 Redistributable] (x86) .

#### Basic
## Basics

1. Find Shadowsocks icon in the notification tray
2. You can add multiple servers in servers menu
Expand All @@ -33,38 +33,51 @@ proxy addons in your browser, or set them to use system proxy
system proxy. Set Socks5 or HTTP proxy to 127.0.0.1:1080. You can change this
port in `Servers -> Edit Servers`

#### PAC
## PAC

1. You can change PAC rules by editing the PAC file. When you save the PAC file
with any editor, Shadowsocks will notify browsers about the change automatically
2. You can also update PAC file from [GeoSite] \(maintained by 3rd party)
3. You can also use online PAC URL
- The PAC rules are generated from the geosite database in [v2fly/domain-list-community](https://github.com/v2fly/domain-list-community).
- Generation modes: whitelist mode and blacklist mode.
- Domain groups: `geositeDirectGroups` and `geositeProxiedGroups`.
- `geositeDirectGroups` is initialized with `cn` and `geolocation-!cn@cn`.
- `geositeProxiedGroups` is initialized with `geolocation-!cn`.
- To switch between different modes, modify the `geositePreferDirect` property in `gui-config.json`
- When `geositePreferDirect` is false (default), PAC works in whitelist mode. Exception rules are generated from `geositeDirectGroups`. Unmatched domains goes through the proxy.
- 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.
- 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.

### User-defined rules

- 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
```

#### Server Auto Switching
## Server Auto Switching

1. Load balance: choosing server randomly
2. High availability: choosing the best server (low latency and packet loss)
3. Choose By Total Package Loss: ping and choose. Please also enable
`Availability Statistics` in the menu if you want to use this
4. Write your own strategy by implement IStrategy interface and send us a pull request!

#### UDP
## UDP

For UDP, you need to use SocksCap or ProxyCap to force programs you want
to be proxied to tunnel over Shadowsocks

#### Multiple Instances
## Multiple Instances

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.

#### Plugins
## Plugins

If you would like to connect to server via a plugin, please set the plugin's
path (relative or absolute) on Edit Servers form.
Expand All @@ -73,65 +86,70 @@ _Note_: Forward Proxy will not be used while a plugin is enabled.
Details:
[Working with non SIP003 standard Plugin].

#### Global hotkeys
## Global hotkeys

Hotkeys could be registered automatically on startup.
If you are using multiple instances of Shadowsocks,
you must set different key combination for each instance.

##### How to input?
### How to input?

1. Put focus in the corresponding textbox.
2. Press the key combination that you want to use.
3. Release all keys when you think it is ready.
4. Your input appears in the textbox.

##### How to change?
### How to change?

1. Put focus in the corresponding textbox.
2. Press BackSpace key to clear content.
3. Re-input new key combination.

##### How to deactivate?
### How to deactivate?

1. Clear content in the textbox that you want to deactivate,
if you want to deactivate all, please clear all textboxes.
2. Press OK button to confirm.

##### Meaning of label color
### Meaning of label color

- 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.

#### Server Configuration
## Server Configuration

Please visit [Servers] for more information.

#### Experimental
## Experimental

[Experimental Features]

#### Development
## Development

1. [Visual Studio 2017] & [.NET Framework 4.7.2 Developer Pack] are required.
1. [Visual Studio 2019] & [.NET Framework 4.7.2 Developer Pack] are required.
2. It is recommended to share your idea on the Issue Board before you start to work,
especially for feature development.

#### License
## License

[GPLv3]

#### Open Source Components / Libraries
## Open Source Components / Libraries

```
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
Newtonsoft.Json (MIT) https://www.newtonsoft.com/json
StringEx.CS () https://github.com/LazyMode/StringEx
ZXing.Net (Apache 2.0) https://github.com/micjahn/ZXing.Net
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
Expand Down
2 changes: 1 addition & 1 deletion shadowsocks-csharp/Controller/Service/UpdateChecker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public class UpdateChecker

public event EventHandler CheckUpdateCompleted;

public const string Version = "4.2.1.0";
public const string Version = "4.3.0.0";
private readonly Version _version;

public UpdateChecker()
Expand Down

0 comments on commit 3688b41

Please sign in to comment.