Convert Figma logo to code with AI

hq450 logofancyss

fancyss is a project providing tools to across the GFW on asuswrt/merlin based router.

13,527
3,244
13,527
153

Top Related Projects

25,306

The one and only one gfwlist here

🦄 🎃 👻 V2Ray 路由规则文件加强版,可代替 V2Ray 官方 geoip.dat 和 geosite.dat,适用于 V2Ray、Xray-core、mihomo(Clash-Meta)、hysteria、Trojan-Go 和 leaf。Enhanced edition of V2Ray rules dat files, applicable to V2Ray, Xray-core, mihomo(Clash-Meta), hysteria, Trojan-Go and leaf.

A platform for building proxies to bypass network restrictions.

Bug-fix-only libev port of shadowsocks. Future development moved to shadowsocks-rust

19,729

An unidentifiable mechanism that helps you bypass GFW.

14,499

Reliable UDP Transmission Optimizer based on KCP: Enhancing network efficiency in poor connectivity environments.

Quick Overview

Fancyss is an open-source project that provides a set of scripts and tools for enhancing the functionality of Asuswrt-Merlin firmware on ASUS routers. It focuses on improving network connectivity, especially for users in regions with restricted internet access, by offering features like shadowsocks integration and advanced routing capabilities.

Pros

  • Enhances network connectivity and bypasses regional restrictions
  • Provides a user-friendly web interface for easy configuration
  • Regularly updated to maintain compatibility with the latest Asuswrt-Merlin firmware
  • Offers a wide range of customization options for advanced users

Cons

  • May require technical knowledge to set up and configure properly
  • Potential security risks if not configured correctly
  • Limited compatibility with certain router models
  • Some features may impact router performance on lower-end devices

Getting Started

To get started with fancyss:

  1. Ensure your ASUS router is running Asuswrt-Merlin firmware.
  2. Download the appropriate fancyss package for your router model from the GitHub repository.
  3. Upload the package to your router via the Asuswrt-Merlin web interface.
  4. Install the package and reboot your router.
  5. Access the fancyss configuration page through the router's web interface.
  6. Configure your desired settings, such as shadowsocks servers and routing rules.

Note: Detailed installation instructions and configuration guides are available in the project's documentation on GitHub.

Competitor Comparisons

25,306

The one and only one gfwlist here

Pros of gfwlist

  • Widely used and recognized standard for filtering Chinese internet censorship
  • Regularly updated by community contributors
  • Lightweight and easy to integrate into various tools and applications

Cons of gfwlist

  • Limited to URL-based filtering, which may not cover all censorship techniques
  • Requires manual updates or additional scripts to stay current
  • May include false positives or outdated entries

Code comparison

gfwlist:

||example.com
||example.net
@@||whitelist.example.org

fancyss:

#!/bin/sh
# shadowsocks script for AM380 merlin firmware
# by sadoneli & qcasey
source /koolshare/scripts/base.sh

Summary

gfwlist is a community-maintained list of URLs blocked in China, while fancyss is a comprehensive script for setting up and managing Shadowsocks on specific router firmware. gfwlist focuses on providing a standardized blocklist, whereas fancyss offers a more complete solution for circumventing censorship on supported devices. The choice between them depends on the specific use case and hardware compatibility.

🦄 🎃 👻 V2Ray 路由规则文件加强版,可代替 V2Ray 官方 geoip.dat 和 geosite.dat,适用于 V2Ray、Xray-core、mihomo(Clash-Meta)、hysteria、Trojan-Go 和 leaf。Enhanced edition of V2Ray rules dat files, applicable to V2Ray, Xray-core, mihomo(Clash-Meta), hysteria, Trojan-Go and leaf.

Pros of v2ray-rules-dat

  • More frequently updated ruleset for V2Ray
  • Provides a wider range of rule categories (e.g., geoip, domain lists)
  • Better documentation and usage instructions

