Top Related Projects
A shadowsocks client for Android
A platform for building proxies to bypass network restrictions.
An unidentifiable mechanism that helps you bypass GFW.
Lantern官方版本下载 蓝灯 翻墙 代理 科学上网 外网 加速器 梯子 路由 - Быстрый, надежный и безопасный доступ к открытому интернету - lantern proxy vpn censorship-circumvention censorship gfw accelerator پراکسی لنترن، ضدسانسور، امن، قابل اعتماد و پرسرعت
A Quantum-Safe Secure Tunnel based on QPP, KCP, FEC, and N:M multiplexing.
Quick Overview
Shadowsocks-windows is an open-source client for the Shadowsocks proxy protocol, designed for Windows operating systems. It provides a user-friendly graphical interface for configuring and managing Shadowsocks connections, allowing users to bypass internet censorship and access restricted content.
Pros
- Easy-to-use graphical interface for managing Shadowsocks connections
- Supports multiple server configurations and quick switching between them
- Regular updates and active community support
- Lightweight and efficient, with minimal system resource usage
Cons
- Limited to Windows operating systems
- Requires a Shadowsocks server to connect to (not included)
- May be blocked or restricted in some regions due to its nature as a circumvention tool
- Limited advanced features compared to some other Shadowsocks clients
Getting Started
- Download the latest release from the GitHub repository.
- Extract the zip file to a desired location on your computer.
- Run the
Shadowsocks.exe
file to start the application. - Click on the Shadowsocks icon in the system tray to open the configuration menu.
- Add a new server configuration by clicking the "+" button and entering the server details (address, port, password, and encryption method).
- Select the newly added server and click "OK" to connect.
- Configure your browser or applications to use the local SOCKS5 proxy (usually
127.0.0.1:1080
).
Note: This is not a code library, so code examples are not applicable.
Competitor Comparisons
A shadowsocks client for Android
Pros of shadowsocks-android
- Native Android implementation, optimized for mobile devices
- Supports VPN mode for system-wide proxy without root
- Integrated QR code scanner for easy server configuration
Cons of shadowsocks-android
- Limited to Android platform, not suitable for desktop users
- May have higher battery consumption due to constant VPN connection
- Fewer advanced features compared to the Windows version
Code Comparison
shadowsocks-android:
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
if (BaseService.usingVpnMode) {
if (prepare(this) != null) {
startActivity(Intent(this, VpnRequestActivity::class.java)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
} else {
startVpn()
}
}
return Service.START_STICKY
}
shadowsocks-windows:
private void UpdateSystemProxy()
{
SystemProxy.Update(config, _enabled);
UpdatePACFromGFWList();
UpdateChainedProxyMode();
}
The Android version focuses on VPN mode implementation, while the Windows version handles system proxy settings and PAC updates. Both repositories are actively maintained and provide Shadowsocks functionality for their respective platforms, with platform-specific optimizations and features.
A platform for building proxies to bypass network restrictions.
Pros of v2ray-core
- More advanced protocol support, including VMess, VLESS, and Trojan
- Better traffic obfuscation and anti-detection capabilities
- Highly customizable and flexible configuration options
Cons of v2ray-core
- Steeper learning curve due to increased complexity
- Higher resource consumption compared to Shadowsocks
- Potentially slower connection speeds in some scenarios
Code Comparison
v2ray-core (Go):
type User struct {
Account Account
Email string
Level uint32
SecuritySettings *SecurityConfig
}
shadowsocks-windows (C#):
public class Server
{
public string server;
public int server_port;
public string password;
public string method;
public string remarks;
}
The code snippets demonstrate the difference in complexity between the two projects. v2ray-core's User struct includes more advanced features like account management and security settings, while shadowsocks-windows' Server class focuses on basic connection parameters.
v2ray-core offers more sophisticated functionality and customization options, making it suitable for advanced users and complex network environments. However, this comes at the cost of increased complexity and potentially higher resource usage. shadowsocks-windows, on the other hand, provides a simpler and more straightforward approach, which may be preferable for users seeking ease of use and lower system requirements.
An unidentifiable mechanism that helps you bypass GFW.
Pros of Trojan
- Better obfuscation and resistance to deep packet inspection
- Simpler protocol design, potentially leading to better performance
- Supports both TCP and UDP traffic
Cons of Trojan
- Less widespread adoption compared to Shadowsocks
- Fewer client implementations available
- May require more complex server setup
Code Comparison
Trojan (C++):
std::string TrojanSession::generate(const std::string& password) {
uint8_t hash[SHA224_DIGEST_LENGTH];
SHA224((const uint8_t*)password.c_str(), password.length(), hash);
return Config::hexify(hash, SHA224_DIGEST_LENGTH);
}
Shadowsocks-Windows (C#):
public static string GetPassword(string password)
{
byte[] passwordBytes = Encoding.UTF8.GetBytes(password);
byte[] hash = MD5.Create().ComputeHash(passwordBytes);
return Convert.ToBase64String(hash);
}
Both projects implement secure password hashing, but Trojan uses SHA-224 while Shadowsocks-Windows uses MD5. Trojan's approach is generally considered more secure due to MD5's known vulnerabilities.
Lantern官方版本下载 蓝灯 翻墙 代理 科学上网 外网 加速器 梯子 路由 - Быстрый, надежный и безопасный доступ к открытому интернету - lantern proxy vpn censorship-circumvention censorship gfw accelerator پراکسی لنترن، ضدسانسور، امن، قابل اعتماد و پرسرعت
Pros of Lantern
- More user-friendly interface, making it easier for non-technical users
- Built-in content delivery network (CDN) for faster access to blocked content
- Supports multiple protocols, including HTTP, HTTPS, and SOCKS5
Cons of Lantern
- Less customizable than Shadowsocks-Windows
- Potential privacy concerns due to centralized infrastructure
- May be less effective in highly restricted networks
Code Comparison
Lantern (Go):
func (c *Client) dialDirect(addr string) (net.Conn, error) {
conn, err := net.DialTimeout("tcp", addr, 10*time.Second)
if err != nil {
return nil, err
}
return conn, nil
}
Shadowsocks-Windows (C#):
private void Connect()
{
IPEndPoint remoteEP = null;
remoteEP = new IPEndPoint(server.ipAddress, server.port);
socket = new Socket(remoteEP.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(remoteEP);
}
Both projects aim to provide secure and unrestricted internet access, but they differ in their approach and implementation. Lantern focuses on ease of use and speed, while Shadowsocks-Windows offers more customization options and potentially better performance in highly restricted environments. The code snippets demonstrate the different languages used (Go for Lantern, C# for Shadowsocks-Windows) and their respective connection methods.
A Quantum-Safe Secure Tunnel based on QPP, KCP, FEC, and N:M multiplexing.
Pros of kcptun
- Utilizes KCP protocol for improved network performance, especially in high-latency or lossy environments
- Offers more advanced network optimization features and customization options
- Can be used with various proxy protocols, not limited to Shadowsocks
Cons of kcptun
- More complex setup and configuration process
- Higher resource consumption due to additional protocol overhead
- May require more frequent updates to maintain compatibility with changing network environments
Code Comparison
kcptun (Go):
func (l *Listener) AcceptKCP() (*UDPSession, error) {
var timeout <-chan time.Time
if l.block != nil {
timeout = time.After(l.block)
}
select {
case conn := <-l.chAccepts:
return conn, nil
case <-timeout:
return nil, &errTimeout{}
}
}
shadowsocks-windows (C#):
private void UpdateServers()
{
foreach (var server in _modifiedConfiguration.configs)
{
_servers.Add(new Server(server));
}
_currentServer = _servers.FirstOrDefault();
}
The code snippets demonstrate different aspects of each project. kcptun focuses on network protocol implementation, while shadowsocks-windows handles server configuration management.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Shadowsocks for Windows
Features
- Connect to Shadowsocks servers.
- Automatically set system proxy.
- SIP002 URL scheme.
- SIP003 plugins.
- SIP008 online configuration delivery.
Downloads
Download from releases.
Usage
- ð
PAC
- 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.
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.
Development
- IDE: Visual Studio 2019
- Language: C# 9.0
- SDK: .NET 5
Build
- Clone the repository recursively.
$ git clone --recursive https://github.com/shadowsocks/shadowsocks-windows.git
- Open the repository in VS2019, switch to the Release configuration, and build the solution.
Contribute
PR welcome
You can use the Source Browser to review code online.
License
Shadowsocks-windows is licensed under the GPLv3 license.
BouncyCastle.NetCore (MIT) https://github.com/chrishaly/bc-csharp
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
Privoxy (GPLv2) https://www.privoxy.org
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
Top Related Projects
A shadowsocks client for Android
A platform for building proxies to bypass network restrictions.
An unidentifiable mechanism that helps you bypass GFW.
Lantern官方版本下载 蓝灯 翻墙 代理 科学上网 外网 加速器 梯子 路由 - Быстрый, надежный и безопасный доступ к открытому интернету - lantern proxy vpn censorship-circumvention censorship gfw accelerator پراکسی لنترن، ضدسانسور، امن، قابل اعتماد و پرسرعت
A Quantum-Safe Secure Tunnel based on QPP, KCP, FEC, and N:M multiplexing.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot