Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
505f90a
Migrate to .NET 10 and modernize WinForms
SlimRG Aug 13, 2026
165e2e0
Code clean up + small fixes
SlimRG Aug 13, 2026
11534c7
Remove sysproxy
SlimRG Aug 13, 2026
9980179
Switch to System.Security.Cryptography
SlimRG Aug 13, 2026
3ec9464
Fix GeoSite logic
SlimRG Aug 13, 2026
faf2267
Switch to Windivert and .Net implementation
SlimRG Aug 15, 2026
28063bb
fix
SlimRG Aug 15, 2026
8be3487
Merge branch 'v4' of https://github.com/SlimRG/shadowsocks-reborn int…
SlimRG Aug 15, 2026
fa5a015
fix
SlimRG Aug 15, 2026
a433f6e
Merge branch 'v4' of https://github.com/SlimRG/shadowsocks-reborn int…
SlimRG Aug 15, 2026
df9392e
fix
SlimRG Aug 15, 2026
9745eeb
Fix CI\CD
SlimRG Aug 15, 2026
e8bf0bb
Refactoring
SlimRG Aug 15, 2026
a4056de
Switch to WinUI
SlimRG Aug 17, 2026
ac787f4
Fix CI\CD
SlimRG Aug 17, 2026
0e891fe
Fix CI\CD
SlimRG Aug 17, 2026
beef642
Fix CI\CD
SlimRG Aug 17, 2026
1516880
Fix CI\CD
SlimRG Aug 17, 2026
1efaebf
Update NuGet vers
SlimRG Aug 17, 2026
6dabf06
Add Plugin system
SlimRG Aug 18, 2026
97ce0ea
Shadowsocks Reborn 5.2.22 — DNSCrypt integration, safer self-updates,…
SlimRG Aug 21, 2026
007ba56
Small fixes CI\CD and docs
SlimRG Aug 21, 2026
9d85547
Fix fckn CI\CD
SlimRG Aug 21, 2026
2bb3b7b
Fixed invalid multiline PowerShell
SlimRG Aug 21, 2026
a221e72
Add DNS Crypt
SlimRG Aug 21, 2026
df0c879
Fix TCP/UDP licks
SlimRG Aug 21, 2026
ddacbc9
Fix autoupdate
SlimRG Aug 21, 2026
80dd797
Fix validator
SlimRG Aug 21, 2026
6785f41
Fix autostart errors
SlimRG Aug 21, 2026
2876d80
Shadowsocks Reborn 5.2.31 is a major stability, networking, DNSCrypt,…
SlimRG Aug 23, 2026
62d1a8c
Fix validator
SlimRG Aug 23, 2026
cb07a68
Try fix validator
SlimRG Aug 23, 2026
1ea119c
Fix translation
SlimRG Aug 23, 2026
81ce94b
Fix validator
SlimRG Aug 23, 2026
ef45ed3
Merge pull request #1 from SlimRG/2.2.31
SlimRG Aug 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
115 changes: 115 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
root = true

[*]
charset = utf-8-bom
end_of_line = crlf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space

[*.{cs,csx}]
indent_size = 4

# Microsoft-style layout and using directives.
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_between_query_expression_clauses = true
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_switch_labels = true
csharp_indent_labels = one_less_than_current
csharp_using_directive_placement = outside_namespace:suggestion
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = false

# Prefer modern C# for new and touched code without forcing a noisy legacy rewrite.
csharp_style_namespace_declarations = file_scoped:silent
csharp_prefer_braces = true:suggestion
csharp_prefer_static_local_function = true:silent
csharp_prefer_simple_using_statement = true:silent
csharp_style_prefer_switch_expression = true:silent
csharp_style_pattern_matching_over_is_with_cast_check = true:silent
csharp_style_pattern_matching_over_as_with_null_check = true:silent
csharp_style_inlined_variable_declaration = true:silent
csharp_style_throw_expression = true:silent
csharp_style_conditional_delegate_call = true:silent
csharp_prefer_simple_default_expression = true:silent

# Use C# keywords and var only when the type is obvious from the expression.
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
dotnet_style_predefined_type_for_member_access = true:silent
csharp_style_var_for_built_in_types = true:silent
csharp_style_var_when_type_is_apparent = true:silent
csharp_style_var_elsewhere = false:silent