Cons of v2ray-rules-dat

  • Focused solely on V2Ray, less versatile for other VPN solutions
  • May require more manual configuration compared to fancyss

Code Comparison

v2ray-rules-dat:

{
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    }
  ]
}

fancyss:

#!/bin/sh

# Check if ss-redir is running
if [ -n "$(pidof ss-redir)" ]; then
    echo "ss-redir is already running"
    exit 0
fi

The code snippets show different approaches: v2ray-rules-dat focuses on V2Ray configuration, while fancyss includes shell scripts for managing VPN processes on routers.

v2ray-rules-dat is more specialized for V2Ray users, offering comprehensive rulesets and frequent updates. fancyss, on the other hand, provides a broader solution for various VPN protocols on router firmware, but may not offer as detailed rulesets for V2Ray specifically.

A platform for building proxies to bypass network restrictions.

Pros of v2ray-core

  • More versatile and supports a wider range of protocols
  • Better performance and lower latency in many scenarios
  • Actively maintained with frequent updates and improvements

Cons of v2ray-core

  • More complex to set up and configure
  • Requires more system resources to run effectively
  • Less user-friendly for beginners compared to fancyss

Code Comparison

v2ray-core (Go):

type User struct {
    Level uint32
    Email string
}

type Account struct {
    Id      string
    AlterId uint32
}

fancyss (Shell):

start_ss() {
    ss-redir -c /koolshare/ss/ss.json -f /var/run/ss-redir.pid
    ss-tunnel -c /koolshare/ss/ss.json -l 23456 -L 8.8.8.8:53 -u
}

v2ray-core is a more powerful and flexible tool for creating secure network tunnels, while fancyss is a simpler solution specifically designed for certain router firmware. v2ray-core offers better performance and protocol support but requires more technical knowledge to set up. fancyss is easier to use but has limited features compared to v2ray-core.

Bug-fix-only libev port of shadowsocks. Future development moved to shadowsocks-rust

Pros of shadowsocks-libev

  • More lightweight and efficient implementation
  • Better performance on embedded devices and low-end hardware
  • Wider platform support, including mobile devices

Cons of shadowsocks-libev

  • Less user-friendly for beginners
  • Fewer built-in features compared to fancyss
  • Requires more manual configuration

Code Comparison

shadowsocks-libev:

