Open-source project
entr0pia/SwitchyOmega-Whitelist avatar
entr0pia/SwitchyOmega-Whitelist

entr0pia/SwitchyOmega-Whitelist Setup for ZeroOmega

中国大陆域名, SwitchyOmega 白名单规则, 自动更新

1,418 stars109 forksPythonMIT

At a glance

What is it?
SwitchyOmega-Whitelist packages Chinese domain data as SORL rules for ZeroOmega, with remote updates and a smaller alternative list. It suits users who primarily need overseas traffic proxied while allowing listed Chinese domains to connect directly.
Who is it for?
Adopt SwitchyOmega-Whitelist if you use ZeroOmega, normally route overseas traffic through a proxy, and want a remotely updated direct-connection list for Chinese domains. Do not treat it as a VPN, firewall, DNS service, or security scanner.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 7, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • entr0pia/SwitchyOmega-Whitelist1,418 ★ · +5
Star history
Repository2026-10-162026-11-07
entr0pia/SwitchyOmega-Whitelist1.4k1.4k

5 Stars in the last 22 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

SwitchyOmega-Whitelist's Proxy Routing Problem

SwitchyOmega-Whitelist solves a narrow browser proxy-routing problem. It supplies SwitchyOmega-format rules that can keep Chinese mainland domains outside a proxy while overseas sites continue through the user's proxy server. The repository description identifies the project as a whitelist for SwitchyOmega, while the README says its domain content comes primarily from felixonmars/dnsmasq-china-list.

The intended audience is users who frequently visit sites outside China. The README explicitly contrasts this project with the gfwlist blacklist: it says the blacklist fits people who often access domestic Chinese sites, while the whitelist fits people who often access foreign sites. That difference changes the routing objective. A blacklist can send selected destinations through a proxy, whereas this whitelist lets ZeroOmega connect matching destinations directly.

This is not a standalone proxy. It contains no proxy server, user account, VPN configuration, or complete browser policy. ZeroOmega performs the routing, and the user must already have a working proxy-server profile. The repository supplies the domain list and format that the extension consumes.

The project's automation also has a precise scope. Its description says the rules update automatically, but the repository layout includes update.py and generated SORL files rather than a browser application. The documentation does not identify the schedule, CI workflow, validation rules, or publication interval responsible for those updates.

white-list.sorl and white-mini.sorl Data Flow

The repository root contains white-list.sorl, white-mini.sorl, and update.py. The README describes the project as a pure list with automatic updating. Based on that layout, Python is associated with producing or refreshing the rules, while ZeroOmega retrieves the resulting SORL file from a remote URL.

A browser extension does not need the repository cloned locally for the documented workflow. The user adds a remote rule-list URL in ZeroOmega and selects the immediate profile update action. ZeroOmega then retrieves the SORL data and associates its patterns with the automatic-switching profile. The README does not expose the internal SORL syntax, match operators, or rule ordering, so the exact treatment of subdomains and suffix matches cannot be confirmed here.

The normal source is a raw GitHub URL. The README also supplies several proxy-prefixed and CDN-based alternatives for users who cannot retrieve GitHub content directly. Each documented address points to the same white-list.sorl on the master branch. The alternative address changes delivery infrastructure, not the requested rule set.

The mini file follows the same general model but is intended for users who encounter performance problems. The documentation does not state how many entries differ between the files or which entries were removed. It also does not document automatic fallback, so switching from the full list to the mini list remains a configuration decision made by the user.

Installing ZeroOmega and Creating the First Profile

The README does not provide a pip, npm, Docker, or operating-system installation command for this repository. Installation starts with the ZeroOmega browser extension, which is linked from the README. The repository says to use ZeroOmega rather than the original SwitchyOmega extension and cites an article about attacks against browser extensions.

After installing ZeroOmega, open its settings and create two profile modes. The first is a proxy-server profile, which requires connection details appropriate to the user's proxy service. The README does not supply a host, port, protocol, credentials, or test command, so those values cannot be filled in from this project.

Create the second profile as an automatic-switching profile. According to the README, set its rule list to a direct connection and set the newly created proxy-server profile as the default scenario. The interface actions are described in Chinese in the README, including adding a scenario mode, choosing the proxy-server type, and choosing automatic switching. Exact menu labels may differ if the installed ZeroOmega version presents a different interface.

The user should confirm that both profiles appear before adding the repository data. At this stage, automatic switching will not acquire the project's Chinese domain rules until the remote rule-list URL has been added and the profile has been updated.

Adding and Refreshing white-list.sorl

In the automatic-switching profile, select the action for adding a rule list and enter the primary repository URL. The README then instructs the user to update the profile immediately, so ZeroOmega fetches the current contents rather than relying only on a saved URL.

The primary raw GitHub address is:

text
https://raw.githubusercontent.com/entr0pia/SwitchyOmega-Whitelist/master/white-list.sorl

The fenced address above is configuration data rather than a shell command. After entering it, use ZeroOmega's immediate profile update action. A successful load should add or refresh the list within the automatic-switching profile. The documentation does not define a success message, update timestamp, or test procedure, so users should inspect the rule-list state in the extension.

If the primary address cannot be retrieved, the README lists eight alternative URLs. Try them in the documented order because the README labels them as acceleration options and says to try them one by one. The first alternative wraps the same raw URL:

text
https://ghproxy.com/https://raw.githubusercontent.com/entr0pia/SwitchyOmega-Whitelist/master/white-list.sorl

The other documented alternatives are:

text
https://mirror.ghproxy.com/https://raw.githubusercontent.com/entr0pia/SwitchyOmega-Whitelist/master/white-list.sorl
https://ghproxy.net/https://raw.githubusercontent.com/entr0pia/SwitchyOmega-Whitelist/master/white-list.sorl
https://fastly.jsdelivr.net/gh/entr0pia/SwitchyOmega-Whitelist@master/white-list.sorl
https://gcore.jsdelivr.net/gh/entr0pia/SwitchyOmega-Whitelist@master/white-list.sorl
https://jsdelivr.b-cdn.net/gh/entr0pia/SwitchyOmega-Whitelist@master/white-list.sorl
https://raw.fgit.cf/entr0pia/SwitchyOmega-Whitelist/master/white-list.sorl
https://gh-proxy.com/https://raw.githubusercontent.com/entr0pia/SwitchyOmega-Whitelist/master/white-list.sorl

These are delivery choices. The README gives no availability guarantee or synchronization mechanism for the mirrors, so an accessible address is not the same as a verified mirror.

Completing Automatic Switching and Local Exclusions

After updating the profile, the README instructs the user to open the interface and change the initial profile to automatic switching. This is necessary because the automatic-switching profile is where the whitelist is added. The proxy-server profile should retain the user's proxy configuration and serve as the default routing target for destinations that do not match the direct-connection list.

The README also recommends sending google.cn through the proxy. That recommendation belongs to profile configuration rather than an independently documented repository rule. Users must apply and verify it in ZeroOmega according to the extension's interface.

For addresses that should never be proxied, the README recommends adding three entries to the automatic-switching profile's non-proxied address list:

text
<local>
fc00::/7
fe80::/10

The first entry represents local destinations, while the other two entries cover documented private or link-local IPv6 ranges. The README does not explain how ZeroOmega combines these manual exclusions with SORL rules or which condition takes precedence. That interaction should be checked in the configured profile.

If the full list causes a performance problem, replace the remote address with this documented mini list:

text
https://raw.githubusercontent.com/entr0pia/SwitchyOmega-Whitelist/master/white-mini.sorl

Update the profile immediately after changing the URL. The README does not state that the mini file changes routing goals, only that it is offered as an alternative when performance issues occur.

Limits, Alternatives, and Repository Maintenance

The largest limitation is the narrow routing model. SwitchyOmega-Whitelist cannot replace a proxy server, dnsmasq, a firewall, a DNS filtering service, or a threat scanner. It also does not document a local daemon, command-line interface, API, rollback process, or update history exposed through ZeroOmega. If a remote URL becomes unavailable, the documentation provides mirror options but does not describe ZeroOmega's retry or failure behavior.

A more direct alternative exists for users who already operate dnsmasq. The README says the repository's main content comes from felixonmars/dnsmasq-china-list. That upstream project is organized as domain data for dnsmasq, whereas this repository prepares a SORL list for ZeroOmega and documents automatic list generation. A dnsmasq operator can therefore use the upstream domain list in its own DNS workflow, while a ZeroOmega user can consume the browser-oriented SORL file without manually converting it. For users who commonly visit domestic Chinese sites, the README recommends gfwlist instead, because a blacklist addresses the opposite default-routing preference.

The repository is not archived, and its last push was on 2026-10-15. The latest listed release is v1.4, released on 2021-09-30. The repository metadata supports saying that development activity occurred recently, but it does not establish how often the rule file changes or whether every change receives a formal release.

The project uses the MIT license. That identifier permits reuse and modification under the license's terms, but readers should inspect the LICENSE file for its actual conditions and notice requirements. Automatic updates also introduce an operational boundary: users depend on the contents of the master branch unless they take a separate copy and review it, although the README does not document a version-pinning or rollback procedure for ZeroOmega.

Editorial conclusion

Adopt SwitchyOmega-Whitelist if you use ZeroOmega, normally route overseas traffic through a proxy, and want a remotely updated direct-connection list for Chinese domains. Do not treat it as a VPN, firewall, DNS service, or security scanner. Before depending on it, verify that ZeroOmega accepts white-list.sorl, that the initial profile is automatic switching, and that the selected raw URL updates successfully from your network.

Frequently asked questions

How do I install SwitchyOmega-Whitelist?

The repository does not document a Python package installation. Install ZeroOmega, create proxy-server and automatic-switching profiles, then add the white-list.sorl URL as a remote rule list in the automatic-switching profile.

What should I use if SwitchyOmega-Whitelist causes performance problems?

The README recommends trying white-mini.sorl instead of white-list.sorl. It does not document the size difference, which entries are removed, or a measured improvement.

Should I use SwitchyOmega-Whitelist or the gfwlist blacklist?

The README says gfwlist fits people who often access domestic Chinese sites, while SwitchyOmega-Whitelist fits people who often access foreign sites. The blacklist and whitelist direct different groups of destinations in opposite directions.

Official sources

  1. entr0pia/SwitchyOmega-Whitelist on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/entr0pia-switchyomega-whitelist.svg)](https://hysenlabs.com/projects/entr0pia-switchyomega-whitelist)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/entr0pia-switchyomega-whitelist.svg)](https://hysenlabs.com/projects/entr0pia-switchyomega-whitelist)

Was this useful?