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
- 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
Downloads
Download the latest release from release page.
Requirements
.NET Framework 4.8 or higher, Microsoft Visual C++ 2015 Redistributable (x86) .
Basics
- 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
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.
For Windows10 Store and related applications, please execute the following command under Admin privilege:
netsh winhttp import proxy source=ie
Server Auto Switching
- 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!
UDP
For UDP, you need to use SocksCap or ProxyCap to force programs you want to be proxied to tunnel over Shadowsocks
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
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.
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?
- 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.
How to change?
- Put focus in the corresponding textbox.
- Press BackSpace key to clear content.
- Re-input new key combination.
How to deactivate?
- 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.
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
Please visit Servers for more information.
Experimental
Development
- Visual Studio 2019 & .NET Framework 4.8 SDK are required.
- It is recommended to share your idea on the Issue Board before you start to work, especially for feature development.
License
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
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
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