# Prefer concise, maintainable expressions where semantics stay clear.
dotnet_style_object_initializer = true:silent
dotnet_style_collection_initializer = true:silent
dotnet_style_prefer_collection_expression = when_types_exactly_match:silent
dotnet_style_coalesce_expression = true:silent
dotnet_style_null_propagation = true:silent
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
dotnet_style_prefer_inferred_tuple_names = true:silent
dotnet_style_prefer_inferred_anonymous_type_member_names = true:silent
dotnet_style_readonly_field = true:silent

# Avoid unnecessary qualification.
dotnet_style_qualification_for_field = false:silent
dotnet_style_qualification_for_property = false:silent
dotnet_style_qualification_for_method = false:silent
dotnet_style_qualification_for_event = false:silent

# Modifier order follows the current .NET runtime convention.
csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:silent

# Spacing.
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = do_not_ignore
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

# Generated sources are not hand-maintained style targets.
[**/*.Designer.cs]
generated_code = true

[*.{csproj,props,targets,resx,config,nuspec}]
indent_size = 2

[*.{json,yml,yaml}]
indent_size = 2

[*.ps1]
indent_size = 2

[*.sh]
charset = utf-8
end_of_line = lf
indent_size = 2

[.gitattributes]
charset = utf-8
end_of_line = crlf
17 changes: 14 additions & 3 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
* text=auto
* text=auto eol=crlf

# geosite database
*.dat binary
# Binary files
*.ico binary
*.png binary
*.pdn binary
*.dat binary
*.dll binary
*.exe binary
*.sys binary
*.zip binary
*.gz binary

# Unix scripts must keep a valid shebang
*.sh text eol=lf
59 changes: 35 additions & 24 deletions .github/ISSUE_TEMPLATE/bug_report_en.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,50 @@
---
---
name: Bug report (English)
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

about: Report a reproducible Shadowsocks Reborn problem
title: ""
labels: bug
assignees: ""
---

<!--
- Shadowsocks is a non-profit open source project. If you bought the service from a provider, please contact them.
- If you have questions rather than Shadowsocks Windows client, please go to https://github.com/shadowsocks
- Please read Wiki carefully, especially https://github.com/shadowsocks/shadowsocks-windows/wiki/Troubleshooting
- And search from Issue Board https://github.com/shadowsocks/shadowsocks-windows/issues?utf8=%E2%9C%93&q=is%3Aissue
- Please include the following information. Questions lacking details will be closed.
-->
<!-- Search existing issues first. Remove credentials, server addresses, subscription URLs, PAC secrets and tokens. -->

### Describe the bug
## Problem

### Environment
Describe the problem and what you expected to happen.

- Shadowsocks client version:
- OS version:
- .NET version:
## Environment

### Steps you have tried
- Shadowsocks Reborn version/commit:
- Windows version/build:
- Installation: release ZIP / source build
- .NET 10 SDK version (source builds only):
- Traffic mode: User / Admin
- System proxy mode: Disabled / PAC / Global
- Launch location: local disk / read-only folder / removable drive

## Steps to reproduce

### What did you expect to see?
1.
2.
3.

## Admin Mode details

### What did you see instead?
<!-- Delete this section when the problem is unrelated to Admin Mode. -->

- Did UAC succeed: yes / no
- WinDivert status on the Traffic page: active / paused / inactive
- Does the log contain `WinDivert capture confirmed`: yes / no
- Was a Game Mode application running: yes / no

### Config and error log in detail (with all sensitive info masked)
## Logs

Paste the complete relevant WARN/ERROR and stack trace.

```text
PASTE SANITIZED LOG HERE
```
PASTE LOG HERE
```

## Additional context

Add screenshots or minimal configuration fragments when useful. Remove private data first.
50 changes: 50 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report_ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
name: Сообщение об ошибке (Русский)
about: Сообщить о воспроизводимой проблеме Shadowsocks Reborn
title: ""
labels: bug
assignees: ""
---

<!-- Сначала проверь существующие Issues. Удали пароли, адреса серверов, subscription URL, PAC secrets и tokens. -->

## Проблема

Опиши, что происходит и какой результат ожидался.

## Окружение

- Версия/commit Shadowsocks Reborn:
- Версия/build Windows:
- Запуск: release ZIP / сборка из исходников
- Версия .NET 10 SDK (только для сборки из исходников):
- Режим трафика: User / Admin
- Системный proxy: Disabled / PAC / Global
- Место запуска: локальный диск / read-only каталог / флешка

## Шаги воспроизведения

1.
2.
3.

## Admin Mode

<!-- Удали раздел, если ошибка не связана с Admin Mode. -->

- UAC прошёл успешно: да / нет
- Статус WinDivert на странице Traffic: активен / приостановлен / неактивен
- Есть ли в логе `WinDivert capture confirmed`: да / нет
- Было ли запущено приложение из списка Game Mode: да / нет

## Логи

Приложи полный относящийся к ошибке WARN/ERROR и stack trace.

```text
ВСТАВЬ ОЧИЩЕННЫЙ ЛОГ
```

## Дополнительно

При необходимости добавь скриншоты или минимальный фрагмент конфига. Сначала удали приватные данные.
53 changes: 30 additions & 23 deletions .github/ISSUE_TEMPLATE/bug_report_zh.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,46 @@
---
name: Bug 报告(中文)
about: 反馈可复现的 Shadowsocks Reborn 客户端问题
title: ""
labels: bug
assignees: ""
---
name: Bug报告 (中文)
about: 反馈Bug
title: ''
labels: bug report
assignees: ''

---
<!-- 提交前请搜索现有 Issue,并删除密码、服务器地址、订阅 URL、PAC secret 和 token。 -->

<!--
- 影梭(Shadowsocks)是一个开源非盈利项目,不提供任何托管服务。如果你是从服务提供商购买的服务,请联系他们。
- 如果你有非影梭Windows客户端相关的问题,请去 https://github.com/shadowsocks
- 提问前请先阅读wiki https://github.com/shadowsocks/shadowsocks-windows/wiki/Troubleshooting.
- 并在Issue Board中搜索 https://github.com/shadowsocks/shadowsocks-windows/issues?utf8=%E2%9C%93&q=is%3Aissue
- 请按照以下格式描述你的问题,描述不清的问题将会被关闭。
-->
## 问题

### 简要描述问题
请描述实际结果和预期结果。

### 环境
## 环境

- Shadowsocks客户端版本:
- 操作系统版本:
- .NET版本:
- Shadowsocks Reborn 版本/commit:
- Windows 版本/build:
- 安装方式:release ZIP / 源码构建
- .NET 10 SDK 版本(仅源码构建):
- 流量模式:User / Admin
- 系统代理模式:Disabled / PAC / Global
- 启动位置:本地磁盘 / 只读目录 / 可移动磁盘

### 操作步骤
## 复现步骤

1.
2.
3.

### 期望的结果
## Admin Mode

<!-- 如果问题与 Admin Mode 无关,请删除本节。 -->

### 实际结果
- UAC 是否成功:是 / 否
- Traffic 页面中的 WinDivert 状态:active / paused / inactive
- 日志中是否有 `WinDivert capture confirmed`:是 / 否
- 是否正在运行 Game Mode 列表中的应用:是 / 否

## 日志

### 配置文件和日志文件(请隐去敏感信息)
请粘贴完整且已脱敏的 WARN/ERROR 和 stack trace。

```
```text
在此粘贴日志
```
40 changes: 26 additions & 14 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,32 @@
---
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

about: Suggest a focused improvement to Shadowsocks Reborn
title: ""
labels: enhancement
assignees: ""
---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
## Problem

What concrete limitation or use case should be addressed?

## Proposed behavior

Describe the desired user-visible result.

## Technical impact

If known, note any impact on:

**Describe the solution you'd like**
A clear and concise description of what you want to happen.
- User Mode / Admin Mode / automatic Game Mode;
- WinDivert or elevated helper behavior;
- PAC / GeoSite / system proxy;
- Registry settings and current LocalAppData/Clean Mode storage behavior;
- Shadowsocks protocol or SIP003 behavior;
- x64 release packaging;
- WinUI 3 UI and localization;
- single-file release / LocalAppData / Temp storage policy.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
## Alternatives

**Additional context**
Add any other context or screenshots about the feature request here.
Describe other approaches you considered.
Loading