static int create_and_bind(const char *host, const char *port,
                           int mptcp, int ipv6first)
{
    struct addrinfo hints;
    struct addrinfo *result, *rp, *ipv4v6bindall;
    int s, listen_sock;

fancyss:

start_ss() {
    echo "Starting shadowsocks..."
    ss-redir -c /koolshare/ss/ss.json -f /var/run/ss-redir.pid
    ss-tunnel -c /koolshare/ss/ss.json -l 5353 -L 8.8.8.8:53 -u
    ss-local -c /koolshare/ss/ss.json -f /var/run/ss-local.pid
}

The code comparison shows that shadowsocks-libev is written in C, focusing on low-level network operations, while fancyss uses shell scripts to manage Shadowsocks processes, indicating a higher-level approach geared towards user-friendly configuration and management on specific router platforms.

19,729

An unidentifiable mechanism that helps you bypass GFW.

Pros of trojan

  • Simpler and more focused protocol, potentially offering better performance
  • Designed to be undetectable, mimicking HTTPS traffic more effectively
  • Cross-platform support with official clients for various operating systems

Cons of trojan

  • Less feature-rich compared to the comprehensive fancyss toolkit
  • May require more manual configuration and setup for advanced use cases
  • Limited to trojan protocol, while fancyss supports multiple protocols

Code Comparison

trojan (config.json):

{
    "run_type": "client",
    "local_addr": "127.0.0.1",
    "local_port": 1080,
    "remote_addr": "example.com",
    "remote_port": 443,
    "password": ["password1"]
}

fancyss (ss_config.sh):

ss_basic_server_ip="server_ip"
ss_basic_server_port="server_port"
ss_basic_password="password"
ss_basic_method="aes-256-cfb"
ss_basic_rss_protocol="origin"

The code snippets demonstrate the configuration differences between trojan and fancyss. trojan uses a JSON format for its configuration, while fancyss employs shell variables. trojan's config is more compact and focuses on essential connection parameters, whereas fancyss includes additional options for various protocols and encryption methods.

14,499

Reliable UDP Transmission Optimizer based on KCP: Enhancing network efficiency in poor connectivity environments.

Pros of kcptun

  • Focuses specifically on network acceleration and packet reliability
  • Lightweight and efficient implementation in Go
  • Supports multiple operating systems and architectures

Cons of kcptun

  • More limited in scope compared to fancyss's broader feature set
  • Requires separate client and server setup
  • May have higher learning curve for non-technical users

Code Comparison

kcptun (server configuration):

kcptun.Listener("0.0.0.0:12948", &KCPConfig{
    MTU:          1350,
    SndWnd:       1024,
    RcvWnd:       1024,
    DataShard:    10,
    ParityShard:  3,
    DSCP:         0,
    NoComp:       false,
    AckNodelay:   true,
    NoDelay:      0,
    Interval:     40,
    Resend:       0,
    NoCongestion: 0,
    SockBuf:      4194304,
    StreamBuf:    2097152,
})

fancyss (configuration snippet):

ss_basic_server_ip="server_address"
ss_basic_server_port="8388"
ss_basic_password="password"
ss_basic_method="aes-256-gcm"
ss_basic_rss_protocol="origin"
ss_basic_rss_obfs="plain"

While kcptun focuses on network protocol optimization, fancyss provides a more comprehensive set of features for configuring and managing Shadowsocks on routers. The code examples highlight the different approaches: kcptun's Go-based configuration for network parameters versus fancyss's shell-based configuration for Shadowsocks settings.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

fancyss - 科学上网

  • Fancyss is a project providing tools to across the GFW on asuswrt/merlin based router with software center.
  • 此项目提供用于asuswrt、asuswrt-merlin为基础的,带软件中心固件(≥384)路由器的科学上网功能。


插件特色

  • 面向华硕 Merlin / 官改固件软件中心环境的透明代理插件,覆盖 arm、hnd、hnd_v8、qca、mtk、ipq32、ipq64 七个平台
  • 支持 SS、SSR、VMess、VLESS、Trojan、NaïveProxy、TUIC、Hysteria2,以及自定义 Xray/V2Ray JSON 节点
  • 支持手动添加、URI 导入、在线订阅三种节点输入方式,支持订阅过滤、二维码分享、订阅 UA 适配
  • 提供 chinadns-ng 和 smartdns 两套 DNS 分流方案,并支持不同分流策略、动态解析 / 预解析切换
  • 支持 gfwlist、大陆白名单、游戏、全局、回国、Xray 节点分流等多种代理模式
  • 支持规则在线维护、节点分流规则集同步、客户端侧规则自动更新,以及 geosite/geoip 资产打包
  • 支持 TCP / UDP 透明代理、QUIC 屏蔽、访问控制、IPv6 相关代理和 DNS 处理
  • 支持单节点延迟检测、批量 Web 延迟测速、运行状态探测、简单故障转移、定时订阅 / 规则 / 二进制更新

支持机型/固件

以下为fancyss 3.0支持的机型/固件,点击机型可以前往相应固件下载地址

最新固件下载地址:https://fw.koolcenter.com/

机型/固件下载类型平台CPU架构linux内核fancyss版本
R6300V2梅改6.x.4708BCM4708armv72.6.36.4fancyss_arm
RT-AC68U梅改6.x.4708BCM4708armv72.6.36.4fancyss_arm
RT-AC88U梅改7.14.114.xBCM4709armv72.6.36.4fancyss_arm
RT-AC3100梅改7.14.114.xBCM4709armv72.6.36.4fancyss_arm
RT-AC5300梅改7.14.114.xBCM4709armv72.6.36.4fancyss_arm
RT-AC86U梅改hndBCM4906armv84.1.27fancyss_hnd_v8
RT-AC86U官改hndBCM4906armv84.1.27fancyss_hnd_v8
GT-AC2900梅改hndBCM4906armv84.1.27fancyss_hnd_v8
GT-AC2900官改hndBCM4906armv84.1.27fancyss_hnd_v8
GT-AC5300官改hndBCM4908armv84.1.27fancyss_hnd_v8
RT-AX88U梅改axhndBCM4908armv84.1.51fancyss_hnd_v8
RT-AX88U官改axhndBCM4908armv84.1.51fancyss_hnd_v8
RAX80梅改axhndBCM4908armv84.1.51fancyss_hnd_v8
GT-AX11000官改axhndBCM4908armv84.1.51fancyss_hnd_v8
GT-AX11000梅改axhndBCM4908armv84.1.51fancyss_hnd_v8
RT-AX92U官改axhndBCM4906armv84.1.51fancyss_hnd_v8
TUF-AX3000官改axhnd.675xBCM6750armv74.1.52fancyss_hnd
TUF-AX5400梅改axhnd.675xBCM6750armv74.1.52fancyss_hnd
TUF-AX5400官改axhnd.675xBCM6750armv74.1.52fancyss_hnd
RT-AX58U梅改axhnd.675xBCM6750armv74.1.52fancyss_hnd
RAX50梅改axhnd.675xBCM6750armv74.1.52fancyss_hnd
RT-AX82U官改axhnd.675xBCM6750armv74.1.52fancyss_hnd
RT-AX82U梅改axhnd.675xBCM6750armv74.1.52fancyss_hnd
ZenWiFi_XT8官改axhnd.675xBCM6755armv74.1.52fancyss_hnd
ZenWiFi_XT8梅改axhnd.675xBCM6755armv74.1.52fancyss_hnd
ZenWiFi_XD4官改axhnd.675xBCM6755armv74.1.52fancyss_hnd
RT-AX56U_V2官改axhnd.675xBCM6755armv74.1.52fancyss_hnd
RT-AX1800梅改axhnd.675xBCM6755armv74.1.52fancyss_hnd
RT-AX56U梅改axhnd.675xBCM6755armv74.1.52fancyss_hnd
RAX70梅改axhnd.675xBCM6755armv74.1.52fancyss_hnd
RT-AX68U官改5.02L.07p2axhndBCM4906armv84.1.52fancyss_hnd_v8
RT-AX68U梅改5.02L.07p2axhndBCM4906armv84.1.52fancyss_hnd_v8
RT-AX86U官改5.02L.07p2axhndBCM4908armv84.1.52fancyss_hnd_v8
RT-AX86U梅改5.02L.07p2axhndBCM4908armv84.1.52fancyss_hnd_v8
GT-AXE11000梅改5.02L.07p2axhndBCM4908armv84.1.52fancyss_hnd_v8
GT-AX6000官改5.04axhnd.675xBCM4912armv84.19.183fancyss_hnd_v8
GT-AX6000梅改5.04axhnd.675xBCM4912armv84.19.183fancyss_hnd_v8
ZenWiFi_Pro_XT12官改5.04axhnd.675xBCM4912armv84.19.183fancyss_hnd_v8
ZenWiFi_Pro_XT12梅改5.04axhnd.675xBCM4912armv84.19.183fancyss_hnd_v8
TUF-AX3000_V2官改5.04axhnd.675xBCM6756armv74.19.183fancyss_hnd
RT-AX86U PRO官改5.04axhnd.675xBCM4912armv84.19.183fancyss_hnd_v8
RT-AX86U PRO梅改5.04axhnd.675xBCM4912armv84.19.183fancyss_hnd_v8
GT-AX11000 PRO官改5.04axhnd.675xBCM4912armv84.19.183fancyss_hnd_v8
GT-AX11000 PRO梅改5.04axhnd.675xBCM4912armv84.19.183fancyss_hnd_v8
RT-BE86U官改5.04behnd.4916BCM4916armv84.19.275fancyss_hnd_v8
RT-BE88U官改5.04behnd.4916BCM4916armv84.19.275fancyss_hnd_v8
GT-BE96官改5.04behnd.4916BCM4916armv84.19.275fancyss_hnd_v8
RT-BE96U梅改5.04behnd.4916BCM4916armv84.19.275fancyss_hnd_v8
GT-BE98_PRO梅改5.04behnd.4916BCM4916armv84.19.275fancyss_hnd_v8
RT-AX89X官改qca-ipq806xipq8074/aarmv714.4.60fancyss_qca
ZenWiFi_BD4官改qca-ipq53xxIPQ5322armv75.4.213fancyss_ipq32
TUF-BE6500官改qca-ipq53xxIPQ5322armv85.4.213fancyss_ipq64
TX-AX6000官改mtk-MT798XMT7986Aarmv85.4.182fancyss_mtk
TUF-AX4200Q官改mtk-MT798XMT7986Aarmv85.4.182fancyss_mtk
GS7官改mtk-7988_7990MT7988Darmv85.4.281fancyss_mtk
ZenWiFi_BT8P官改mtk-7988_7990MT7988Darmv85.4.281fancyss_mtk

版本选择

fancyss 3.0 当前同时区分“平台包”和“包型”两个维度,选包时建议按下面顺序判断。

  1. 先按平台选择包名前缀

    • fancyss_arm:老 BCM470x / armv7 / 2.6 内核机型
    • fancyss_hnd:BCM675x/6755/6756 等 32 位博通平台
    • fancyss_hnd_v8:BCM4906/4908/4912/4916 等 64 位博通平台
    • fancyss_qca:老 QCA/IPQ807x 平台
    • fancyss_mtk:MT798x / MT7988 平台
    • fancyss_ipq32 / fancyss_ipq64:新 QCA IPQ53xx 平台
  2. 再按 full / lite 选择包型

    • full 和 lite 共享绝大部分主功能:透明代理、DNS 分流、规则维护、订阅、Web 延迟测速、故障转移、节点分流,以及 SS/SSR/VMess/VLESS/Trojan/Hysteria2/Xray JSON 等主路径
    • full 额外保留 NaïveProxy / TUIC 相关前端、脚本和二进制,并带上 ipt2socks、haveged、ss_v2ray.sh 以及部分兼容资源
    • lite 主要是为了节省 JFFS 空间,裁掉 NaïveProxy / TUIC 相关资源和少量附属文件;如果你不使用这两类协议,优先选 lite
  3. 选择建议

    • 需要 NaïveProxy 或 TUIC,请选择 full
    • JFFS 空间紧张,或者只使用 SS/SSR/VMess/VLESS/Trojan/Hysteria2/Xray,请选择 lite
    • 在线更新会保持当前平台和包型;要在 full 和 lite 之间切换,需要重新安装对应离线包
    • RT-AX86U、GT-AX6000 这类 armv8 博通机型,应优先选择 fancyss_hnd_v8

插件下载

插件下载有两种方式:

  1. 在packages目录下,点击tar.gz后缀文件,下载当前最新版本的离线安装包
  2. 在fancyss_history_package项目中,包含**历史版本和最新版本**的离线安装包

插件离线包下载导航:

平台最新full版本下载最新lite版本下载历史版本下载(包含最新版)
hndfancyss_hnd_fullfancyss_hnd_litefancyss_hnd
hnd_v8fancyss_hnd_v8_fullfancyss_hnd_v8_litefancyss_hnd_v8
qcafancyss_qca_fullfancyss_qca_litefancyss_qca
armfancyss_arm_fullfancyss_arm_litefancyss_arm
mtkfancyss_mtk_fullfancyss_mtk_litefancyss_mtk
ipq32fancyss_ipq32_fullfancyss_ipq32_litefancyss_ipq32
ipq64fancyss_ipq64_fullfancyss_ipq64_litefancyss_ipq64

插件安装

  1. 离线安装:下载并校验好离线安装包后,在软件中心内使用离线安装/手动安装功能,选择安装包后上传并安装即可。

  2. 命令安装:(以fancyss_hnd_lite.tar.gz为例,先下载好安装包,并将其上传到路由器的/tmp目录)

    mv /tmp/fancyss_hnd_lite.tar.gz /tmp/shadowsocks.tar.gz
    tar -zxvf /tmp/shadowsocks.tar.gz
    sh /tmp/shadowsocks/install.sh
    

使用文档

目前仓库内提供以下协议相关实践文档:

  1. TUIC 配置指南
  2. NaiveProxy 配置实践

关于皮肤

目前插件皮肤支持以下版本:

asuswrt:经典asuswrt皮肤

rog:华硕红色rog皮肤

tuf:华硕橙色tuf皮肤

tx:华硕天选青色皮肤

注意事项

  • 强烈建议使用chrome或者chrouium内核的浏览器!以保证最佳兼容性!
  • 强烈建议在最新版本的固件和最新版本软件中心上使用fancyss_hnd!
  • 插件会自动跟随当前固件的皮肤类型,支持assuwrt、rog、tuf三种皮肤。
  • 一些机型的联名版,只要刷了官改/梅林改版固件的,均能安装本插件!

目录说明

  • **fancyss/**:插件主体源码,也是 build.sh 的直接打包输入目录
  • **binaries/**:上游二进制存档、更新脚本和本项目发布时要同步到各平台 bin-* 的文件
  • **rules_ng/**:传统规则源,如 gfwlist、chnroute、black_list 等
  • **rules_ng2/**:节点分流使用的新规则资产树,包含 site/、ip/、meta/、dat/
  • **scripts/**:仓库级辅助脚本,主要负责 geosite/geoip 资产生成和本地工具链准备
  • **tool/**:自研工具源码子项目(submodule),目前主要是 geotool 和 xapi-tool
  • **packages/**:打包产物目录,包含各平台离线安装包和 version.json.js
  • **doc/**:文档目录,doc/ 根目录是用户文档,其余分类目录主要面向开发和维护

打包插件

build.sh 会把 fancyss/ 复制为临时目录 shadowsocks/,再按平台和包型裁剪二进制、脚本和 Web 页面,最终生成离线安装包。

打包前会自动同步传统规则、重建 rules_ng2 的 geosite/geoip 资产,并从 binaries/ 中拷贝当前指定版本的核心二进制。

  1. 使用 Linux 环境准备仓库,建议带上 submodule 一起拉取

    git clone --recurse-submodules https://github.com/hq450/fancyss.git
    
  2. 切换到 3.0 分支

    cd fancyss
    git checkout 3.0
    
  3. 根据需要修改以下内容

    • 插件运行逻辑:fancyss/
    • 规则资产:rules_ng/、rules_ng2/
    • 二进制版本:binaries/
    • geodata 生成脚本:scripts/
  4. 运行打包脚本

    sh build.sh
    
  5. 当前 build.sh 的实际行为

    • 会先清空并重建 packages/
    • 会生成 7 个平台各 2 个 release 包,共 14 个:fancyss_<platform>_<full|lite>.tar.gz
    • 会额外生成 7 个平台的 full debug 包:fancyss_<platform>_full_debug.tar.gz
    • 生成完成后会同时更新 packages/version.json.js
  6. 如果你只想打某个平台、某种包型,或者不想同时生成 debug 包,直接修改 build.sh 里的 make() 即可

相关链接

Star History

Star History Chart

Footnotes

  1. RT-AX89X采用的SoC为ipq8074/ipq8074A,支持64位系统,但是其固件是32位系统。