├── .github └── workflows │ ├── T2 build.yml │ └── T9 build.yml ├── LICENSE ├── README.md ├── brook └── Makefile ├── chinadns-ng └── Makefile ├── dns2socks └── Makefile ├── dns2tcp └── Makefile ├── gn ├── Makefile └── src │ └── out │ └── last_commit_position.h ├── hysteria └── Makefile ├── ipt2socks └── Makefile ├── lua-neturl ├── Makefile └── patches │ └── 010-userinfo-regex.patch ├── luci-app-bypass ├── Makefile ├── luasrc │ ├── controller │ │ └── bypass.lua │ ├── model │ │ └── cbi │ │ │ └── bypass │ │ │ ├── advanced.lua │ │ │ ├── api.lua │ │ │ ├── app_update.lua │ │ │ ├── base.lua │ │ │ ├── client-config.lua │ │ │ ├── control.lua │ │ │ ├── kcptun.lua │ │ │ ├── log.lua │ │ │ ├── server-config.lua │ │ │ ├── server.lua │ │ │ ├── servers.lua │ │ │ └── xray.lua │ └── view │ │ └── bypass │ │ ├── certupload.htm │ │ ├── check.htm │ │ ├── checkport.htm │ │ ├── kcptun_version.htm │ │ ├── ping.htm │ │ ├── server_list.htm │ │ ├── socket.htm │ │ ├── ssrurl.htm │ │ ├── status.htm │ │ ├── status_bottom.htm │ │ ├── subscribe.htm │ │ └── xray_version.htm ├── po │ ├── zh-cn │ │ └── bypass.po │ └── zh_Hans └── root │ ├── etc │ ├── bypass │ │ ├── black.list │ │ ├── netflix.list │ │ ├── oversea.list │ │ ├── telegram.list │ │ └── white.list │ ├── config │ │ └── bypass │ ├── hotplug.d │ │ └── iface │ │ │ └── 21-bypass │ ├── init.d │ │ └── bypass │ └── uci-defaults │ │ └── luci-bypass │ ├── usr │ └── share │ │ ├── bypass │ │ ├── by-check │ │ ├── by-gfw │ │ ├── by-monitor │ │ ├── by-preload │ │ ├── by-rules │ │ ├── by-switch │ │ ├── checknetwork │ │ ├── chinaipset │ │ ├── gen_config │ │ ├── genred2config │ │ ├── subscribe │ │ └── update │ │ └── rpcd │ │ └── acl.d │ │ └── luci-app-bypass.json │ └── www │ └── luci-static │ └── bypass │ ├── flags │ ├── ad.svg │ ├── ae.svg │ ├── af.svg │ ├── ag.svg │ ├── ai.svg │ ├── al.svg │ ├── am.svg │ ├── ao.svg │ ├── ar.svg │ ├── as.svg │ ├── at.svg │ ├── au.svg │ ├── aw.svg │ ├── ax.svg │ ├── az.svg │ ├── ba.svg │ ├── bb.svg │ ├── bd.svg │ ├── be.svg │ ├── bf.svg │ ├── bg.svg │ ├── bh.svg │ ├── bi.svg │ ├── bj.svg │ ├── bl.svg │ ├── bn.svg │ ├── bo.svg │ ├── bq.svg │ ├── br.svg │ ├── bs.svg │ ├── bt.svg │ ├── bv.svg │ ├── bw.svg │ ├── by.svg │ ├── ca.svg │ ├── cc.svg │ ├── cd.svg │ ├── cf.svg │ ├── cg.svg │ ├── ch.svg │ ├── ci.svg │ ├── ck.svg │ ├── cl.svg │ ├── cm.svg │ ├── cn.svg │ ├── co.svg │ ├── cr.svg │ ├── cu.svg │ ├── cv.svg │ ├── cw.svg │ ├── cx.svg │ ├── cy.svg │ ├── cz.svg │ ├── de.svg │ ├── dj.svg │ ├── dk.svg │ ├── dm.svg │ ├── do.svg │ ├── dz.svg │ ├── ec.svg │ ├── ee.svg │ ├── eg.svg │ ├── eh.svg │ ├── er.svg │ ├── es-ca.svg │ ├── es.svg │ ├── et.svg │ ├── eu.svg │ ├── fi.svg │ ├── fj.svg │ ├── fk.svg │ ├── fm.svg │ ├── fo.svg │ ├── fr.svg │ ├── ga.svg │ ├── gb-eng.svg │ ├── gb-sct.svg │ ├── gb.svg │ ├── gd.svg │ ├── ge.svg │ ├── gf.svg │ ├── gg.svg │ ├── gh.svg │ ├── gi.svg │ ├── gl.svg │ ├── gm.svg │ ├── gn.svg │ ├── gp.svg │ ├── gq.svg │ ├── gr.svg │ ├── gt.svg │ ├── gu.svg │ ├── gw.svg │ ├── gy.svg │ ├── hk.svg │ ├── hm.svg │ ├── hn.svg │ ├── hr.svg │ ├── ht.svg │ ├── hu.svg │ ├── id.svg │ ├── ie.svg │ ├── il.svg │ ├── in.svg │ ├── io.svg │ ├── iq.svg │ ├── is.svg │ ├── it.svg │ ├── je.svg │ ├── jm.svg │ ├── jo.svg │ ├── jp.svg │ ├── ke.svg │ ├── kg.svg │ ├── kh.svg │ ├── ki.svg │ ├── km.svg │ ├── kn.svg │ ├── kp.svg │ ├── kr.svg │ ├── kw.svg │ ├── kz.svg │ ├── la.svg │ ├── lb.svg │ ├── lc.svg │ ├── loading.svg │ ├── lr.svg │ ├── ls.svg │ ├── lt.svg │ ├── lu.svg │ ├── lv.svg │ ├── ly.svg │ ├── ma.svg │ ├── mc.svg │ ├── md.svg │ ├── mf.svg │ ├── mg.svg │ ├── mh.svg │ ├── mk.svg │ ├── ml.svg │ ├── mm.svg │ ├── mn.svg │ ├── mo.svg │ ├── mp.svg │ ├── mq.svg │ ├── mr.svg │ ├── ms.svg │ ├── mt.svg │ ├── mu.svg │ ├── mv.svg │ ├── mw.svg │ ├── mx.svg │ ├── my.svg │ ├── mz.svg │ ├── na.svg │ ├── nc.svg │ ├── ne.svg │ ├── nf.svg │ ├── ng.svg │ ├── ni.svg │ ├── nl.svg │ ├── no.svg │ ├── np.svg │ ├── nr.svg │ ├── nu.svg │ ├── nz.svg │ ├── om.svg │ ├── pa.svg │ ├── pe.svg │ ├── pf.svg │ ├── pg.svg │ ├── ph.svg │ ├── pk.svg │ ├── pl.svg │ ├── pm.svg │ ├── pr.svg │ ├── ps.svg │ ├── pt.svg │ ├── pw.svg │ ├── py.svg │ ├── qa.svg │ ├── re.svg │ ├── ro.svg │ ├── rs.svg │ ├── ru.svg │ ├── rw.svg │ ├── sa.svg │ ├── sb.svg │ ├── sc.svg │ ├── sd.svg │ ├── se.svg │ ├── sg.svg │ ├── si.svg │ ├── sj.svg │ ├── sk.svg │ ├── sl.svg │ ├── sm.svg │ ├── sn.svg │ ├── so.svg │ ├── sr.svg │ ├── ss.svg │ ├── st.svg │ ├── sv.svg │ ├── sy.svg │ ├── sz.svg │ ├── tc.svg │ ├── td.svg │ ├── tf.svg │ ├── tg.svg │ ├── th.svg │ ├── tj.svg │ ├── tk.svg │ ├── tl.svg │ ├── tm.svg │ ├── tn.svg │ ├── to.svg │ ├── tr.svg │ ├── tt.svg │ ├── tv.svg │ ├── tw.svg │ ├── tz.svg │ ├── ua.svg │ ├── ug.svg │ ├── us.svg │ ├── uy.svg │ ├── uz.svg │ ├── vc.svg │ ├── ve.svg │ ├── vi.svg │ ├── vn.svg │ ├── vu.svg │ ├── wf.svg │ ├── ws.svg │ ├── ye.svg │ ├── yt.svg │ ├── za.svg │ └── zw.svg │ └── img │ ├── site_icon1_01.png │ ├── site_icon1_02.png │ ├── site_icon1_03.png │ ├── site_icon1_04.png │ ├── site_icon_01.png │ ├── site_icon_02.png │ ├── site_icon_03.png │ └── site_icon_04.png ├── luci-app-fchomo ├── .prepare.sh ├── Makefile ├── docs │ ├── Ruleset-URI-Scheme.md │ ├── audio │ │ └── A!.mp3 │ ├── css │ │ └── ClearnessDark.css │ ├── example │ │ ├── bypasscn.config │ │ └── gfwlist.config │ └── img │ │ └── shark-taiko.gif ├── htdocs │ └── luci-static │ │ └── resources │ │ ├── fchomo.js │ │ └── view │ │ └── fchomo │ │ ├── client.js │ │ ├── global.js │ │ ├── hosts.js │ │ ├── log.js │ │ ├── node.js │ │ ├── ruleset.js │ │ └── server.js ├── po │ ├── templates │ │ └── fchomo.pot │ ├── zh-cn │ ├── zh_Hans │ │ └── fchomo.po │ └── zh_Hant │ │ └── fchomo.po └── root │ ├── etc │ ├── capabilities │ │ └── fchomo.json │ ├── config │ │ └── fchomo │ ├── init.d │ │ └── fchomo │ └── uci-defaults │ │ ├── luci-app-fchomo │ │ ├── luci-app-fchomo-migration │ │ └── luci-app-fchomo-migration_rule │ └── usr │ ├── libexec │ └── fchomo │ │ ├── clean_log.sh │ │ ├── natcheck.sh │ │ └── update_resources.sh │ └── share │ ├── fchomo │ ├── firewall_post.ut │ ├── firewall_pre.ut │ ├── generate_client.uc │ └── generate_server.uc │ ├── luci │ └── menu.d │ │ └── luci-app-fchomo.json │ ├── rpcd │ ├── acl.d │ │ └── luci-app-fchomo.json │ └── ucode │ │ └── luci.fchomo │ └── ucode │ └── fchomo.uc ├── luci-app-homeproxy ├── LICENSE ├── Makefile ├── README ├── htdocs │ └── luci-static │ │ └── resources │ │ ├── homeproxy.js │ │ └── view │ │ └── homeproxy │ │ ├── client.js │ │ ├── node.js │ │ ├── server.js │ │ └── status.js ├── po │ ├── templates │ │ └── homeproxy.pot │ ├── zh-cn │ └── zh_Hans │ │ └── homeproxy.po └── root │ ├── etc │ ├── capabilities │ │ └── homeproxy.json │ ├── config │ │ └── homeproxy │ ├── homeproxy │ │ ├── resources │ │ │ ├── china_ip4.txt │ │ │ ├── china_ip4.ver │ │ │ ├── china_ip6.txt │ │ │ ├── china_ip6.ver │ │ │ ├── china_list.txt │ │ │ ├── china_list.ver │ │ │ ├── gfw_list.txt │ │ │ └── gfw_list.ver │ │ └── scripts │ │ │ ├── clean_log.sh │ │ │ ├── firewall_post.ut │ │ │ ├── firewall_pre.uc │ │ │ ├── generate_client.uc │ │ │ ├── generate_server.uc │ │ │ ├── homeproxy.uc │ │ │ ├── migrate_config.uc │ │ │ ├── update_crond.sh │ │ │ ├── update_resources.sh │ │ │ └── update_subscriptions.uc │ ├── init.d │ │ └── homeproxy │ └── uci-defaults │ │ ├── luci-homeproxy │ │ └── luci-homeproxy-migration │ └── usr │ └── share │ ├── luci │ └── menu.d │ │ └── luci-app-homeproxy.json │ └── rpcd │ ├── acl.d │ └── luci-app-homeproxy.json │ └── ucode │ └── luci.homeproxy ├── luci-app-mosdns ├── Makefile ├── luasrc │ ├── controller │ │ └── mosdns.lua │ ├── model │ │ └── cbi │ │ │ └── mosdns │ │ │ ├── basic.lua │ │ │ ├── log.lua │ │ │ ├── rule_list.lua │ │ │ └── update.lua │ └── view │ │ └── mosdns │ │ ├── mosdns_editor.htm │ │ ├── mosdns_flush_cache.htm │ │ ├── mosdns_geo_update.htm │ │ ├── mosdns_log.htm │ │ └── mosdns_status.htm ├── po │ ├── zh-cn │ │ └── mosdns.po │ └── zh_Hans └── root │ ├── etc │ ├── config │ │ └── mosdns │ ├── hotplug.d │ │ └── iface │ │ │ └── 99-mosdns │ ├── init.d │ │ └── mosdns │ ├── mosdns │ │ ├── config_custom.yaml │ │ └── rule │ │ │ ├── blocklist.txt │ │ │ ├── cloudflare-cidr.txt │ │ │ ├── ddnslist.txt │ │ │ ├── greylist.txt │ │ │ ├── hosts.txt │ │ │ ├── local-ptr.txt │ │ │ ├── redirect.txt │ │ │ ├── streaming.txt │ │ │ └── whitelist.txt │ └── uci-defaults │ │ └── luci-mosdns │ ├── usr │ └── share │ │ ├── mosdns │ │ ├── cache.dump │ │ └── mosdns.sh │ │ └── rpcd │ │ └── acl.d │ │ └── luci-app-mosdns.json │ └── www │ └── luci-static │ └── resources │ └── mosdns │ ├── addon │ └── fold │ │ ├── foldcode.js │ │ ├── foldgutter.css │ │ ├── foldgutter.js │ │ └── indent-fold.js │ ├── lib │ ├── codemirror.css │ └── codemirror.js │ ├── mode │ └── yaml │ │ └── yaml.js │ └── theme │ └── dracula.css ├── luci-app-nikki ├── Makefile ├── htdocs │ └── luci-static │ │ └── resources │ │ ├── tools │ │ └── nikki.js │ │ └── view │ │ └── nikki │ │ ├── app.js │ │ ├── editor.js │ │ ├── log.js │ │ ├── mixin.js │ │ ├── profile.js │ │ └── proxy.js ├── po │ ├── templates │ │ └── nikki.pot │ ├── zh-cn │ └── zh_Hans │ │ └── nikki.po └── root │ └── usr │ └── share │ ├── luci │ └── menu.d │ │ └── luci-app-nikki.json │ └── rpcd │ ├── acl.d │ └── luci-app-nikki.json │ └── ucode │ └── luci.nikki ├── luci-app-openclash ├── Makefile ├── luasrc │ ├── controller │ │ └── openclash.lua │ ├── model │ │ └── cbi │ │ │ └── openclash │ │ │ ├── client.lua │ │ │ ├── config-overwrite.lua │ │ │ ├── config-subscribe-edit.lua │ │ │ ├── config-subscribe.lua │ │ │ ├── config.lua │ │ │ ├── custom-dns-edit.lua │ │ │ ├── game-rules-file-manage.lua │ │ │ ├── game-rules-manage.lua │ │ │ ├── groups-config.lua │ │ │ ├── log.lua │ │ │ ├── other-file-edit.lua │ │ │ ├── other-rules-edit.lua │ │ │ ├── proxy-provider-config.lua │ │ │ ├── proxy-provider-file-manage.lua │ │ │ ├── rule-providers-config.lua │ │ │ ├── rule-providers-file-manage.lua │ │ │ ├── rule-providers-manage.lua │ │ │ ├── rule-providers-settings.lua │ │ │ ├── servers-config.lua │ │ │ ├── servers.lua │ │ │ └── settings.lua │ ├── openclash.lua │ └── view │ │ └── openclash │ │ ├── cfg_check.htm │ │ ├── config_editor.htm │ │ ├── debug.htm │ │ ├── developer.htm │ │ ├── dler_login.htm │ │ ├── dlercloud.htm │ │ ├── download_rule.htm │ │ ├── dvalue.htm │ │ ├── flush_fakeip_cache.htm │ │ ├── input_file_name.htm │ │ ├── input_rename.htm │ │ ├── log.htm │ │ ├── myip.htm │ │ ├── other_button.htm │ │ ├── other_stream_option.htm │ │ ├── select_git_cdn.htm │ │ ├── server_url.htm │ │ ├── status.htm │ │ ├── sub_info_show.htm │ │ ├── switch_dashboard.htm │ │ ├── switch_mode.htm │ │ ├── tblsection.htm │ │ ├── tblsection_dns.htm │ │ ├── toolbar_show.htm │ │ ├── update.htm │ │ ├── update_config.htm │ │ └── upload.htm ├── po │ ├── zh-cn │ │ └── openclash.zh-cn.po │ └── zh_Hans ├── root │ ├── etc │ │ ├── config │ │ │ └── openclash │ │ ├── init.d │ │ │ └── openclash │ │ ├── openclash │ │ │ ├── Country.mmdb │ │ │ ├── GeoIP.dat │ │ │ ├── GeoSite.dat │ │ │ ├── china_ip6_route.ipset │ │ │ ├── china_ip_route.ipset │ │ │ ├── custom │ │ │ │ ├── openclash_custom_chnroute6_pass.list │ │ │ │ ├── openclash_custom_chnroute_pass.list │ │ │ │ ├── openclash_custom_domain_dns.list │ │ │ │ ├── openclash_custom_domain_dns_policy.list │ │ │ │ ├── openclash_custom_fake_filter.list │ │ │ │ ├── openclash_custom_fallback_filter.yaml │ │ │ │ ├── openclash_custom_firewall_rules.sh │ │ │ │ ├── openclash_custom_hosts.list │ │ │ │ ├── openclash_custom_localnetwork_ipv4.list │ │ │ │ ├── openclash_custom_localnetwork_ipv6.list │ │ │ │ ├── openclash_custom_overwrite.sh │ │ │ │ ├── openclash_custom_rules.list │ │ │ │ ├── openclash_custom_rules_2.list │ │ │ │ └── openclash_custom_sniffer.yaml │ │ │ ├── game_rules │ │ │ │ ├── CS-GO.rules │ │ │ │ ├── Monster-Hunter-World.rules │ │ │ │ └── Steam.rules │ │ │ └── rule_provider │ │ │ │ ├── ABC │ │ │ │ ├── AI Suite │ │ │ │ ├── Abema_TV │ │ │ │ ├── Amazon │ │ │ │ ├── Apple │ │ │ │ ├── Apple_Music │ │ │ │ ├── Apple_News │ │ │ │ ├── Apple_TV │ │ │ │ ├── BBC_iPlayer │ │ │ │ ├── Bahamut │ │ │ │ ├── Bilibili │ │ │ │ ├── Crypto │ │ │ │ ├── DAZN │ │ │ │ ├── Discord │ │ │ │ ├── Discovery_Plus │ │ │ │ ├── Disney_Plus │ │ │ │ ├── Domestic │ │ │ │ ├── Domestic_IPs │ │ │ │ ├── F1_TV │ │ │ │ ├── FCM │ │ │ │ ├── Fox+ │ │ │ │ ├── Fox_Now │ │ │ │ ├── Google FCM │ │ │ │ ├── HBO │ │ │ │ ├── HBO_Go │ │ │ │ ├── HBO_Max │ │ │ │ ├── Hulu │ │ │ │ ├── Hulu_Japan │ │ │ │ ├── IQI │ │ │ │ ├── IQYI │ │ │ │ ├── JOOX │ │ │ │ ├── Japonx │ │ │ │ ├── KKBOX │ │ │ │ ├── KKTV │ │ │ │ ├── LAN │ │ │ │ ├── Letv │ │ │ │ ├── Line_TV │ │ │ │ ├── Microsoft │ │ │ │ ├── Netease_Music │ │ │ │ ├── Netflix │ │ │ │ ├── Niconico │ │ │ │ ├── PBS │ │ │ │ ├── Pandora │ │ │ │ ├── PayPal │ │ │ │ ├── Pornhub │ │ │ │ ├── Proxy │ │ │ │ ├── Reject │ │ │ │ ├── Scholar │ │ │ │ ├── Soundcloud │ │ │ │ ├── Special │ │ │ │ ├── Speedtest │ │ │ │ ├── Spotify │ │ │ │ ├── Steam │ │ │ │ ├── Telegram │ │ │ │ ├── Tencent_Video │ │ │ │ ├── ViuTV │ │ │ │ ├── WeTV │ │ │ │ ├── YouTube │ │ │ │ ├── Youku │ │ │ │ ├── encoreTVB │ │ │ │ ├── iQiyi │ │ │ │ ├── miHoYo │ │ │ │ └── myTV_SUPER │ │ └── uci-defaults │ │ │ └── luci-openclash │ ├── usr │ │ └── share │ │ │ ├── openclash │ │ │ ├── YAML.rb │ │ │ ├── cfg_unused_servers_del.sh │ │ │ ├── clash_version.sh │ │ │ ├── log.sh │ │ │ ├── openclash.sh │ │ │ ├── openclash_chnroute.sh │ │ │ ├── openclash_core.sh │ │ │ ├── openclash_curl.sh │ │ │ ├── openclash_custom_domain_dns.sh │ │ │ ├── openclash_debug.sh │ │ │ ├── openclash_debug_dns.lua │ │ │ ├── openclash_debug_getcon.lua │ │ │ ├── openclash_dler_checkin.lua │ │ │ ├── openclash_download_dashboard.sh │ │ │ ├── openclash_download_rule_list.sh │ │ │ ├── openclash_geoasn.sh │ │ │ ├── openclash_geoip.sh │ │ │ ├── openclash_geosite.sh │ │ │ ├── openclash_get_network.lua │ │ │ ├── openclash_history_get.sh │ │ │ ├── openclash_ipdb.sh │ │ │ ├── openclash_ps.sh │ │ │ ├── openclash_rule.sh │ │ │ ├── openclash_streaming_unlock.lua │ │ │ ├── openclash_update.sh │ │ │ ├── openclash_urlencode.lua │ │ │ ├── openclash_version.sh │ │ │ ├── openclash_watchdog.sh │ │ │ ├── res │ │ │ │ ├── default.yaml │ │ │ │ ├── game_rules.list │ │ │ │ ├── lhie1.yaml │ │ │ │ ├── rule_providers.list │ │ │ │ └── sub_ini.list │ │ │ ├── ruby.sh │ │ │ ├── ui │ │ │ │ ├── dashboard │ │ │ │ │ ├── CNAME │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── index-41a41303.css │ │ │ │ │ │ ├── index-abc6db04.js │ │ │ │ │ │ ├── logo-b453e72f.png │ │ │ │ │ │ └── vendor-0c169955.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── manifest.webmanifest │ │ │ │ │ ├── sw.js │ │ │ │ │ └── workbox-4de3aa5f.js │ │ │ │ ├── metacubexd │ │ │ │ │ ├── CNAME │ │ │ │ │ ├── apple-touch-icon-180x180.png │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── Config-B1EwbU18.js │ │ │ │ │ │ ├── Connections-WHEuHC_k.js │ │ │ │ │ │ ├── DocumentTitle-qgMGpI7d.js │ │ │ │ │ │ ├── FiraSans-Regular-BN6hITtY.ttf │ │ │ │ │ │ ├── IconReload-bqqdFQ5q.js │ │ │ │ │ │ ├── Logs-DmnD-Vbh.js │ │ │ │ │ │ ├── Overview-BigJMrEz.js │ │ │ │ │ │ ├── Proxies-DCaTGxZZ.js │ │ │ │ │ │ ├── Rules-T7FAMMsr.js │ │ │ │ │ │ ├── Setup-2nY6XKtT.js │ │ │ │ │ │ ├── Twemoji.Mozilla-BSQKJ6aF.ttf │ │ │ │ │ │ ├── fira-sans-cyrillic-400-normal-9itZEwnn.woff2 │ │ │ │ │ │ ├── fira-sans-cyrillic-400-normal-DivIpeVh.woff │ │ │ │ │ │ ├── fira-sans-cyrillic-ext-400-normal-Ct_d_4pr.woff │ │ │ │ │ │ ├── fira-sans-cyrillic-ext-400-normal-DVFiJ7cT.woff2 │ │ │ │ │ │ ├── fira-sans-greek-400-normal-B4JJYYvj.woff │ │ │ │ │ │ ├── fira-sans-greek-400-normal-xziLJ4od.woff2 │ │ │ │ │ │ ├── fira-sans-greek-ext-400-normal-BA5_ngob.woff │ │ │ │ │ │ ├── fira-sans-greek-ext-400-normal-DDGpGFz4.woff2 │ │ │ │ │ │ ├── fira-sans-latin-400-normal-CRr34ncs.woff │ │ │ │ │ │ ├── fira-sans-latin-400-normal-DqUVgETp.woff2 │ │ │ │ │ │ ├── fira-sans-latin-ext-400-normal-BsVau5p6.woff2 │ │ │ │ │ │ ├── fira-sans-latin-ext-400-normal-Cah6ivqJ.woff │ │ │ │ │ │ ├── fira-sans-vietnamese-400-normal-CiKzo2z6.woff │ │ │ │ │ │ ├── fira-sans-vietnamese-400-normal-D5T8w5kG.woff2 │ │ │ │ │ │ ├── index-BfxF6Zjo.js │ │ │ │ │ │ ├── index-Bg_1VLqf.css │ │ │ │ │ │ ├── index-CXfh_Ffl.js │ │ │ │ │ │ └── time-M8P-MK1v.js │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── favicon.svg │ │ │ │ │ ├── index.html │ │ │ │ │ ├── manifest.webmanifest │ │ │ │ │ ├── maskable-icon-512x512.png │ │ │ │ │ ├── pwa-192x192.png │ │ │ │ │ ├── pwa-512x512.png │ │ │ │ │ ├── pwa-64x64.png │ │ │ │ │ ├── registerSW.js │ │ │ │ │ ├── sw.js │ │ │ │ │ └── workbox-3e8df8c8.js │ │ │ │ ├── yacd │ │ │ │ │ ├── CNAME │ │ │ │ │ ├── Twemoji_Mozilla.ttf │ │ │ │ │ ├── _headers │ │ │ │ │ ├── apple-touch-icon-precomposed.png │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── BaseModal-e9f180d4.css │ │ │ │ │ │ ├── BaseModal-f42f892a.js │ │ │ │ │ │ ├── Config-0abd223e.js │ │ │ │ │ │ ├── Config-7eb3f1bb.css │ │ │ │ │ │ ├── Connections-796224c1.css │ │ │ │ │ │ ├── Connections-c9877694.js │ │ │ │ │ │ ├── Fab-0b65516b.css │ │ │ │ │ │ ├── Fab-47e19297.js │ │ │ │ │ │ ├── Input-e46653b4.js │ │ │ │ │ │ ├── Logs-7103293e.js │ │ │ │ │ │ ├── Logs-beb8fc98.css │ │ │ │ │ │ ├── Proxies-70a463d2.js │ │ │ │ │ │ ├── Proxies-dfd53d55.css │ │ │ │ │ │ ├── Rules-162ef666.css │ │ │ │ │ │ ├── Rules-a8c74e6e.js │ │ │ │ │ │ ├── Select-04258549.js │ │ │ │ │ │ ├── Select-20369999.css │ │ │ │ │ │ ├── TextFitler-3b17a569.js │ │ │ │ │ │ ├── TextFitler-cbc3b0fe.css │ │ │ │ │ │ ├── Twemoji_Mozilla-6d90152e.ttf │ │ │ │ │ │ ├── chart-lib-9fcc76b8.js │ │ │ │ │ │ ├── debounce-c1ba2006.js │ │ │ │ │ │ ├── en-f84bd3d3.js │ │ │ │ │ │ ├── index-1a05af9b.js │ │ │ │ │ │ ├── index-6d3641b0.js │ │ │ │ │ │ ├── index-7d3e766d.css │ │ │ │ │ │ ├── index-84fa0cb3.js │ │ │ │ │ │ ├── inter-latin-400-normal-0364d368.woff2 │ │ │ │ │ │ ├── inter-latin-400-normal-3ea830d4.woff │ │ │ │ │ │ ├── inter-latin-800-normal-a51ac27d.woff2 │ │ │ │ │ │ ├── inter-latin-800-normal-d08d7178.woff │ │ │ │ │ │ ├── logs-ca50193b.js │ │ │ │ │ │ ├── memoize-one.esm-efa1e849.js │ │ │ │ │ │ ├── play-cb571d64.js │ │ │ │ │ │ ├── roboto-mono-latin-400-normal-7295944e.woff2 │ │ │ │ │ │ ├── roboto-mono-latin-400-normal-dffdffa7.woff │ │ │ │ │ │ ├── rotate-cw-e799f805.js │ │ │ │ │ │ ├── useRemainingViewPortHeight-dbe2192e.js │ │ │ │ │ │ ├── vi-75c7db25.js │ │ │ │ │ │ ├── zh-cn-d82b820c.js │ │ │ │ │ │ └── zh-tw-9cdfa61b.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── manifest.webmanifest │ │ │ │ │ ├── registerSW.js │ │ │ │ │ ├── sw.js │ │ │ │ │ ├── yacd.ico │ │ │ │ │ └── yacd.png │ │ │ │ └── zashboard │ │ │ │ │ ├── apple-touch-icon.png │ │ │ │ │ ├── assets │ │ │ │ │ ├── NotoColorEmoji-flagsonly-CWWDk9km.ttf │ │ │ │ │ ├── index-CZi4yu0u.css │ │ │ │ │ ├── index-btPsSEfJ.js │ │ │ │ │ └── metacubex-BlQkOUXT.jpg │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── favicon.svg │ │ │ │ │ ├── icon.svg │ │ │ │ │ ├── index.html │ │ │ │ │ ├── manifest.webmanifest │ │ │ │ │ ├── pwa-192x192.png │ │ │ │ │ ├── pwa-512x512.png │ │ │ │ │ ├── pwa-maskable-192x192.png │ │ │ │ │ ├── pwa-maskable-512x512.png │ │ │ │ │ ├── registerSW.js │ │ │ │ │ ├── sw.js │ │ │ │ │ └── workbox-3e8df8c8.js │ │ │ ├── yml_change.sh │ │ │ ├── yml_groups_get.sh │ │ │ ├── yml_groups_name_ch.sh │ │ │ ├── yml_groups_name_get.sh │ │ │ ├── yml_groups_set.sh │ │ │ ├── yml_proxys_get.sh │ │ │ ├── yml_proxys_set.sh │ │ │ └── yml_rules_change.sh │ │ │ ├── rpcd │ │ │ └── acl.d │ │ │ │ └── luci-app-openclash.json │ │ │ └── ucitrack │ │ │ └── luci-app-openclash.json │ └── www │ │ └── luci-static │ │ └── resources │ │ └── openclash │ │ ├── addon │ │ ├── dialog │ │ │ ├── dialog.css │ │ │ └── dialog.js │ │ ├── display │ │ │ ├── autorefresh.js │ │ │ ├── fullscreen.css │ │ │ └── fullscreen.js │ │ ├── edit │ │ │ └── matchbrackets.js │ │ ├── fold │ │ │ ├── foldcode.js │ │ │ ├── foldgutter.css │ │ │ ├── foldgutter.js │ │ │ └── indent-fold.js │ │ ├── lint │ │ │ ├── js-yaml.min.js │ │ │ ├── lint.css │ │ │ ├── lint.js │ │ │ └── yaml-lint.js │ │ ├── merge │ │ │ ├── diff_match_patch.js │ │ │ ├── merge.css │ │ │ └── merge.js │ │ ├── scroll │ │ │ └── annotatescrollbar.js │ │ ├── search │ │ │ ├── jump-to-line.js │ │ │ ├── match-highlighter.js │ │ │ ├── matchesonscrollbar.css │ │ │ ├── matchesonscrollbar.js │ │ │ ├── search.js │ │ │ └── searchcursor.js │ │ └── selection │ │ │ └── active-line.js │ │ ├── img │ │ ├── Sponsor.svg │ │ ├── Star.svg │ │ ├── Telegram.svg │ │ ├── Tutorials.svg │ │ ├── Wiki.svg │ │ ├── arrow-clockwise-light.svg │ │ ├── eye-light.svg │ │ ├── eye-slash-light.svg │ │ ├── logo.png │ │ ├── megaphone-simple.svg │ │ ├── version.svg │ │ └── wrench-light.svg │ │ ├── lib │ │ ├── codemirror.css │ │ └── codemirror.js │ │ ├── mode │ │ ├── lua │ │ │ └── lua.js │ │ ├── shell │ │ │ └── shell.js │ │ └── yaml │ │ │ └── yaml.js │ │ └── theme │ │ ├── idea.css │ │ ├── material-log.css │ │ └── material.css └── tools │ └── po2lmo │ ├── Makefile │ └── src │ ├── po2lmo │ ├── po2lmo.c │ ├── template_lmo.c │ └── template_lmo.h ├── luci-app-passwall ├── Makefile ├── htdocs │ └── luci-static │ │ └── resources │ │ └── qrcode.min.js ├── luasrc │ ├── controller │ │ └── passwall.lua │ ├── model │ │ └── cbi │ │ │ └── passwall │ │ │ ├── client │ │ │ ├── acl.lua │ │ │ ├── acl_config.lua │ │ │ ├── app_update.lua │ │ │ ├── global.lua │ │ │ ├── haproxy.lua │ │ │ ├── log.lua │ │ │ ├── node_config.lua │ │ │ ├── node_list.lua │ │ │ ├── node_subscribe.lua │ │ │ ├── node_subscribe_config.lua │ │ │ ├── other.lua │ │ │ ├── rule.lua │ │ │ ├── rule_list.lua │ │ │ ├── shunt_rules.lua │ │ │ ├── socks_config.lua │ │ │ └── type │ │ │ │ ├── hysteria2.lua │ │ │ │ ├── naive.lua │ │ │ │ ├── ray.lua │ │ │ │ ├── sing-box.lua │ │ │ │ ├── ss-rust.lua │ │ │ │ ├── ss.lua │ │ │ │ ├── ssr.lua │ │ │ │ ├── trojan-plus.lua │ │ │ │ └── tuic.lua │ │ │ └── server │ │ │ ├── index.lua │ │ │ ├── type │ │ │ ├── hysteria2.lua │ │ │ ├── ray.lua │ │ │ ├── sing-box.lua │ │ │ ├── socks.lua │ │ │ ├── ss-rust.lua │ │ │ ├── ss.lua │ │ │ ├── ssr.lua │ │ │ └── trojan-plus.lua │ │ │ └── user.lua │ ├── passwall │ │ ├── api.lua │ │ ├── com.lua │ │ ├── server_app.lua │ │ ├── util_hysteria2.lua │ │ ├── util_naiveproxy.lua │ │ ├── util_shadowsocks.lua │ │ ├── util_sing-box.lua │ │ ├── util_trojan.lua │ │ ├── util_tuic.lua │ │ └── util_xray.lua │ └── view │ │ └── passwall │ │ ├── acl │ │ └── view_chinadns_log.htm │ │ ├── app_update │ │ └── app_version.htm │ │ ├── cbi │ │ └── hidevalue.htm │ │ ├── global │ │ ├── faq.htm │ │ ├── footer.htm │ │ ├── proxy.htm │ │ └── status.htm │ │ ├── haproxy │ │ ├── js.htm │ │ └── status.htm │ │ ├── log │ │ ├── backup_restore.htm │ │ └── log.htm │ │ ├── node_list │ │ ├── link_add_node.htm │ │ ├── link_share_man.htm │ │ └── node_list.htm │ │ ├── rule │ │ └── rule_version.htm │ │ ├── rule_list │ │ ├── geoview.htm │ │ └── js.htm │ │ ├── server │ │ ├── log.htm │ │ └── users_list_status.htm │ │ └── socks_auto_switch │ │ └── btn.htm ├── po │ ├── zh-cn │ │ └── passwall.po │ └── zh_Hans └── root │ ├── etc │ ├── config │ │ └── passwall_server │ ├── hotplug.d │ │ └── iface │ │ │ └── 98-passwall │ ├── init.d │ │ ├── passwall │ │ └── passwall_server │ └── uci-defaults │ │ └── luci-passwall │ └── usr │ └── share │ ├── passwall │ ├── 0_default_config │ ├── app.sh │ ├── haproxy.lua │ ├── haproxy_check.sh │ ├── helper_chinadns_add.lua │ ├── helper_dnsmasq.lua │ ├── helper_smartdns.sh │ ├── helper_smartdns_add.lua │ ├── iptables.sh │ ├── lease2hosts.sh │ ├── monitor.sh │ ├── nftables.sh │ ├── rule_update.lua │ ├── rules │ │ ├── block_host │ │ ├── block_ip │ │ ├── chnlist │ │ ├── chnroute │ │ ├── chnroute6 │ │ ├── direct_host │ │ ├── direct_ip │ │ ├── domains_excluded │ │ ├── gfwlist │ │ ├── lanlist_ipv4 │ │ ├── lanlist_ipv6 │ │ ├── proxy_host │ │ └── proxy_ip │ ├── socks_auto_switch.sh │ ├── subscribe.lua │ ├── tasks.sh │ └── test.sh │ ├── rpcd │ └── acl.d │ │ └── luci-app-passwall.json │ └── ucitrack │ ├── luci-app-passwall-server.json │ └── luci-app-passwall.json ├── luci-app-passwall2 ├── Makefile ├── htdocs │ └── luci-static │ │ └── resources │ │ └── qrcode.min.js ├── luasrc │ ├── controller │ │ └── passwall2.lua │ ├── model │ │ └── cbi │ │ │ └── passwall2 │ │ │ ├── client │ │ │ ├── acl.lua │ │ │ ├── acl_config.lua │ │ │ ├── app_update.lua │ │ │ ├── global.lua │ │ │ ├── haproxy.lua │ │ │ ├── log.lua │ │ │ ├── node_config.lua │ │ │ ├── node_list.lua │ │ │ ├── node_subscribe.lua │ │ │ ├── node_subscribe_config.lua │ │ │ ├── other.lua │ │ │ ├── rule.lua │ │ │ ├── shunt_rules.lua │ │ │ ├── socks_config.lua │ │ │ └── type │ │ │ │ ├── hysteria2.lua │ │ │ │ ├── naive.lua │ │ │ │ ├── ray.lua │ │ │ │ ├── sing-box.lua │ │ │ │ ├── ss-rust.lua │ │ │ │ ├── ss.lua │ │ │ │ ├── ssr.lua │ │ │ │ └── tuic.lua │ │ │ └── server │ │ │ ├── index.lua │ │ │ ├── type │ │ │ ├── hysteria2.lua │ │ │ ├── ray.lua │ │ │ ├── sing-box.lua │ │ │ ├── ss-rust.lua │ │ │ ├── ss.lua │ │ │ └── ssr.lua │ │ │ └── user.lua │ ├── passwall2 │ │ ├── api.lua │ │ ├── com.lua │ │ ├── server_app.lua │ │ ├── util_hysteria2.lua │ │ ├── util_naiveproxy.lua │ │ ├── util_shadowsocks.lua │ │ ├── util_sing-box.lua │ │ ├── util_tuic.lua │ │ └── util_xray.lua │ └── view │ │ └── passwall2 │ │ ├── app_update │ │ └── app_version.htm │ │ ├── cbi │ │ └── hidevalue.htm │ │ ├── global │ │ ├── faq.htm │ │ ├── footer.htm │ │ └── status.htm │ │ ├── haproxy │ │ └── status.htm │ │ ├── log │ │ ├── backup_restore.htm │ │ └── log.htm │ │ ├── node_list │ │ ├── link_add_node.htm │ │ ├── link_share_man.htm │ │ └── node_list.htm │ │ ├── rule │ │ └── rule_version.htm │ │ ├── server │ │ ├── log.htm │ │ └── users_list_status.htm │ │ └── socks_auto_switch │ │ └── btn.htm ├── po │ ├── zh-cn │ │ └── passwall2.po │ └── zh_Hans └── root │ ├── etc │ ├── config │ │ └── passwall2_server │ ├── hotplug.d │ │ └── iface │ │ │ └── 98-passwall2 │ ├── init.d │ │ ├── passwall2 │ │ └── passwall2_server │ └── uci-defaults │ │ └── luci-passwall2 │ └── usr │ └── share │ ├── passwall2 │ ├── 0_default_config │ ├── app.sh │ ├── domains_excluded │ ├── haproxy.lua │ ├── haproxy_check.sh │ ├── helper_dnsmasq.lua │ ├── iptables.sh │ ├── monitor.sh │ ├── nftables.sh │ ├── rule_update.lua │ ├── socks_auto_switch.sh │ ├── subscribe.lua │ ├── tasks.sh │ └── test.sh │ ├── rpcd │ └── acl.d │ │ └── luci-app-passwall2.json │ └── ucitrack │ ├── luci-app-passwall2-server.json │ └── luci-app-passwall2.json ├── luci-app-ssr-plus ├── Makefile ├── luasrc │ ├── controller │ │ └── shadowsocksr.lua │ ├── model │ │ └── cbi │ │ │ └── shadowsocksr │ │ │ ├── advanced.lua │ │ │ ├── client-config.lua │ │ │ ├── client.lua │ │ │ ├── control.lua │ │ │ ├── log.lua │ │ │ ├── server-config.lua │ │ │ ├── server.lua │ │ │ ├── servers.lua │ │ │ └── status.lua │ └── view │ │ └── shadowsocksr │ │ ├── backup_restore.htm │ │ ├── certupload.htm │ │ ├── check.htm │ │ ├── checkport.htm │ │ ├── log.htm │ │ ├── ping.htm │ │ ├── refresh.htm │ │ ├── reset.htm │ │ ├── server_list.htm │ │ ├── socket.htm │ │ ├── ssrurl.htm │ │ ├── status.htm │ │ └── subscribe.htm ├── po │ ├── templates │ │ └── ssr-plus.pot │ ├── zh-cn │ └── zh_Hans │ │ └── ssr-plus.po └── root │ ├── etc │ ├── config │ │ └── shadowsocksr │ ├── init.d │ │ └── shadowsocksr │ ├── ssrplus │ │ ├── ad.conf │ │ ├── applechina.conf │ │ ├── black.list │ │ ├── china_ssr.txt │ │ ├── deny.list │ │ ├── dnsproxy_dns.list │ │ ├── gfw_base.conf │ │ ├── gfw_list.conf │ │ ├── mosdns-config.yaml │ │ ├── netflix.list │ │ ├── netflixip.list │ │ ├── oversea_list.conf │ │ └── white.list │ └── uci-defaults │ │ └── luci-ssr-plus │ └── usr │ ├── bin │ ├── ssr-monitor │ ├── ssr-rules │ └── ssr-switch │ └── share │ ├── rpcd │ └── acl.d │ │ └── luci-app-ssr-plus.json │ ├── shadowsocksr │ ├── chinaipset.sh │ ├── gen_config.lua │ ├── genred2config.sh │ ├── gfw2ipset.sh │ ├── shadowsocksr.config │ ├── ssrplusupdate.sh │ ├── subscribe.lua │ └── update.lua │ └── ucitrack │ └── luci-app-ssr-plus.json ├── microsocks └── Makefile ├── mihomo ├── .prepare.sh └── Makefile ├── mosdns ├── Makefile └── patches │ ├── 100-mosdns-update-dependencies.patch │ ├── 200-forward-avoid-picking-same-upstream-if-concurrent-2.patch │ ├── 201-upstream-resend-udp-package-every-1s.patch │ ├── 203-add-response-for-bad-request-in-ServeHTTP-handler.patch │ ├── 204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch │ └── 205-format-logtime.patch ├── naiveproxy ├── Makefile └── files │ ├── naiveproxy.config │ └── naiveproxy.init ├── nikki ├── Makefile └── files │ ├── mixin.yaml │ ├── nftables │ ├── geoip6_cn.nft │ ├── geoip_cn.nft │ ├── reserved_ip.nft │ └── reserved_ip6.nft │ ├── nikki.conf │ ├── nikki.init │ ├── nikki.upgrade │ ├── scripts │ ├── debug.sh │ ├── firewall_include.sh │ └── include.sh │ ├── uci-defaults │ ├── firewall.sh │ ├── init.sh │ └── migrate.sh │ └── ucode │ ├── hijack.ut │ ├── include.uc │ └── mixin.uc ├── pdnsd-alt ├── Makefile ├── files │ └── pdnsd.init └── patches │ ├── 010-no-doc-and-test.patch │ └── 020-headers.patch ├── redsocks2 ├── Makefile └── files │ └── redsocks2.template ├── shadow-tls └── Makefile ├── shadowsocks-rust └── Makefile ├── shadowsocksr-libev ├── Makefile ├── patches │ ├── 0001-Add-ss-server-and-ss-check.patch │ ├── 0002-Revert-verify_simple-and-auth_simple.patch │ ├── 0003-Refine-Usage.patch │ ├── 100-fix-gcc-10.patch │ ├── 101-Fix-Werror-sizeof-pointer-memaccess.patch │ ├── 102-Read-listening-mode-from-config.patch │ ├── 103-Add-TPROXY-support-for-TCP-ssr-redir.patch │ ├── 104-pointer-used-after-free.patch │ └── 105-Upgrade-PCRE-to-PCRE2.patch └── src │ └── server │ ├── Makefile.am │ ├── Makefile.in │ ├── README.md │ ├── acl.c │ ├── acl.h │ ├── auth.c │ ├── auth.h │ ├── base64.c │ ├── base64.h │ ├── cache.c │ ├── cache.h │ ├── check.c │ ├── common.h │ ├── crc32.c │ ├── encrypt.c │ ├── encrypt.h │ ├── http.c │ ├── http.h │ ├── http_simple.c │ ├── http_simple.h │ ├── jconf.c │ ├── jconf.h │ ├── json.c │ ├── json.h │ ├── list.c │ ├── list.h │ ├── netutils.c │ ├── netutils.h │ ├── obfs.c │ ├── obfs.h │ ├── obfsutil.c │ ├── protocol.h │ ├── resolv.c │ ├── resolv.h │ ├── rule.c │ ├── rule.h │ ├── server.c │ ├── server.h │ ├── tls.c │ ├── tls.h │ ├── tls1.2_ticket.c │ ├── tls1.2_ticket.h │ ├── udprelay.c │ ├── udprelay.h │ ├── uthash.h │ ├── utils.c │ ├── utils.h │ ├── verify.c │ └── verify.h ├── simple-obfs └── Makefile ├── sing-box ├── Makefile └── files │ ├── config.json.example │ └── sing-box.init ├── ssocks ├── Makefile └── patches │ ├── 001-fix.patch │ └── 002-gcc10.patch ├── tcping └── Makefile ├── trojan-go └── Makefile ├── trojan-plus └── Makefile ├── trojan ├── Makefile └── patches │ └── 001-force-openssl-version.patch ├── tuic-client └── Makefile ├── v2dat ├── Makefile └── patches │ ├── 100-format-logtime.patch │ └── 101-v2dat-update-dependencies.patch ├── v2ray-core └── Makefile ├── v2ray-geodata └── Makefile ├── v2ray-geoview └── Makefile ├── v2ray-plugin └── Makefile ├── v2raya ├── Makefile └── files │ ├── v2raya.config │ └── v2raya.init ├── xray-core └── Makefile └── xray-plugin └── Makefile /gn/src/out/last_commit_position.h: -------------------------------------------------------------------------------- 1 | // Generated by build/gen.py. 2 | 3 | #ifndef OUT_LAST_COMMIT_POSITION_H_ 4 | #define OUT_LAST_COMMIT_POSITION_H_ 5 | 6 | #define LAST_COMMIT_POSITION_NUM 2224 7 | #define LAST_COMMIT_POSITION "2224 (6e8e0d6d4a15)" 8 | 9 | #endif // OUT_LAST_COMMIT_POSITION_H_ 10 | -------------------------------------------------------------------------------- /lua-neturl/patches/010-userinfo-regex.patch: -------------------------------------------------------------------------------- 1 | --- a/lib/net/url.lua 2 | +++ b/lib/net/url.lua 3 | @@ -340,7 +340,7 @@ function M:setAuthority(authority) 4 | self.password = v 5 | return '' 6 | end) 7 | - if string.find(userinfo, "^[%w%+%.]+$") then 8 | + if string.find(userinfo, "^[%p%w%+%.]+$") then 9 | self.user = userinfo 10 | else 11 | -- incorrect userinfo 12 | @@ -369,7 +369,7 @@ function M.parse(url) 13 | comp.fragment = v 14 | return '' 15 | end) 16 | - url =url:gsub('^([%w][%w%+%-%.]*)%:', function(v) 17 | + url =url:gsub('^([%w][%w%+%-%_%.]*)%:', function(v) 18 | comp.scheme = v:lower() 19 | return '' 20 | end) 21 | -------------------------------------------------------------------------------- /luci-app-bypass/luasrc/model/cbi/bypass/app_update.lua: -------------------------------------------------------------------------------- 1 | m = Map("bypass") 2 | 3 | -- [[ App Settings ]]-- 4 | s = m:section(TypedSection, "global", translate("App Update"), 5 | "" .. 6 | translate("Please confirm that your firmware supports FPU.") .. 7 | "") 8 | s.anonymous = true 9 | s:append(Template("bypass/xray_version")) 10 | 11 | return m 12 | -------------------------------------------------------------------------------- /luci-app-bypass/luasrc/model/cbi/bypass/log.lua: -------------------------------------------------------------------------------- 1 | local fs=require "nixio.fs" 2 | 3 | f=SimpleForm("logview") 4 | f.reset=false 5 | f.submit=false 6 | t=f:field(TextValue,"conf") 7 | t.rmempty=true 8 | t.rows=20 9 | function t.cfgvalue() 10 | if nixio.fs.access("/var/log/bypass.log") then 11 | local logs = luci.util.execi("cat /var/log/bypass.log") 12 | local s = "" 13 | for line in logs do 14 | s = line .. "\n" .. s 15 | end 16 | return s 17 | end 18 | end 19 | t.readonly = "readonly" 20 | return f 21 | -------------------------------------------------------------------------------- /luci-app-bypass/luasrc/view/bypass/certupload.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 3 | 4 | <%+cbi/valuefooter%> 5 | -------------------------------------------------------------------------------- /luci-app-bypass/luasrc/view/bypass/check.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 27 | 28 | <%=self.value%> 29 | 30 | <%+cbi/valuefooter%> 31 | -------------------------------------------------------------------------------- /luci-app-bypass/luasrc/view/bypass/checkport.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 3 | 24 | 25 | <%=self.value%> 26 | <%+cbi/valuefooter%> 27 | -------------------------------------------------------------------------------- /luci-app-bypass/luasrc/view/bypass/ping.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | -- ms 3 | <%+cbi/valuefooter%> 4 | -------------------------------------------------------------------------------- /luci-app-bypass/luasrc/view/bypass/socket.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | wait 3 | <%+cbi/valuefooter%> 4 | -------------------------------------------------------------------------------- /luci-app-bypass/luasrc/view/bypass/subscribe.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 16 | 17 | 18 | <%+cbi/valuefooter%> 19 | -------------------------------------------------------------------------------- /luci-app-bypass/po/zh_Hans: -------------------------------------------------------------------------------- 1 | zh-cn -------------------------------------------------------------------------------- /luci-app-bypass/root/etc/bypass/black.list: -------------------------------------------------------------------------------- 1 | whrq.net 2 | test-ipv6.com 3 | 4 | -------------------------------------------------------------------------------- /luci-app-bypass/root/etc/bypass/netflix.list: -------------------------------------------------------------------------------- 1 | netflix.com 2 | netflix.net 3 | nflxext.com 4 | nflximg.com 5 | nflximg.net 6 | nflxsearch.net 7 | nflxso.net 8 | nflxvideo.net 9 | netflixdnstest0.com 10 | netflixdnstest1.com 11 | netflixdnstest2.com 12 | netflixdnstest3.com 13 | netflixdnstest4.com 14 | netflixdnstest5.com 15 | netflixdnstest6.com 16 | netflixdnstest7.com 17 | netflixdnstest8.com 18 | netflixdnstest9.com 19 | pandora.com 20 | tunein.com 21 | hbo.com 22 | hbonow.com 23 | hboasia.com 24 | hbogoasia.com 25 | hbogoasia.hk 26 | hbolb.onwardsmg.com 27 | hbounify-prod.evergent.com 28 | bcbolthboa-a.akamaihd.net 29 | amazonaws.com 30 | aws.amazon.com 31 | awsstatic.com 32 | fast.com 33 | hulu.com 34 | huluim.com 35 | hbogo.com 36 | -------------------------------------------------------------------------------- /luci-app-bypass/root/etc/bypass/telegram.list: -------------------------------------------------------------------------------- 1 | 91.108.4.0/22 2 | 91.108.8.0/22 3 | 91.108.16.0/22 4 | 91.108.20.0/22 5 | 91.108.56.0/22 6 | 95.161.64.0/20 7 | 91.108.12.0/22 8 | 149.154.160.0/22 9 | 149.154.164.0/22 10 | 149.154.172.0/22 11 | -------------------------------------------------------------------------------- /luci-app-bypass/root/etc/bypass/white.list: -------------------------------------------------------------------------------- 1 | checkip.dyndns.org 2 | checkipv6.dyndns.org 3 | checkip.synology.com 4 | -------------------------------------------------------------------------------- /luci-app-bypass/root/etc/config/bypass: -------------------------------------------------------------------------------- 1 | 2 | config global 3 | option dports '2' 4 | option threads '0' 5 | option run_mode 'router' 6 | option dns_mode_o 'tcp' 7 | option doh_dns_o '8.8.8.8,8.8.4.4' 8 | option gfw_mode '1' 9 | option dns_mode_d 'doh' 10 | option doh_dns_d 'alidns' 11 | option monitor_enable '1' 12 | option enable_switch '1' 13 | option switch_time '300' 14 | option switch_timeout '5' 15 | option switch_try_count '3' 16 | 17 | config socks5_proxy 18 | 19 | config access_control 20 | option lan_ac_mode 'b' 21 | 22 | config server_global 23 | 24 | config server_subscribe 25 | option proxy '0' 26 | option auto_update_time '5' 27 | option auto_update '1' 28 | option filter_words '过期时间/剩余流量/QQ群/官网/防失联地址/回国' 29 | 30 | config global_xray_fragment 31 | option fragment '0' 32 | option noise '0' 33 | -------------------------------------------------------------------------------- /luci-app-bypass/root/etc/hotplug.d/iface/21-bypass: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ "$ACTION" = ifup -a "$INTERFACE" != wan_6 ];then 3 | if uci -q get bypass.@global[0].global_server >/dev/null;then 4 | if ipset list bypass_all >/dev/null 2>&1;then 5 | ipset -F bypass_all 6 | for i in $(ip -4 add show | grep -v $(uci -qP /tmp/state get network.wan.device || echo 127.0.0.1) | grep inet | grep -v 127.0.0.1 | awk '{print$2}');do 7 | ipset -! add bypass_all $i 8 | done 9 | fi 10 | if pidof smartdns >/dev/null;then 11 | killall -q -9 smartdns 12 | $(which smartdns) -c /var/etc/smartdns/smartdns.conf 13 | fi 14 | fi 15 | fi 16 | -------------------------------------------------------------------------------- /luci-app-bypass/root/etc/uci-defaults/luci-bypass: -------------------------------------------------------------------------------- 1 | uci batch < /usr/share/ucitrack/luci-app-bypass.json << EEOF 4 | { 5 | "config": "bypass", 6 | "init": "bypass" 7 | } 8 | EEOF 9 | } 10 | delete ucitrack.@bypass[-1] 11 | add ucitrack bypass 12 | set ucitrack.@bypass[-1].init=bypass 13 | commit ucitrack 14 | delete firewall.bypass 15 | set firewall.bypass=include 16 | set firewall.bypass.type=script 17 | set firewall.bypass.path=/var/etc/bypass.include 18 | set firewall.bypass.reload=1 19 | commit firewall 20 | EOF 21 | 22 | chmod +x /etc/init.d/bypass /usr/share/bypass/* >/dev/null 2>&1 23 | rm -rf /tmp/luci-* 24 | 25 | grep -q ip-api.com /etc/bypass/black.list || 26 | sed -i '$a ip-api.com' /etc/bypass/black.list 27 | 28 | exit 0 29 | -------------------------------------------------------------------------------- /luci-app-bypass/root/usr/share/bypass/by-check: -------------------------------------------------------------------------------- 1 | #!/usr/bin/lua 2 | require 'nixio' 3 | nixio.signal(2,"dfl") 4 | if arg[1]==nil or arg[2]==nil then 5 | os.exit(1) 6 | end 7 | addr=arg[1] 8 | port=arg[2] 9 | t=5 10 | if arg[3]~=nil then 11 | t=arg[3] 12 | end 13 | socket=nixio.socket("inet","stream") 14 | socket:setopt("socket","rcvtimeo",t) 15 | socket:setopt("socket","sndtimeo",t) 16 | --print("Detecting ports on server: "..addr..":"..port.."...") 17 | if socket:connect(addr,port) then 18 | --print("Port open") 19 | os.exit(0) 20 | else 21 | --print("Port closed") 22 | os.exit(1) 23 | end 24 | socket:close() 25 | -------------------------------------------------------------------------------- /luci-app-bypass/root/usr/share/bypass/checknetwork: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | [ "$1" = check ] || exit 1 3 | NAME=bypass 4 | 5 | log(){ 6 | echo "$(date +'%Y-%m-%d %H:%M:%S') : $*" >> /var/log/$NAME.log 7 | } 8 | 9 | while ! curl -so /dev/null -m 3 www.baidu.com;do 10 | log "请检查网络..." 11 | sleep 2 12 | done 13 | /etc/init.d/$NAME start & -------------------------------------------------------------------------------- /luci-app-bypass/root/usr/share/bypass/chinaipset: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ "$1" = v6 ];then 3 | ipset -N china_v6 hash:net family inet6 2>/dev/null 4 | awk '!/^$/&&!/^#/{printf("add china_v6 %s'" "'\n",$0)}' /etc/bypass/china_v6.txt > /tmp/china_v6.ipset 5 | ipset -F china_v6 2>/dev/null 6 | ipset -R < /tmp/china_v6.ipset 2>/dev/null 7 | else 8 | ipset -N china_v4 hash:net 2>/dev/null 9 | awk '!/^$/&&!/^#/{printf("add china_v4 %s'" "'\n",$0)}' /etc/bypass/china.txt > /tmp/china.ipset 10 | ipset -F china_v4 2>/dev/null 11 | ipset -R < /tmp/china.ipset 2>/dev/null 12 | fi 13 | rm -f /tmp/china*.ipset 14 | -------------------------------------------------------------------------------- /luci-app-bypass/root/usr/share/rpcd/acl.d/luci-app-bypass.json: -------------------------------------------------------------------------------- 1 | { 2 | "luci-app-bypass": { 3 | "description": "Grant UCI access for luci-app-bypass", 4 | "read": { 5 | "file": { 6 | "/etc/bypass/*": [ "read" ] 7 | }, 8 | "uci": [ "bypass" ] 9 | }, 10 | "write": { 11 | "file": { 12 | "/etc/bypass/*": [ "write" ] 13 | }, 14 | "uci": [ "bypass" ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/am.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/at.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/bd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/bv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ci.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/co.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/de.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/es-ca.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/fo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/fr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ga.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/gb-sct.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/gf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/gn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/gp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/gy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ht.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/hu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ie.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/it.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/jp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/lt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/lu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/lv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/mc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/mg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ml.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/mu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/mw.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ne.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/nl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/pe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/pl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/pm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/pw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/re.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ro.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ru.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/sc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/se.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/sj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/sl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/td.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ua.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/wf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/ye.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/flags/yt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/img/site_icon1_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-bypass/root/www/luci-static/bypass/img/site_icon1_01.png -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/img/site_icon1_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-bypass/root/www/luci-static/bypass/img/site_icon1_02.png -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/img/site_icon1_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-bypass/root/www/luci-static/bypass/img/site_icon1_03.png -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/img/site_icon1_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-bypass/root/www/luci-static/bypass/img/site_icon1_04.png -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/img/site_icon_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-bypass/root/www/luci-static/bypass/img/site_icon_01.png -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/img/site_icon_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-bypass/root/www/luci-static/bypass/img/site_icon_02.png -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/img/site_icon_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-bypass/root/www/luci-static/bypass/img/site_icon_03.png -------------------------------------------------------------------------------- /luci-app-bypass/root/www/luci-static/bypass/img/site_icon_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-bypass/root/www/luci-static/bypass/img/site_icon_04.png -------------------------------------------------------------------------------- /luci-app-fchomo/docs/audio/A!.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-fchomo/docs/audio/A!.mp3 -------------------------------------------------------------------------------- /luci-app-fchomo/docs/img/shark-taiko.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-fchomo/docs/img/shark-taiko.gif -------------------------------------------------------------------------------- /luci-app-fchomo/po/zh-cn: -------------------------------------------------------------------------------- 1 | zh_Hans -------------------------------------------------------------------------------- /luci-app-fchomo/root/etc/capabilities/fchomo.json: -------------------------------------------------------------------------------- 1 | { 2 | "bounding": [ 3 | "CAP_NET_ADMIN", 4 | "CAP_NET_RAW", 5 | "CAP_NET_BIND_SERVICE", 6 | "CAP_SYS_TIME", 7 | "CAP_SYS_PTRACE", 8 | "CAP_DAC_READ_SEARCH", 9 | "CAP_DAC_OVERRIDE" 10 | ], 11 | "effective": [ 12 | "CAP_NET_ADMIN", 13 | "CAP_NET_RAW", 14 | "CAP_NET_BIND_SERVICE", 15 | "CAP_SYS_TIME", 16 | "CAP_SYS_PTRACE", 17 | "CAP_DAC_READ_SEARCH", 18 | "CAP_DAC_OVERRIDE" 19 | ], 20 | "ambient": [ 21 | "CAP_NET_ADMIN", 22 | "CAP_NET_RAW", 23 | "CAP_NET_BIND_SERVICE", 24 | "CAP_SYS_TIME", 25 | "CAP_SYS_PTRACE", 26 | "CAP_DAC_READ_SEARCH", 27 | "CAP_DAC_OVERRIDE" 28 | ], 29 | "permitted": [ 30 | "CAP_NET_ADMIN", 31 | "CAP_NET_RAW", 32 | "CAP_NET_BIND_SERVICE", 33 | "CAP_SYS_TIME", 34 | "CAP_SYS_PTRACE", 35 | "CAP_DAC_READ_SEARCH", 36 | "CAP_DAC_OVERRIDE" 37 | ], 38 | "inheritable": [ 39 | "CAP_NET_ADMIN", 40 | "CAP_NET_RAW", 41 | "CAP_NET_BIND_SERVICE", 42 | "CAP_SYS_TIME", 43 | "CAP_SYS_PTRACE", 44 | "CAP_DAC_READ_SEARCH", 45 | "CAP_DAC_OVERRIDE" 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /luci-app-fchomo/root/usr/libexec/fchomo/clean_log.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Thanks to homeproxy 3 | 4 | NAME="fchomo" 5 | 6 | log_max_size="30" #KB 7 | main_log_file="/var/run/$NAME/$NAME.log" 8 | singc_log_file="/var/run/$NAME/mihomo-c.log" 9 | sings_log_file="/var/run/$NAME/mihomo-s.log" 10 | 11 | while true; do 12 | sleep 180 13 | for i in "$main_log_file" "$singc_log_file" "$sings_log_file"; do 14 | [ -s "$i" ] || continue 15 | [ "$(( $(ls -l "$i" | awk -F ' ' '{print $5}') / 1024 >= log_max_size))" -eq "0" ] || echo "" > "$i" 16 | done 17 | done 18 | -------------------------------------------------------------------------------- /luci-app-fchomo/root/usr/share/fchomo/firewall_pre.ut: -------------------------------------------------------------------------------- 1 | #!/usr/bin/utpl -S 2 | 3 | {%- 4 | import { cursor } from 'uci'; 5 | const uci = cursor(); 6 | 7 | const cfgname = 'fchomo'; 8 | uci.load(cfgname); 9 | 10 | const proxy_mode = uci.get(cfgname, 'inbound', 'proxy_mode') || 'redir_tproxy'; 11 | let client_enabled, tun_name; 12 | if (match(proxy_mode, /tun/)) { 13 | client_enabled = uci.get(cfgname, 'routing', 'client_enabled') || '0'; 14 | 15 | if (client_enabled === '1') 16 | tun_name = uci.get(cfgname, 'config', 'tun_name') || 'hmtun0'; 17 | } 18 | -%} 19 | 20 | {% if (tun_name): %} 21 | chain forward { 22 | iifname {{ tun_name }} counter accept comment "!{{ cfgname }}: accept tun forward" 23 | oifname {{ tun_name }} counter accept comment "!{{ cfgname }}: accept tun forward" 24 | } 25 | 26 | chain input { 27 | iifname {{ tun_name }} counter accept comment "!{{ cfgname }}: accept tun input" 28 | oifname {{ tun_name }} counter accept comment "!{{ cfgname }}: accept tun input" 29 | } 30 | {% endif %} 31 | -------------------------------------------------------------------------------- /luci-app-fchomo/root/usr/share/rpcd/acl.d/luci-app-fchomo.json: -------------------------------------------------------------------------------- 1 | { 2 | "luci-app-fchomo": { 3 | "description": "Grant access to fchomo configuration", 4 | "read": { 5 | "file": { 6 | "/etc/init.d/fchomo reload *": [ "exec" ], 7 | "/usr/libexec/fchomo/natcheck.sh": [ "exec" ], 8 | "/var/run/fchomo/fchomo.log": [ "read" ], 9 | "/var/run/fchomo/mihomo-c.log": [ "read" ], 10 | "/var/run/fchomo/mihomo-s.log": [ "read" ] 11 | }, 12 | "ubus": { 13 | "service": [ "list" ], 14 | "luci.fchomo": [ "*" ] 15 | }, 16 | "uci": [ "fchomo" ] 17 | }, 18 | "write": { 19 | "file": { 20 | "/tmp/fchomo_certificate.tmp": [ "write" ], 21 | "/tmp/fchomo_initialpack.tmp": [ "write" ] 22 | }, 23 | "uci": [ "fchomo" ] 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /luci-app-homeproxy/Makefile: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-only 2 | # 3 | # Copyright (C) 2022-2023 ImmortalWrt.org 4 | 5 | include $(TOPDIR)/rules.mk 6 | 7 | LUCI_TITLE:=The modern ImmortalWrt proxy platform for ARM64/AMD64 8 | LUCI_PKGARCH:=all 9 | LUCI_DEPENDS:= \ 10 | +sing-box \ 11 | +firewall4 \ 12 | +kmod-nft-tproxy 13 | 14 | PKG_NAME:=luci-app-homeproxy 15 | 16 | define Package/luci-app-homeproxy/conffiles 17 | /etc/config/homeproxy 18 | /etc/homeproxy/certs/ 19 | /etc/homeproxy/ruleset/ 20 | /etc/homeproxy/resources/direct_list.txt 21 | /etc/homeproxy/resources/proxy_list.txt 22 | endef 23 | 24 | include $(TOPDIR)/feeds/luci/luci.mk 25 | 26 | # call BuildPackage - OpenWrt buildroot signature 27 | -------------------------------------------------------------------------------- /luci-app-homeproxy/README: -------------------------------------------------------------------------------- 1 | TODO: 2 | - Subscription page slow response with a large number of nodes 3 | - Refactor nft rules 4 | - Move ACL settings to a dedicated page 5 | - Any other improvements 6 | -------------------------------------------------------------------------------- /luci-app-homeproxy/po/zh-cn: -------------------------------------------------------------------------------- 1 | zh_Hans -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/capabilities/homeproxy.json: -------------------------------------------------------------------------------- 1 | { 2 | "bounding": [ 3 | "CAP_NET_ADMIN", 4 | "CAP_NET_BIND_SERVICE", 5 | "CAP_NET_RAW", 6 | "CAP_SYS_PTRACE" 7 | ], 8 | "effective": [ 9 | "CAP_NET_ADMIN", 10 | "CAP_NET_BIND_SERVICE", 11 | "CAP_NET_RAW", 12 | "CAP_SYS_PTRACE" 13 | ], 14 | "ambient": [ 15 | "CAP_NET_ADMIN", 16 | "CAP_NET_BIND_SERVICE", 17 | "CAP_NET_RAW", 18 | "CAP_SYS_PTRACE" 19 | ], 20 | "permitted": [ 21 | "CAP_NET_ADMIN", 22 | "CAP_NET_BIND_SERVICE", 23 | "CAP_NET_RAW", 24 | "CAP_SYS_PTRACE" 25 | ], 26 | "inheritable": [ 27 | "CAP_NET_ADMIN", 28 | "CAP_NET_BIND_SERVICE", 29 | "CAP_NET_RAW", 30 | "CAP_SYS_PTRACE" 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/homeproxy/resources/china_ip4.ver: -------------------------------------------------------------------------------- 1 | 20250513033637 2 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/homeproxy/resources/china_ip6.ver: -------------------------------------------------------------------------------- 1 | 20250513033637 2 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/homeproxy/resources/china_list.ver: -------------------------------------------------------------------------------- 1 | 202505122213 2 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/homeproxy/resources/gfw_list.ver: -------------------------------------------------------------------------------- 1 | 202505122213 2 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/homeproxy/scripts/clean_log.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # SPDX-License-Identifier: GPL-2.0-only 3 | # 4 | # Copyright (C) 2022-2023 ImmortalWrt.org 5 | 6 | NAME="homeproxy" 7 | 8 | log_max_size="10" #KB 9 | main_log_file="/var/run/$NAME/$NAME.log" 10 | singc_log_file="/var/run/$NAME/sing-box-c.log" 11 | sings_log_file="/var/run/$NAME/sing-box-s.log" 12 | 13 | while true; do 14 | sleep 180 15 | for i in "$main_log_file" "$singc_log_file" "$sings_log_file"; do 16 | [ -s "$i" ] || continue 17 | [ "$(( $(ls -l "$i" | awk -F ' ' '{print $5}') / 1024 >= log_max_size))" -eq "0" ] || echo "" > "$i" 18 | done 19 | done 20 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/homeproxy/scripts/update_crond.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # SPDX-License-Identifier: GPL-2.0-only 3 | # 4 | # Copyright (C) 2023 ImmortalWrt.org 5 | 6 | SCRIPTS_DIR="/etc/homeproxy/scripts" 7 | 8 | for i in "china_ip4" "china_ip6" "gfw_list" "china_list"; do 9 | "$SCRIPTS_DIR"/update_resources.sh "$i" 10 | done 11 | 12 | "$SCRIPTS_DIR"/update_subscriptions.uc 13 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | uci -q batch <<-EOF >"/dev/null" 4 | delete firewall.homeproxy_pre 5 | 6 | delete firewall.homeproxy_forward 7 | set firewall.homeproxy_forward=include 8 | set firewall.homeproxy_forward.type=nftables 9 | set firewall.homeproxy_forward.path="/var/run/homeproxy/fw4_forward.nft" 10 | set firewall.homeproxy_forward.position="chain-pre" 11 | set firewall.homeproxy_forward.chain="forward" 12 | 13 | delete firewall.homeproxy_input 14 | set firewall.homeproxy_input=include 15 | set firewall.homeproxy_input.type=nftables 16 | set firewall.homeproxy_input.path="/var/run/homeproxy/fw4_input.nft" 17 | set firewall.homeproxy_input.position="chain-pre" 18 | set firewall.homeproxy_input.chain="input" 19 | 20 | delete firewall.homeproxy_post 21 | set firewall.homeproxy_post=include 22 | set firewall.homeproxy_post.type=nftables 23 | set firewall.homeproxy_post.path="/var/run/homeproxy/fw4_post.nft" 24 | set firewall.homeproxy_post.position="table-post" 25 | commit firewall 26 | EOF 27 | 28 | exit 0 29 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/etc/uci-defaults/luci-homeproxy-migration: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ucode "/etc/homeproxy/scripts/migrate_config.uc" 4 | 5 | exit 0 6 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/usr/share/luci/menu.d/luci-app-homeproxy.json: -------------------------------------------------------------------------------- 1 | { 2 | "admin/services/homeproxy": { 3 | "title": "HomeProxy", 4 | "order": 10, 5 | "action": { 6 | "type": "firstchild" 7 | }, 8 | "depends": { 9 | "acl": [ "luci-app-homeproxy" ], 10 | "uci": { "homeproxy": true } 11 | } 12 | }, 13 | "admin/services/homeproxy/client": { 14 | "title": "Client Settings", 15 | "order": 10, 16 | "action": { 17 | "type": "view", 18 | "path": "homeproxy/client" 19 | } 20 | }, 21 | "admin/services/homeproxy/node": { 22 | "title": "Node Settings", 23 | "order": 15, 24 | "action": { 25 | "type": "view", 26 | "path": "homeproxy/node" 27 | } 28 | }, 29 | "admin/services/homeproxy/server": { 30 | "title": "Server Settings", 31 | "order": 20, 32 | "action": { 33 | "type": "view", 34 | "path": "homeproxy/server" 35 | } 36 | }, 37 | "admin/services/homeproxy/status": { 38 | "title": "Service Status", 39 | "order": 30, 40 | "action": { 41 | "type": "view", 42 | "path": "homeproxy/status" 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /luci-app-homeproxy/root/usr/share/rpcd/acl.d/luci-app-homeproxy.json: -------------------------------------------------------------------------------- 1 | { 2 | "luci-app-homeproxy": { 3 | "description": "Grant access to homeproxy configuration", 4 | "read": { 5 | "file": { 6 | "/etc/homeproxy/scripts/update_subscriptions.uc": [ "exec" ], 7 | "/var/run/homeproxy/homeproxy.log": [ "read" ], 8 | "/var/run/homeproxy/sing-box-c.log": [ "read" ], 9 | "/var/run/homeproxy/sing-box-s.log": [ "read" ] 10 | }, 11 | "ubus": { 12 | "service": [ "list" ], 13 | "luci.homeproxy": [ "*" ] 14 | }, 15 | "uci": [ "homeproxy" ] 16 | }, 17 | "write": { 18 | "file": { 19 | "/tmp/homeproxy_certificate.tmp": [ "write" ] 20 | }, 21 | "uci": [ "homeproxy" ] 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /luci-app-mosdns/Makefile: -------------------------------------------------------------------------------- 1 | include $(TOPDIR)/rules.mk 2 | 3 | PKG_NAME:=luci-app-mosdns 4 | PKG_VERSION:=1.5.23 5 | PKG_RELEASE:=1 6 | 7 | LUCI_TITLE:=LuCI Support for mosdns 8 | LUCI_PKGARCH:=all 9 | LUCI_DEPENDS:=+mosdns +jsonfilter +luci-compat +curl +v2ray-geoip +v2ray-geosite +v2dat 10 | 11 | define Package/$(PKG_NAME)/conffiles 12 | /etc/config/mosdns 13 | /etc/mosdns/cache.dump 14 | /etc/mosdns/config_custom.yaml 15 | /etc/mosdns/rule 16 | endef 17 | 18 | include $(TOPDIR)/feeds/luci/luci.mk 19 | 20 | # call BuildPackage - OpenWrt buildroot signature 21 | -------------------------------------------------------------------------------- /luci-app-mosdns/luasrc/model/cbi/mosdns/log.lua: -------------------------------------------------------------------------------- 1 | m = Map("mosdns") 2 | 3 | m:append(Template("mosdns/mosdns_log")) 4 | 5 | return m 6 | -------------------------------------------------------------------------------- /luci-app-mosdns/luasrc/view/mosdns/mosdns_status.htm: -------------------------------------------------------------------------------- 1 | 18 | 24 |
25 |

26 | <%:Collecting data...%> 27 |

28 |
29 | -------------------------------------------------------------------------------- /luci-app-mosdns/po/zh_Hans: -------------------------------------------------------------------------------- 1 | zh-cn -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/config/mosdns: -------------------------------------------------------------------------------- 1 | 2 | config mosdns 'config' 3 | option enabled '0' 4 | option listen_port '5335' 5 | option geo_auto_update '0' 6 | option geo_update_week_time '*' 7 | option geo_update_day_time '2' 8 | option redirect '1' 9 | option prefer_ipv4 '1' 10 | option adblock '0' 11 | option configfile '/var/etc/mosdns.json' 12 | option log_level 'info' 13 | option log_file '/var/log/mosdns.log' 14 | option cache '0' 15 | option concurrent '1' 16 | option idle_timeout '30' 17 | option minimal_ttl '0' 18 | option maximum_ttl '0' 19 | option custom_local_dns '0' 20 | option enable_pipeline '0' 21 | option insecure_skip_verify '0' 22 | option dns_leak '0' 23 | option cloudflare '0' 24 | option listen_port_api '9091' 25 | option custom_stream_media_dns '0' 26 | option bootstrap_dns '119.29.29.29' 27 | list remote_dns 'tls://8.8.8.8' 28 | list remote_dns 'tls://1.1.1.1' 29 | 30 | -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/hotplug.d/iface/99-mosdns: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | [ "$ACTION" = ifup ] && /etc/init.d/mosdns restart 3 | -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/mosdns/rule/blocklist.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-mosdns/root/etc/mosdns/rule/blocklist.txt -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/mosdns/rule/cloudflare-cidr.txt: -------------------------------------------------------------------------------- 1 | 173.245.48.0/20 2 | 103.21.244.0/22 3 | 103.22.200.0/22 4 | 103.31.4.0/22 5 | 141.101.64.0/18 6 | 108.162.192.0/18 7 | 190.93.240.0/20 8 | 188.114.96.0/20 9 | 197.234.240.0/22 10 | 198.41.128.0/17 11 | 162.158.0.0/15 12 | 104.16.0.0/13 13 | 104.24.0.0/14 14 | 172.64.0.0/13 15 | 131.0.72.0/22 16 | 2400:cb00::/32 17 | 2606:4700::/32 18 | 2803:f800::/32 19 | 2405:b500::/32 20 | 2405:8100::/32 21 | 2a06:98c0::/29 22 | 2c0f:f248::/32 23 | -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/mosdns/rule/ddnslist.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-mosdns/root/etc/mosdns/rule/ddnslist.txt -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/mosdns/rule/greylist.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-mosdns/root/etc/mosdns/rule/greylist.txt -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/mosdns/rule/hosts.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-mosdns/root/etc/mosdns/rule/hosts.txt -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/mosdns/rule/redirect.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-mosdns/root/etc/mosdns/rule/redirect.txt -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/mosdns/rule/streaming.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-mosdns/root/etc/mosdns/rule/streaming.txt -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/mosdns/rule/whitelist.txt: -------------------------------------------------------------------------------- 1 | domain:bing.com 2 | domain:live.com 3 | domain:msn.com 4 | domain:ntp.org 5 | domain:office.com 6 | domain:qlogo.cn 7 | domain:qq.com 8 | domain:redhat.com 9 | keyword:douyin 10 | keyword:microsoft 11 | keyword:windows 12 | -------------------------------------------------------------------------------- /luci-app-mosdns/root/etc/uci-defaults/luci-mosdns: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | uci -q batch <<-EOF >/dev/null 4 | delete ucitrack.@mosdns[-1] 5 | add ucitrack mosdns 6 | set ucitrack.@mosdns[-1].init=mosdns 7 | commit ucitrack 8 | EOF 9 | 10 | rm -rf /tmp/luci-* 11 | exit 0 12 | -------------------------------------------------------------------------------- /luci-app-mosdns/root/usr/share/mosdns/cache.dump: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-mosdns/root/usr/share/mosdns/cache.dump -------------------------------------------------------------------------------- /luci-app-mosdns/root/usr/share/rpcd/acl.d/luci-app-mosdns.json: -------------------------------------------------------------------------------- 1 | { 2 | "luci-app-mosdns": { 3 | "description": "Grant UCI access for luci-app-mosdns", 4 | "read": { 5 | "uci": [ "mosdns" ] 6 | }, 7 | "write": { 8 | "uci": [ "mosdns" ] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /luci-app-mosdns/root/www/luci-static/resources/mosdns/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker{color:blue;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"} 2 | -------------------------------------------------------------------------------- /luci-app-mosdns/root/www/luci-static/resources/mosdns/addon/fold/indent-fold.js: -------------------------------------------------------------------------------- 1 | !function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function n(n,t){var i=n.getLine(t),o=i.search(/\S/);return-1==o||/\bcomment\b/.test(n.getTokenTypeAt(e.Pos(t,o+1)))?-1:e.countColumn(i,null,n.getOption("tabSize"))}e.registerHelper("fold","indent",function(t,i){var o=n(t,i.line);if(!(o<0)){for(var r=null,l=i.line+1,f=t.lastLine();l<=f;++l){var u=n(t,l);if(-1==u);else{if(!(u>o))break;r=l}}return r?{from:e.Pos(i.line,t.getLine(i.line).length),to:e.Pos(r,t.getLine(r).length)}:void 0}})}); -------------------------------------------------------------------------------- /luci-app-nikki/Makefile: -------------------------------------------------------------------------------- 1 | include $(TOPDIR)/rules.mk 2 | 3 | PKG_VERSION:=1.22.4 4 | 5 | LUCI_TITLE:=LuCI Support for nikki 6 | LUCI_DEPENDS:=+luci-base +nikki 7 | 8 | include $(TOPDIR)/feeds/luci/luci.mk 9 | 10 | # call BuildPackage - OpenWrt buildroot signature -------------------------------------------------------------------------------- /luci-app-nikki/po/zh-cn: -------------------------------------------------------------------------------- 1 | zh_Hans -------------------------------------------------------------------------------- /luci-app-openclash/luasrc/model/cbi/openclash/log.lua: -------------------------------------------------------------------------------- 1 | -- 2 | local NXFS = require "nixio.fs" 3 | local SYS = require "luci.sys" 4 | local HTTP = require "luci.http" 5 | 6 | m = Map("openclash", translate("Server Logs")) 7 | s = m:section(TypedSection, "openclash") 8 | m.pageaction = false 9 | s.anonymous = true 10 | s.addremove=false 11 | 12 | log = s:option(TextValue, "clog") 13 | log.readonly=true 14 | log.pollcheck=true 15 | log.template="openclash/log" 16 | log.description = translate("") 17 | log.rows = 29 18 | 19 | m:append(Template("openclash/toolbar_show")) 20 | m:append(Template("openclash/config_editor")) 21 | 22 | return m -------------------------------------------------------------------------------- /luci-app-openclash/luasrc/view/openclash/cfg_check.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 |
3 | <% 4 | local val = self:cfgvalue(section) 5 | if val == translate("Enable") or val == translate("Enabled") or val == translate("Config Normal") or val == translate("Exist") then 6 | %> 7 |
8 | <% 9 | else 10 | %> 11 |
12 | <% 13 | end 14 | write(pcdata(val)) 15 | %> 16 |
17 |
18 | <%+cbi/valuefooter%> 19 | -------------------------------------------------------------------------------- /luci-app-openclash/luasrc/view/openclash/dvalue.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 |
3 |
4 | <%:Note: Please Upload File According To File Type, File Will Be Saved To The Prompt Path%> 5 |
6 |
7 | <% 8 | local val = self:cfgvalue(section) or self.default or "" 9 | write(pcdata(val)) 10 | %> 11 |
12 |
13 | <%+cbi/valuefooter%> 14 | -------------------------------------------------------------------------------- /luci-app-openclash/luasrc/view/openclash/flush_fakeip_cache.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 3 | 34 | 35 | 36 | 37 | <%+cbi/valuefooter%> 38 | -------------------------------------------------------------------------------- /luci-app-openclash/luasrc/view/openclash/input_file_name.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 18 | 19 | <%+cbi/valuefooter%> 20 | -------------------------------------------------------------------------------- /luci-app-openclash/luasrc/view/openclash/input_rename.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 22 | 23 | <%+cbi/valuefooter%> 24 | -------------------------------------------------------------------------------- /luci-app-openclash/luasrc/view/openclash/other_button.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | <% if self:cfgvalue(section) ~= false then %> 3 | " style="display: <%= display %>" type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> /> 4 | <% else %> 5 | - 6 | <% end %> 7 | <%+cbi/valuefooter%> 8 | -------------------------------------------------------------------------------- /luci-app-openclash/luasrc/view/openclash/update_config.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | <% 3 | local fs = require "luci.openclash" 4 | local filename = fs.filename(self:cfgvalue(section)) or "config" 5 | local display = self.display or "" 6 | local idname = math.random(1000)..(string.match(filename, "[%w_]+") or "") 7 | %> 8 | 19 | 20 | <% 21 | if display == "" then 22 | %> 23 | 24 | <% 25 | end 26 | %> 27 | <%+cbi/valuefooter%> 28 | -------------------------------------------------------------------------------- /luci-app-openclash/po/zh_Hans: -------------------------------------------------------------------------------- 1 | zh-cn -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/Country.mmdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/etc/openclash/Country.mmdb -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/GeoIP.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/etc/openclash/GeoIP.dat -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/GeoSite.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/etc/openclash/GeoSite.dat -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_chnroute6_pass.list: -------------------------------------------------------------------------------- 1 | #baidu.com 2 | #2400:da00::dbf:0:100 3 | ##解决绕过大陆后谷歌商店无法更新 4 | services.googleapis.cn 5 | googleapis.cn 6 | xn--ngstr-lra8j.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_chnroute_pass.list: -------------------------------------------------------------------------------- 1 | #baidu.com 2 | #114.114.114.114 3 | ##解决绕过大陆后谷歌商店无法更新 4 | services.googleapis.cn 5 | googleapis.cn 6 | xn--ngstr-lra8j.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_domain_dns.list: -------------------------------------------------------------------------------- 1 | #baidu.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_domain_dns_policy.list: -------------------------------------------------------------------------------- 1 | #'www.baidu.com': '114.114.114.114' 2 | #'+.internal.crop.com': '10.0.0.1' 3 | #"_vlmcs._tcp.lan": '127.0.0.1:53' 4 | #"geosite:category-games@cn": [https://doh.pub/dns-query, 114.114.114.114, 223.5.5.5] 5 | #"geosite:google": [tls://8.8.4.4, https://1.0.0.1/dns-query] 6 | #"geosite:cn": [https://doh.pub/dns-query, 114.114.114.114, 223.5.5.5] -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_firewall_rules.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . /usr/share/openclash/log.sh 3 | . /lib/functions.sh 4 | 5 | # This script is called by /etc/init.d/openclash 6 | # Add your custom firewall rules here, they will be added after the end of the OpenClash iptables rules 7 | 8 | LOG_OUT "Tip: Start Add Custom Firewall Rules..." 9 | 10 | exit 0 -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_hosts.list: -------------------------------------------------------------------------------- 1 | # Static hosts for DNS server and connection establishment (like /etc/hosts) 2 | # 3 | # Wildcard hostnames are supported (e.g. *.clash.dev, *.foo.*.example.com) 4 | # Non-wildcard domain names have a higher priority than wildcard domain names 5 | # e.g. foo.example.com > *.example.com > .example.com 6 | # P.S. +.foo.com equals to .foo.com and foo.com 7 | 8 | # '*.clash.dev': 127.0.0.1 9 | # '.dev': 127.0.0.1 10 | # 'alpha.clash.dev': '::1' 11 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_localnetwork_ipv4.list: -------------------------------------------------------------------------------- 1 | 0.0.0.0/8 2 | 10.0.0.0/8 3 | 100.64.0.0/10 4 | 127.0.0.0/8 5 | 169.254.0.0/16 6 | 172.16.0.0/12 7 | 192.168.0.0/16 8 | 224.0.0.0/4 9 | 240.0.0.0/4 -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_localnetwork_ipv6.list: -------------------------------------------------------------------------------- 1 | ::/128 2 | ::1/128 3 | ::ffff:0:0/96 4 | ::ffff:0:0:0/96 5 | 64:ff9b::/96 6 | 100::/64 7 | 2001::/32 8 | 2001:20::/28 9 | 2001:db8::/32 10 | 2002::/16 11 | fc00::/7 12 | fe80::/10 13 | ff00::/8 -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/custom/openclash_custom_rules_2.list: -------------------------------------------------------------------------------- 1 | rules: 2 | ##- DOMAIN-SUFFIX,google.com,Proxy #匹配域名后缀(交由Proxy代理服务器组) 3 | ##- DOMAIN-KEYWORD,google,Proxy #匹配域名关键字(交由Proxy代理服务器组) 4 | ##- DOMAIN,google.com,Proxy #匹配域名(交由Proxy代理服务器组) 5 | ##- DOMAIN-SUFFIX,ad.com,REJECT #匹配域名后缀(拒绝) 6 | ##- IP-CIDR,127.0.0.0/8,DIRECT #匹配数据目标IP(直连) 7 | ##- SRC-IP-CIDR,192.168.1.201/32,DIRECT #匹配数据发起IP(直连) 8 | ##- DST-PORT,80,DIRECT #匹配数据目标端口(直连) 9 | ##- SRC-PORT,7777,DIRECT #匹配数据源端口(直连) 10 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/ABC: -------------------------------------------------------------------------------- 1 | payload: 2 | # > ABC 3 | - DOMAIN-SUFFIX,edgedatg.com 4 | - DOMAIN-SUFFIX,go.com 5 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Abema_TV: -------------------------------------------------------------------------------- 1 | payload: 2 | # > AbemaTV 3 | # - USER-AGENT,AbemaTV* 4 | - PROCESS-NAME,tv.abema 5 | - DOMAIN-SUFFIX,abema.io 6 | - DOMAIN-SUFFIX,abema.tv 7 | - DOMAIN-SUFFIX,akamaized.net 8 | - DOMAIN-SUFFIX,ameba.jp 9 | - DOMAIN-SUFFIX,hayabusa.io 10 | - DOMAIN-KEYWORD,abematv.akamaized.net 11 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Apple_Music: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Apple Music 3 | # - USER-AGENT,Music* 4 | - PROCESS-NAME,music 5 | - DOMAIN-SUFFIX,applemusic.com 6 | - DOMAIN-SUFFIX,blobstore.apple.com 7 | - DOMAIN-SUFFIX,music.apple.com 8 | - DOMAIN,aod.itunes.apple.com 9 | - DOMAIN,aod-ssl.itunes.apple.com 10 | - DOMAIN,audio.itunes.apple.com 11 | - DOMAIN,audio-ssl.itunes.apple.com 12 | - DOMAIN,mvod.itunes.apple.com 13 | - DOMAIN,streamingaudio.itunes.apple.com 14 | 15 | # iCloud Music Library 16 | - DOMAIN-SUFFIX,blobstore.apple.com 17 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Apple_News: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Apple News and Apple Map TOMTOM Version 3 | # - USER-AGENT,AppleNews* 4 | # - USER-AGENT,com.apple.news* 5 | - DOMAIN,gspe1-ssl.ls.apple.com 6 | # - USER-AGENT,News* 7 | # - DOMAIN,apple.comscoreresearch.com 8 | # - DOMAIN,gateway.icloud.com 9 | # - DOMAIN,news-client.apple.com 10 | # - DOMAIN,news-edge.apple.com 11 | # - DOMAIN,news-events.apple.com 12 | # - DOMAIN-SUFFIX,apple.news 13 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Apple_TV: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Apple TV 3 | - DOMAIN,np-edge.itunes.apple.com 4 | - DOMAIN,play-edge.itunes.apple.com 5 | - DOMAIN-SUFFIX,tv.apple.com 6 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/BBC_iPlayer: -------------------------------------------------------------------------------- 1 | payload: 2 | # > BBC iPlayer 3 | - PROCESS-NAME,bbc.iplayer.android 4 | - DOMAIN-KEYWORD,bbcfmt 5 | - DOMAIN,aod-dash-uk-live.akamaized.net 6 | - DOMAIN,aod-hls-uk-live.akamaized.net 7 | - DOMAIN,vod-dash-uk-live.akamaized.net 8 | - DOMAIN,vod-thumb-uk-live.akamaized.net 9 | - DOMAIN-SUFFIX,bbc.co 10 | - DOMAIN-SUFFIX,bbc.co.uk 11 | - DOMAIN-SUFFIX,bbc.com 12 | - DOMAIN-SUFFIX,bbcfmt.hs.llnwd.net 13 | - DOMAIN-SUFFIX,bbci.co 14 | - DOMAIN-SUFFIX,bbci.co.uk 15 | - DOMAIN-SUFFIX,bidi.net.uk 16 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Bahamut: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Bahamut 3 | # - USER-AGENT,Anime* 4 | - PROCESS-NAME,tw.com.gamer.android.animad 5 | - DOMAIN-SUFFIX,bahamut.com.tw 6 | - DOMAIN-SUFFIX,gamer.com.tw 7 | - DOMAIN,gamer-cds.cdn.hinet.net 8 | - DOMAIN,gamer2-cds.cdn.hinet.net 9 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Bilibili: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Bilibili 3 | # - USER-AGENT,bili* 4 | - DOMAIN-SUFFIX,acg.tv 5 | - DOMAIN-SUFFIX,acgvideo.com 6 | - DOMAIN-SUFFIX,b23.tv 7 | - DOMAIN-SUFFIX,bilibili.com 8 | - DOMAIN-SUFFIX,bilibili.tv 9 | - DOMAIN-SUFFIX,biliapi.net 10 | - DOMAIN-SUFFIX,biliapi.com 11 | - DOMAIN-SUFFIX,bilivideo.com 12 | - DOMAIN-SUFFIX,hdslb.com 13 | - DOMAIN,upos-hz-mirrorakam.akamaized.net 14 | # Hong Kong, Macau, Taiwan 15 | # - USER-AGENT,bili-inter* 16 | - DOMAIN,apiintl.biliapi.net 17 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/DAZN: -------------------------------------------------------------------------------- 1 | payload: 2 | # > DAZN 3 | # - USER-AGENT,DAZN* 4 | 5 | - PROCESS-NAME,com.dazn 6 | 7 | - DOMAIN-KEYWORD,voddazn 8 | 9 | - DOMAIN-SUFFIX,dazn.com 10 | - DOMAIN-SUFFIX,dazn-api.com 11 | - DOMAIN-SUFFIX,dazndn.com 12 | - DOMAIN-SUFFIX,daznedge.net 13 | - DOMAIN-SUFFIX,daznfeeds.com 14 | - DOMAIN-SUFFIX,daznservices.com 15 | - DOMAIN-SUFFIX,indazn.com 16 | - DOMAIN-SUFFIX,indaznlab.com 17 | 18 | - DOMAIN,daznfeeds.com.edgekey.net 19 | - DOMAIN,dca-lm-livedazn.secure.footprint.net 20 | - DOMAIN,h-dazn.online-metrix.net 21 | - DOMAIN,images-daznservices-com.cdn.ampproject.org 22 | - DOMAIN,d151l6v8er5bdm.cloudfront.net 23 | 24 | - IP-CIDR,185.42.236.0/24,no-resolve 25 | - IP-CIDR,185.42.238.0/24,no-resolve -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Discord: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Discord 3 | - DOMAIN-SUFFIX,discord.com 4 | - DOMAIN-SUFFIX,discord.gg 5 | - DOMAIN-SUFFIX,discord.media 6 | - DOMAIN-SUFFIX,discordapp.com 7 | - DOMAIN-SUFFIX,discordapp.net 8 | - DOMAIN-SUFFIX,discordstatus.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Discovery_Plus: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Discovery Plus 3 | - PROCESS-NAME,com.discovery.discoveryplus.mobile 4 | - DOMAIN-SUFFIX,content-ause1-ur-discovery1.uplynk.com 5 | - DOMAIN-SUFFIX,disco-api.com 6 | - DOMAIN-SUFFIX,discoveryplus.com 7 | - DOMAIN-SUFFIX,fwmrm.net 8 | - DOMAIN-SUFFIX,getblueshift.com 9 | - DOMAIN-SUFFIX,litix.io 10 | - DOMAIN-SUFFIX,mobile-collector.newrelic.com 11 | - DOMAIN-SUFFIX,uplynk.com 12 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Disney_Plus: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Disney Plus 3 | # - USER-AGENT,Disney* 4 | 5 | - PROCESS-NAME,com.disney.disneyplus 6 | 7 | - DOMAIN-SUFFIX,adobedtm.com 8 | - DOMAIN-SUFFIX,bam.nr-date.net 9 | - DOMAIN-SUFFIX,bamgrid.com 10 | - DOMAIN-SUFFIX,braze.com 11 | - DOMAIN-SUFFIX,cdn.optimizely.com 12 | - DOMAIN-SUFFIX,d9.flashtalking.com 13 | - DOMAIN-SUFFIX,disney.demdex.net 14 | - DOMAIN-SUFFIX,disney.my.sentry.io 15 | - DOMAIN-SUFFIX,disneyplus.bn5x.net 16 | - DOMAIN-SUFFIX,disneyplus.com 17 | - DOMAIN-SUFFIX,disneyplus.com.ssl.sc.omtrdc.net 18 | - DOMAIN-SUFFIX,disney-plus.net 19 | - DOMAIN-SUFFIX,disney-portal.my.onetrust.com 20 | - DOMAIN-SUFFIX,dssott.com 21 | - DOMAIN-SUFFIX,registerdisney.go.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/F1_TV: -------------------------------------------------------------------------------- 1 | payload: 2 | # > F1 TV 3 | - DOMAIN,d2n9h2wits23hf.cloudfront.net 4 | - DOMAIN,f1prodlive.akamaized.net 5 | - DOMAIN,mobile-collector.newrelic.com 6 | - DOMAIN-SUFFIX,bitmovin.com 7 | - DOMAIN-SUFFIX,f1esports.com 8 | - DOMAIN-SUFFIX,f1manager.com 9 | - DOMAIN-SUFFIX,f1play.com 10 | - DOMAIN-SUFFIX,formula1.com 11 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Fox+: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Fox+ (HK|TW|SG) 3 | # - USER-AGENT,FOXPlus* 4 | - DOMAIN-SUFFIX,akamaized.net 5 | - DOMAIN-SUFFIX,foxplus.com 6 | - DOMAIN-SUFFIX,theplatform.com 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Fox_Now: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Fox Now 3 | # - USER-AGENT,FOX%20NOW* 4 | - DOMAIN-SUFFIX,fox.com 5 | - DOMAIN-SUFFIX,foxdcg.com 6 | - DOMAIN-SUFFIX,uplynk.com 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/HBO: -------------------------------------------------------------------------------- 1 | payload: 2 | # > HBO Max 3 | - PROCESS-NAME,com.hbo.hbonow 4 | - DOMAIN-SUFFIX,hbo.com 5 | - DOMAIN-SUFFIX,hbogo.com 6 | - DOMAIN-SUFFIX,hbonow.com 7 | - DOMAIN-SUFFIX,hbomax.com 8 | - DOMAIN-SUFFIX,hbomaxcdn.com 9 | 10 | # > HBO GO 11 | - DOMAIN,44wilhpljf.execute-api.ap-southeast-1.amazonaws.com 12 | - DOMAIN,bcbolthboa-a.akamaihd.net 13 | - DOMAIN,cf-images.ap-southeast-1.prod.boltdns.net 14 | - DOMAIN,dai3fd1oh325y.cloudfront.net 15 | - DOMAIN,hboasia1-i.akamaihd.net 16 | - DOMAIN,hboasia2-i.akamaihd.net 17 | - DOMAIN,hboasia3-i.akamaihd.net 18 | - DOMAIN,hboasia4-i.akamaihd.net 19 | - DOMAIN,hboasia5-i.akamaihd.net 20 | - DOMAIN,players.brightcove.net 21 | - DOMAIN,s3-ap-southeast-1.amazonaws.com 22 | - DOMAIN-SUFFIX,hbogoasia.com 23 | - DOMAIN-SUFFIX,hbogoasia.hk 24 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/HBO_Go: -------------------------------------------------------------------------------- 1 | payload: 2 | # > HBO Max 3 | # - USER-AGENT,HBO%20GO%20PROD* 4 | 5 | # - DOMAIN-KEYWORD,hboasia 6 | - DOMAIN-KEYWORD,hbogoasia 7 | 8 | - DOMAIN-SUFFIX,hboasia.com 9 | - DOMAIN-SUFFIX,hbogo.co.th 10 | - DOMAIN-SUFFIX,hbogo.com 11 | - DOMAIN-SUFFIX,hbogo.eu 12 | - DOMAIN-SUFFIX,hbogoasia.com 13 | - DOMAIN-SUFFIX,hbogoasia.id 14 | - DOMAIN-SUFFIX,hbogoasia.ph 15 | 16 | - DOMAIN,hbolb.onwardsmg.com 17 | - DOMAIN,hbounify-prod.evergent.com 18 | # - DOMAIN,bcbolthboa-a.akamaihd.net 19 | - DOMAIN,dai3fd1oh325y.cloudfront.net 20 | # - DOMAIN,hboasialive.akamaized.net 21 | # - DOMAIN,hbogoprod-vod.akamaized.net -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/HBO_Max: -------------------------------------------------------------------------------- 1 | payload: 2 | # > HBO Max 3 | # - USER-AGENT,HBOMAX* 4 | 5 | - DOMAIN-SUFFIX,hbo.com 6 | - DOMAIN-SUFFIX,hbomax.com 7 | - DOMAIN-SUFFIX,hbomaxcdn.com 8 | - DOMAIN-SUFFIX,hbonow.com 9 | - DOMAIN-SUFFIX,hbomax.com 10 | 11 | - DOMAIN,execute-api.ap-southeast-1.amazonaws.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Hulu: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Hulu 3 | - PROCESS-NAME,com.hulu.plus 4 | 5 | - DOMAIN-SUFFIX,hulu.com 6 | - DOMAIN-SUFFIX,hulu.hb.omtrdc.net 7 | - DOMAIN-SUFFIX,hulu.sc.omtrdc.net 8 | - DOMAIN-SUFFIX,huluad.com 9 | - DOMAIN-SUFFIX,huluim.com 10 | - DOMAIN-SUFFIX,hulumail.com 11 | - DOMAIN-SUFFIX,huluqa.com 12 | - DOMAIN-SUFFIX,hulustream.com 13 | 14 | - DOMAIN,cs428.wpc.edgecastcdn.net 15 | - DOMAIN,cws-hulu.conviva.com 16 | - DOMAIN,hulu.com.c.footprint.net 17 | - DOMAIN,hulu.map.fastly.net 18 | 19 | - IP-CIDR,8.28.124.0/23 20 | - IP-CIDR,199.60.116.0/24 21 | - IP-CIDR,199.200.48.0/22 22 | - IP-CIDR,208.91.156.0/22 23 | - IP-CIDR6,2620:100:3000::/40 -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Hulu_Japan: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Hulu(フールー) 3 | - PROCESS-NAME,jp.happyon.android 4 | - DOMAIN-SUFFIX,happyon.jp 5 | - DOMAIN-SUFFIX,hulu.jp 6 | - DOMAIN-SUFFIX,prod.hjholdings.tv 7 | - DOMAIN-SUFFIX,streaks.jp 8 | - DOMAIN-SUFFIX,yb.uncn.jp 9 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/IQI: -------------------------------------------------------------------------------- 1 | payload: 2 | # > iQIYI Intl 3 | # - USER-AGENT,iQIYI* 4 | # - USER-AGENT,QIYIVideo* 5 | # - USER-AGENT,QYPlayer* 6 | # - USER-AGENT,QTP* 7 | # - PROCESS-NAME,com.iqiyi.i18n 8 | # - PROCESS-NAME,com.iqiyi.i18n.tv 9 | - DOMAIN-SUFFIX,inter.iqiyi.com 10 | - DOMAIN-SUFFIX,iq.com 11 | # 首页 12 | - DOMAIN-SUFFIX,intl.iqiyi.com 13 | # 历史 14 | - DOMAIN,intl-rcd.iqiyi.com 15 | # 收藏 16 | - DOMAIN,intl-subscription.iqiyi.com 17 | # 播放 18 | - IP-CIDR,104.85.165.17/32,no-resolve 19 | - IP-CIDR,110.238.107.47/32,no-resolve 20 | - IP-CIDR,118.26.32.162/32,no-resolve 21 | - IP-CIDR,159.138.102.146/32,no-resolve 22 | - IP-CIDR,184.51.102.0/24,no-resolve 23 | - IP-CIDR,203.74.95.130/28,no-resolve 24 | - IP-CIDR,203.80.97.203/32,no-resolve 25 | - IP-CIDR,210.71.227.202/32,no-resolve 26 | - IP-CIDR,23.200.145.146/32,no-resolve 27 | - IP-CIDR,23.210.215.186/32,no-resolve 28 | - IP-CIDR,23.211.15.0/24,no-resolve 29 | - IP-CIDR,23.219.172.0/24,no-resolve 30 | - IP-CIDR,23.40.242.10/32,no-resolve 31 | - IP-CIDR,23.59.252.0/24,no-resolve 32 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/IQYI: -------------------------------------------------------------------------------- 1 | payload: 2 | # > IQIYI 3 | # - USER-AGENT,*QIYI* 4 | # - USER-AGENT,iQiYi* 5 | - DOMAIN-SUFFIX,iqiyi.com 6 | - DOMAIN-SUFFIX,iqiyipic.com 7 | - DOMAIN-SUFFIX,iq.com 8 | - DOMAIN-SUFFIX,qy.net 9 | - DOMAIN-SUFFIX,gitv.tv 10 | - DOMAIN-SUFFIX,71.am 11 | - DOMAIN-KEYWORD,qiyi 12 | - DOMAIN,cache.video.iqiyi.com 13 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/JOOX: -------------------------------------------------------------------------------- 1 | payload: 2 | # > JOOX 3 | - PROCESS-NAME,com.tencent.ibg.joox 4 | - PROCESS-NAME,com.tencent.ibg.jooxtv 5 | - DOMAIN-SUFFIX,joox.com 6 | - DOMAIN-KEYWORD,jooxweb-api 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Japonx: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Japonx 3 | - DOMAIN-KEYWORD,japonx 4 | - DOMAIN-KEYWORD,japronx 5 | - DOMAIN-SUFFIX,japonx.com 6 | - DOMAIN-SUFFIX,japonx.tv 7 | - DOMAIN-SUFFIX,japonx.net 8 | - DOMAIN-SUFFIX,japonx.vip 9 | - DOMAIN-SUFFIX,japronx.com 10 | - DOMAIN-SUFFIX,japronx.tv 11 | - DOMAIN-SUFFIX,japronx.net 12 | - DOMAIN-SUFFIX,japronx.vip 13 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/KKBOX: -------------------------------------------------------------------------------- 1 | payload: 2 | # > KKBOX 3 | - DOMAIN-SUFFIX,kkbox.com 4 | - DOMAIN-SUFFIX,kkbox.com.tw 5 | - DOMAIN-SUFFIX,kfs.io 6 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/KKTV: -------------------------------------------------------------------------------- 1 | payload: 2 | # > KKTV 3 | - PROCESS-NAME,com.kktv.kktv 4 | - DOMAIN-SUFFIX,kktv.me 5 | - DOMAIN-SUFFIX,kktv.com.tw 6 | - DOMAIN,kktv-theater.kk.stream 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/LAN: -------------------------------------------------------------------------------- 1 | payload: 2 | - DOMAIN-SUFFIX,local 3 | - IP-CIDR,127.0.0.0/8 4 | - IP-CIDR,172.16.0.0/12 5 | - IP-CIDR,192.168.0.0/16 6 | - IP-CIDR,10.0.0.0/8 7 | - IP-CIDR,17.0.0.0/8 8 | - IP-CIDR,100.64.0.0/10 9 | - IP-CIDR6,fe80::/10 10 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Letv: -------------------------------------------------------------------------------- 1 | payload: 2 | # > letv 3 | - DOMAIN-SUFFIX,api.mob.app.letv.com 4 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Line_TV: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Line TV 3 | # - USER-AGENT,LINE* 4 | - DOMAIN-SUFFIX,d3c7rimkq79yfu.cloudfront.net 5 | - DOMAIN-SUFFIX,linetv.tw 6 | - DOMAIN-SUFFIX,profile.line-scdn.net 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Netease_Music: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Netease Music 3 | - DOMAIN-SUFFIX,163yun.com 4 | - DOMAIN-SUFFIX,api.iplay.163.com 5 | - DOMAIN-SUFFIX,hz.netease.com 6 | - DOMAIN-SUFFIX,mam.netease.com 7 | - DOMAIN-SUFFIX,music.163.com 8 | - IP-CIDR,101.71.154.241/32,no-resolve 9 | - IP-CIDR,103.126.92.132/32,no-resolve 10 | - IP-CIDR,103.126.92.133/32,no-resolve 11 | - IP-CIDR,112.13.119.17/32,no-resolve 12 | - IP-CIDR,112.13.122.1/32,no-resolve 13 | - IP-CIDR,115.236.118.33/32,no-resolve 14 | - IP-CIDR,115.236.121.1/32,no-resolve 15 | - IP-CIDR,118.24.63.156/32,no-resolve 16 | - IP-CIDR,193.112.159.225/32,no-resolve 17 | - IP-CIDR,223.252.199.66/32,no-resolve 18 | - IP-CIDR,223.252.199.67/32,no-resolve 19 | - IP-CIDR,39.105.63.80/32,no-resolve 20 | - IP-CIDR,45.254.48.1/32,no-resolve 21 | - IP-CIDR,47.100.127.239/32,no-resolve 22 | - IP-CIDR,59.111.160.195/32,no-resolve 23 | - IP-CIDR,59.111.160.197/32,no-resolve 24 | - IP-CIDR,59.111.181.35/32,no-resolve 25 | - IP-CIDR,59.111.181.38/32,no-resolve 26 | - IP-CIDR,59.111.181.60/32,no-resolve 27 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Niconico: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Niconico 3 | - DOMAIN-SUFFIX,dmc.nico 4 | - DOMAIN-SUFFIX,nicovideo.jp 5 | - DOMAIN-SUFFIX,nicodic.jp 6 | - DOMAIN-SUFFIX,nicomanga.jp 7 | - DOMAIN-SUFFIX,niconico.com 8 | - DOMAIN-SUFFIX,nicoseiga.jp 9 | - DOMAIN-SUFFIX,nimg.jp 10 | - DOMAIN-SUFFIX,simg.jp 11 | - DOMAIN-SUFFIX,socdm.com 12 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/PBS: -------------------------------------------------------------------------------- 1 | payload: 2 | # > PBS 3 | # - USER-AGENT,PBS* 4 | - DOMAIN-SUFFIX,pbs.org 5 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Pandora: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Pandora 3 | - PROCESS-NAME,com.pandora.android 4 | - DOMAIN-SUFFIX,pandora.com 5 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/PayPal: -------------------------------------------------------------------------------- 1 | payload: 2 | # > PayPal 3 | # - USER-AGENT,PayPal* 4 | - DOMAIN-KEYWORD,paypal 5 | - DOMAIN-SUFFIX,paypal.com 6 | - DOMAIN-SUFFIX,paypalobjects.com 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Pornhub: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Pornhub 3 | - DOMAIN-SUFFIX,phncdn.com 4 | - DOMAIN-SUFFIX,phprcdn.com 5 | - DOMAIN-SUFFIX,pornhub.com 6 | - DOMAIN-SUFFIX,pornhubpremium.com 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Soundcloud: -------------------------------------------------------------------------------- 1 | payload: 2 | # > SoundCloud 3 | # - USER-AGENT,SoundCloud* 4 | 5 | - DOMAIN-SUFFIX,sndcdn.com 6 | - DOMAIN-SUFFIX,soundcloud.app.goo.gl 7 | - DOMAIN-SUFFIX,soundcloud.com 8 | - DOMAIN-SUFFIX,soundcloudmail.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Speedtest: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Fast 3 | - DOMAIN-SUFFIX,fast.com 4 | 5 | # > Speedtest by Ookla 6 | # - USER-AGENT,SpeedTest* 7 | - DOMAIN-KEYWORD,speedtest 8 | - DOMAIN-SUFFIX,ooklaserver.net 9 | - DOMAIN,speed.dler.io 10 | 11 | # > Speed Test by Cloudflare 12 | - DOMAIN-SUFFIX,speed.cloudflare.com 13 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Spotify: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Spotify 3 | # - USER-AGENT,Spotify* 4 | 5 | - PROCESS-NAME,com.spotify.music 6 | 7 | - DOMAIN-SUFFIX,pscdn.co 8 | - DOMAIN-SUFFIX,scdn.co 9 | - DOMAIN-SUFFIX,spoti.fi 10 | - DOMAIN-SUFFIX,spotify.com 11 | - DOMAIN-SUFFIX,spotifycdn.com 12 | - DOMAIN-SUFFIX,spotifycdn.net 13 | - DOMAIN-SUFFIX,spotifycharts.com 14 | - DOMAIN-SUFFIX,spotifycodes.com 15 | - DOMAIN-SUFFIX,spotifyjobs.com 16 | - DOMAIN-SUFFIX,spotifynewsroom.jp 17 | - DOMAIN-SUFFIX,spotilocal.com 18 | - DOMAIN-SUFFIX,tospotify.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Steam: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Steam 3 | - DOMAIN-SUFFIX,fanatical.com 4 | - DOMAIN-SUFFIX,humblebundle.com 5 | - DOMAIN-SUFFIX,playartifact.com 6 | - DOMAIN-SUFFIX,s.team 7 | - DOMAIN-SUFFIX,steam-chat.com 8 | - DOMAIN-SUFFIX,steamcommunity.com 9 | - DOMAIN-SUFFIX,steampowered.com 10 | - DOMAIN-SUFFIX,steamgames.com 11 | - DOMAIN-SUFFIX,steamstatic.com 12 | - DOMAIN-SUFFIX,steamusercontent.com 13 | - DOMAIN-SUFFIX,underlords.com 14 | - DOMAIN-SUFFIX,valvesoftware.com -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Telegram: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Telegram 3 | - DOMAIN-SUFFIX,t.me 4 | - DOMAIN-SUFFIX,tx.me 5 | - DOMAIN-SUFFIX,tdesktop.com 6 | - DOMAIN-SUFFIX,telegra.ph 7 | - DOMAIN-SUFFIX,telegram.me 8 | - DOMAIN-SUFFIX,telegram.org 9 | - DOMAIN-SUFFIX,telegram-cdn.org 10 | - DOMAIN-SUFFIX,telesco.pe 11 | 12 | - IP-CIDR,91.105.192.0/23,no-resolve 13 | - IP-CIDR,91.108.56.0/22,no-resolve 14 | - IP-CIDR,91.108.4.0/22,no-resolve 15 | - IP-CIDR,91.108.8.0/22,no-resolve 16 | - IP-CIDR,91.108.12.0/22,no-resolve 17 | - IP-CIDR,91.108.16.0/22,no-resolve 18 | - IP-CIDR,91.108.20.0/22,no-resolve 19 | - IP-CIDR,149.154.160.0/20,no-resolve 20 | - IP-CIDR,185.76.151.0/24,no-resolve 21 | - IP-CIDR6,2001:67c:4e8::/48,no-resolve 22 | - IP-CIDR6,2001:b28:f23d::/48,no-resolve 23 | - IP-CIDR6,2001:b28:f23f::/48,no-resolve 24 | - IP-CIDR6,2a0a:f280::/32,no-resolve 25 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Tencent_Video: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Tencent Video 3 | - DOMAIN-SUFFIX,v.smtcdns.com 4 | - DOMAIN-SUFFIX,vv.video.qq.com 5 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/ViuTV: -------------------------------------------------------------------------------- 1 | payload: 2 | # > ViuTV 3 | - PROCESS-NAME,com.hktve.viutv 4 | 5 | - DOMAIN-SUFFIX,bootstrapcdn.com 6 | - DOMAIN-SUFFIX,cloudfront.net 7 | - DOMAIN-SUFFIX,cognito-identity.us-east-1.amazonaws.com 8 | - DOMAIN-SUFFIX,firebaseio.com 9 | - DOMAIN-SUFFIX,jwpcdn.com 10 | - DOMAIN-SUFFIX,jwplayer.com 11 | - DOMAIN-SUFFIX,mobileanalytics.us-east-1.amazonaws.com 12 | - DOMAIN-SUFFIX,nowe.com 13 | - DOMAIN-SUFFIX,viu.com 14 | - DOMAIN-SUFFIX,viu.tv 15 | - DOMAIN-SUFFIX,viu.now.com 16 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/WeTV: -------------------------------------------------------------------------------- 1 | payload: 2 | # > WeTV 3 | - PROCESS-NAME,com.tencent.qqlivei18n 4 | - DOMAIN-SUFFIX,wetv.vip 5 | - DOMAIN-SUFFIX,wetvinfo.com 6 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/Youku: -------------------------------------------------------------------------------- 1 | payload: 2 | # > Youku 3 | - DOMAIN-SUFFIX,youku.com 4 | - IP-CIDR,106.11.0.0/16,no-resolve 5 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/encoreTVB: -------------------------------------------------------------------------------- 1 | payload: 2 | # > encoreTVB 3 | - PROCESS-NAME,com.tvbusa.encore 4 | - DOMAIN-SUFFIX,encoretvb.com 5 | - DOMAIN,content.jwplatform.com 6 | - DOMAIN,videos-f.jwpsrv.com 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/iQiyi: -------------------------------------------------------------------------------- 1 | payload: 2 | # > iQiyi 3 | - PROCESS-NAME,com.qiyi.video 4 | - DOMAIN,intel-cache.m.iqiyi.com 5 | - DOMAIN,intel-cache.video.iqiyi.com 6 | - DOMAIN,intl-rcd.iqiyi.com 7 | - DOMAIN,intl-subscription.iqiyi.com 8 | - DOMAIN-SUFFIX,inter.iqiyi.com 9 | - DOMAIN-SUFFIX,inter.ptqy.gitv.tv 10 | - DOMAIN-SUFFIX,intl.iqiyi.com 11 | - DOMAIN-SUFFIX,iq.com 12 | 13 | - IP-CIDR,23.211.15.99/32,no-resolve 14 | - IP-CIDR,103.5.34.153/32,no-resolve 15 | - IP-CIDR,104.109.129.153/32,no-resolve 16 | - IP-CIDR,110.238.107.47/32,no-resolve 17 | - IP-CIDR,118.26.32.178/32,no-resolve 18 | - IP-CIDR,203.74.95.131/32,no-resolve 19 | - IP-CIDR,203.74.95.139/32,no-resolve 20 | - IP-CIDR,203.211.4.169/32,no-resolve 21 | - IP-CIDR,203.211.4.193/32,no-resolve 22 | - IP-CIDR,210.201.32.8/32,no-resolve 23 | - IP-CIDR,210.201.32.11/32,no-resolve 24 | 25 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/miHoYo: -------------------------------------------------------------------------------- 1 | payload: 2 | # > miHoYo 3 | - DOMAIN-SUFFIX,bh3.com 4 | - DOMAIN-SUFFIX,hoyolab.com 5 | - DOMAIN-SUFFIX,hoyoverse.com 6 | - DOMAIN-SUFFIX,mihayo.com 7 | - DOMAIN-SUFFIX,mihoyo.com 8 | - DOMAIN-SUFFIX,miyoushe.com 9 | - DOMAIN-SUFFIX,yuanshen.com 10 | -------------------------------------------------------------------------------- /luci-app-openclash/root/etc/openclash/rule_provider/myTV_SUPER: -------------------------------------------------------------------------------- 1 | payload: 2 | # > myTV_SUPER 3 | # - USER-AGENT,mytv* 4 | - DOMAIN-KEYWORD,nowtv100 5 | - DOMAIN-KEYWORD,rthklive 6 | - DOMAIN-SUFFIX,mytvsuper.com 7 | - DOMAIN-SUFFIX,tvb.com 8 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/YAML.rb: -------------------------------------------------------------------------------- 1 | module YAML 2 | class << self 3 | alias_method :load, :unsafe_load if YAML.respond_to? :unsafe_load 4 | end 5 | 6 | def self.LOG(info) 7 | puts Time.new.strftime("%Y-%m-%d %H:%M:%S") + " #{info}" 8 | end 9 | end -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/cfg_unused_servers_del.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . /lib/functions.sh 3 | 4 | cfg_unused_servers_del() 5 | { 6 | 7 | local section="$1" 8 | config_get_bool "enabled" "$section" "enabled" "1" 9 | 10 | if [ "$enabled" = "1" ]; then 11 | return 12 | fi 13 | 14 | #删除未选中节点 15 | uci delete openclash."$section" 2>/dev/null 16 | } 17 | 18 | config_load "openclash" 19 | config_foreach cfg_unused_servers_del "servers" 20 | uci commit openclash 21 | 22 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/log.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | START_LOG="/tmp/openclash_start.log" 4 | LOG_FILE="/tmp/openclash.log" 5 | 6 | LOG_OUT() 7 | { 8 | if [ -n "${1}" ]; then 9 | echo -e "${1}" > $START_LOG 10 | echo -e "$(date "+%Y-%m-%d %H:%M:%S") ${1}" >> $LOG_FILE 11 | fi 12 | } 13 | 14 | LOG_INFO() 15 | { 16 | if [ -n "${1}" ]; then 17 | echo -e "$(date "+%Y-%m-%d %H:%M:%S") ${1}" >> $LOG_FILE 18 | fi 19 | } 20 | 21 | LOG_ALERT() 22 | { 23 | echo -e "$(tail -n 20 $LOG_FILE |grep -E 'level=fatal|level=error|FTL\ \[Config\]' |awk 'END {print}')" > $START_LOG 24 | sleep 3 25 | } 26 | 27 | SLOG_CLEAN() 28 | { 29 | echo "" > $START_LOG 30 | } -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/openclash_curl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | . /usr/share/openclash/log.sh 3 | 4 | DOWNLOAD_FILE_CURL() { 5 | [ -z "$1" ] || [ -z "$2" ] && return 1 6 | DOWNLOAD_URL=$1 7 | DOWNLOAD_PATH=$2 8 | DOWNLOAD_UA=$3 9 | [ -z "$DOWNLOAD_UA" ] && DOWNLOAD_UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" 10 | OUTPUT=$(curl -w "%{http_code}" -SsL --connect-timeout 30 -m 60 --speed-time 30 --speed-limit 1 --retry 2 -H "User-Agent: ${DOWNLOAD_UA}" "$DOWNLOAD_URL" -o "$DOWNLOAD_PATH" 2>&1) 11 | EXIR_CODE=${PIPESTATUS[0]} 12 | HTTP_CODE=$(echo "$OUTPUT" | tail -n1) 13 | OUTPUT=$(echo "$OUTPUT" | sed '$d' | sed ':a;N;$!ba; s/\n/ /g') 14 | if [ "$EXIR_CODE" -ne 0 ] || [ "$HTTP_CODE" -ne 200 ]; then 15 | LOG_OUT "【$DOWNLOAD_PATH】Download Failed:【$OUTPUT】" 16 | rm -rf $DOWNLOAD_PATH 17 | SLOG_CLEAN 18 | return 1 19 | else 20 | return 0 21 | fi 22 | } 23 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/openclash_urlencode.lua: -------------------------------------------------------------------------------- 1 | #!/usr/bin/lua 2 | 3 | require "nixio" 4 | require "luci.util" 5 | require "luci.sys" 6 | local HTTP = require "luci.http" 7 | local url = arg[1] 8 | 9 | if not url then os.exit(0) end 10 | 11 | print(HTTP.urlencode(url) or url) 12 | 13 | os.exit(0) -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/dashboard/CNAME: -------------------------------------------------------------------------------- 1 | clash.razord.top -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/dashboard/assets/logo-b453e72f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/dashboard/assets/logo-b453e72f.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/dashboard/manifest.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"Clash Dashboard","short_name":"Clash Dashboard","start_url":"/","display":"standalone","background_color":"#ffffff","lang":"en","scope":"./","icons":[{"src":"//cdn.jsdelivr.net/gh/Dreamacro/clash-dashboard/src/assets/Icon.png","sizes":"512x512","type":"image/png"}]} 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/CNAME: -------------------------------------------------------------------------------- 1 | d.metacubex.one 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/DocumentTitle-qgMGpI7d.js: -------------------------------------------------------------------------------- 1 | import{d as t,bx as r}from"./index-BfxF6Zjo.js";const o=({children:e})=>t(r,{get children(){return[e," - MetaCubeXD"]}});export{o as D}; 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/FiraSans-Regular-BN6hITtY.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/FiraSans-Regular-BN6hITtY.ttf -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/IconReload-bqqdFQ5q.js: -------------------------------------------------------------------------------- 1 | import{N as o}from"./index-BfxF6Zjo.js";/** 2 | * @license @tabler/icons-solidjs v3.31.0 - MIT 3 | * 4 | * This source code is licensed under the MIT license. 5 | * See the LICENSE file in the root directory of this source tree. 6 | */var e=o("outline","reload","IconReload",[["path",{d:"M19.933 13.041a8 8 0 1 1 -9.925 -8.788c3.899 -1 7.935 1.007 9.425 4.747"}],["path",{d:"M20 4v5h-5"}]]);export{e as I}; 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/Twemoji.Mozilla-BSQKJ6aF.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/Twemoji.Mozilla-BSQKJ6aF.ttf -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-cyrillic-400-normal-9itZEwnn.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-cyrillic-400-normal-9itZEwnn.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-cyrillic-400-normal-DivIpeVh.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-cyrillic-400-normal-DivIpeVh.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-cyrillic-ext-400-normal-Ct_d_4pr.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-cyrillic-ext-400-normal-Ct_d_4pr.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-cyrillic-ext-400-normal-DVFiJ7cT.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-cyrillic-ext-400-normal-DVFiJ7cT.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-greek-400-normal-B4JJYYvj.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-greek-400-normal-B4JJYYvj.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-greek-400-normal-xziLJ4od.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-greek-400-normal-xziLJ4od.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-greek-ext-400-normal-BA5_ngob.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-greek-ext-400-normal-BA5_ngob.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-greek-ext-400-normal-DDGpGFz4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-greek-ext-400-normal-DDGpGFz4.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-latin-400-normal-CRr34ncs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-latin-400-normal-CRr34ncs.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-latin-400-normal-DqUVgETp.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-latin-400-normal-DqUVgETp.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-latin-ext-400-normal-BsVau5p6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-latin-ext-400-normal-BsVau5p6.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-latin-ext-400-normal-Cah6ivqJ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-latin-ext-400-normal-Cah6ivqJ.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-vietnamese-400-normal-CiKzo2z6.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-vietnamese-400-normal-CiKzo2z6.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-vietnamese-400-normal-D5T8w5kG.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/fira-sans-vietnamese-400-normal-D5T8w5kG.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/assets/time-M8P-MK1v.js: -------------------------------------------------------------------------------- 1 | import{W as a,b4 as m}from"./index-BfxF6Zjo.js";const s=o=>a(o).locale(m()).fromNow();export{s as f}; 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/favicon.ico -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/manifest.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"MetaCubeXD","short_name":"MetaCubeXD","description":"Mihomo Dashboard, The Official One, XD","start_url":"./","display":"standalone","background_color":"#ffffff","theme_color":"#000000","lang":"en","scope":"./","icons":[{"src":"pwa-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/pwa-512x512.png","sizes":"512x512","type":"image/png"},{"src":"pwa-512x512.png","sizes":"512x512","type":"image/png","purpose":"any maskable"}]} 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/maskable-icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/maskable-icon-512x512.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/pwa-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/pwa-192x192.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/pwa-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/pwa-512x512.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/pwa-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/metacubexd/pwa-64x64.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/metacubexd/registerSW.js: -------------------------------------------------------------------------------- 1 | if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('./sw.js', { scope: './' })})} -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/CNAME: -------------------------------------------------------------------------------- 1 | yacd.metacubex.one -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/Twemoji_Mozilla.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/Twemoji_Mozilla.ttf -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/_headers: -------------------------------------------------------------------------------- 1 | # for netlify hosting 2 | # https://docs.netlify.com/routing/headers/#syntax-for-the-headers-file 3 | 4 | /* 5 | X-Frame-Options: DENY 6 | X-XSS-Protection: 1; mode=block 7 | X-Content-Type-Options: nosniff 8 | Referrer-Policy: same-origin 9 | /*.css 10 | Cache-Control: public, max-age=31536000, immutable 11 | /*.js 12 | Cache-Control: public, max-age=31536000, immutable 13 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/BaseModal-e9f180d4.css: -------------------------------------------------------------------------------- 1 | ._overlay_ukhe7_1{background-color:#0009}._cnt_ukhe7_5{position:absolute;background-color:var(--bg-modal);color:var(--color-text);line-height:1.4;opacity:.6;transition:all .3s ease;box-shadow:#0000001f 0 4px 4px,#0000003d 0 16px 32px}._afterOpen_ukhe7_15{opacity:1} 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/Config-7eb3f1bb.css: -------------------------------------------------------------------------------- 1 | ._root_1vck5_4,._section_1vck5_5{display:grid;grid-template-columns:repeat(auto-fill,minmax(49%,1fr));max-width:900px;grid-gap:5px;gap:5px}@media screen and (min-width: 30em){._root_1vck5_4,._section_1vck5_5{gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}._root_1vck5_4,._section_1vck5_5{padding:6px 15px 10px}@media screen and (min-width: 30em){._root_1vck5_4,._section_1vck5_5{padding:10px 40px 15px}}._wrapSwitch_1vck5_30{height:40px;display:flex;align-items:center}._sep_1vck5_36{max-width:900px;padding:0 15px}@media screen and (min-width: 30em){._sep_1vck5_36{padding:0 40px}}._sep_1vck5_36>div{border-top:1px dashed #373737}._label_1vck5_49{padding:15px 0;font-size:small}._fieldset_1hnn2_1{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;flex-direction:row}._input_1hnn2_10+._cnt_1hnn2_10{border:1px solid transparent;border-radius:4px;cursor:pointer;margin-bottom:5px}._input_1hnn2_10:focus+._cnt_1hnn2_10{border-color:var(--color-focus-blue)}._input_1hnn2_10:checked+._cnt_1hnn2_10{border-color:var(--color-focus-blue)} 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/Input-e46653b4.js: -------------------------------------------------------------------------------- 1 | import{b as s,T as a,R as f}from"./index-1a05af9b.js";const{useState:i,useRef:l,useEffect:p,useCallback:m}=f;function C(t){return s("input",{className:a.input,...t})}function R({value:t,...r}){const[u,n]=i(t),e=l(t);p(()=>{e.current!==t&&n(t),e.current=t},[t]);const c=m(o=>n(o.target.value),[n]);return s("input",{className:a.input,value:u,onChange:c,...r})}export{C as I,R as S}; 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/Select-04258549.js: -------------------------------------------------------------------------------- 1 | import{b as c}from"./index-1a05af9b.js";const r="_select_gfkcv_1",a={select:r};function m({options:s,selected:t,onChange:l,...n}){return c("select",{className:a.select,value:t,onChange:l,...n,children:s.map(([e,o])=>c("option",{value:e,children:o},e))})}export{m as S}; 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/Select-20369999.css: -------------------------------------------------------------------------------- 1 | ._select_gfkcv_1{height:35px;line-height:1.5;width:100%;font-size:small;padding-left:15px;appearance:none;background-color:var(--color-input-bg);color:var(--color-text);padding-right:20px;border-radius:4px;border:1px solid var(--color-input-border);background-image:url(data:image/svg+xml,%0A%20%20%20%20%3Csvg%20width%3D%228%22%20height%3D%2224%22%20viewBox%3D%220%200%208%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M4%207L7%2011H1L4%207Z%22%20fill%3D%22%23999999%22%20%2F%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M4%2017L1%2013L7%2013L4%2017Z%22%20fill%3D%22%23999999%22%20%2F%3E%0A%20%20%20%20%3C%2Fsvg%3E%0A%20%20);background-position:right 8px center;background-repeat:no-repeat}._select_gfkcv_1:hover,._select_gfkcv_1:focus{outline:none!important}._select_gfkcv_1:hover,._select_gfkcv_1:focus{border-color:#343434;color:var(--color-text-highlight);background-image:var(--select-bg-hover)}._select_gfkcv_1:focus{box-shadow:#4299e199 0 0 0 3px}._select_gfkcv_1 option{background-color:var(--color-background)} 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/TextFitler-3b17a569.js: -------------------------------------------------------------------------------- 1 | import{c as r,b as n,a3 as u,x as l}from"./index-1a05af9b.js";import{R as p}from"./rotate-cw-e799f805.js";import{d as x}from"./debounce-c1ba2006.js";const _="_rotate_1dspl_1",g="_isRotating_1dspl_5",d="_rotating_1dspl_1",c={rotate:_,isRotating:g,rotating:d};function N({isRotating:t}){const e=r(c.rotate,{[c.isRotating]:t});return n("span",{className:e,children:n(p,{width:16})})}const{useCallback:m,useState:R,useMemo:h}=l;function f(t){const[,e]=u(t),[o,i]=R(""),s=h(()=>x(e,300),[e]);return[m(a=>{i(a.target.value),s(a.target.value)},[s]),o]}const T="_input_uqa0o_1",b={input:T};function j(t){const[e,o]=f(t.textAtom);return n("input",{className:b.input,type:"text",value:o,onChange:e,placeholder:t.placeholder})}export{N as R,j as T}; 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/TextFitler-cbc3b0fe.css: -------------------------------------------------------------------------------- 1 | ._rotate_1dspl_1{display:inline-flex}._isRotating_1dspl_5{animation:_rotating_1dspl_1 3s infinite linear;animation-fill-mode:forwards}@keyframes _rotating_1dspl_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._input_uqa0o_1{-webkit-appearance:none;background-color:var(--color-input-bg);background-image:none;border-radius:20px;border:1px solid var(--color-input-border);box-sizing:border-box;color:var(--color-text-secondary);display:inline-block;font-size:inherit;outline:none;padding:8px 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%;height:36px}._input_uqa0o_1:focus{border:1px solid var(--color-focus-blue)} 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/Twemoji_Mozilla-6d90152e.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/Twemoji_Mozilla-6d90152e.ttf -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/inter-latin-400-normal-0364d368.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/inter-latin-400-normal-0364d368.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/inter-latin-400-normal-3ea830d4.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/inter-latin-400-normal-3ea830d4.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/inter-latin-800-normal-a51ac27d.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/inter-latin-800-normal-a51ac27d.woff2 -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/inter-latin-800-normal-d08d7178.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/inter-latin-800-normal-d08d7178.woff -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/assets/memoize-one.esm-efa1e849.js: -------------------------------------------------------------------------------- 1 | function h(e,r){if(e==null)return{};var t={},u=Object.keys(e),n,a;for(a=0;a=0)&&(t[n]=e[n]);return t}var o=Number.isNaN||function(r){return typeof r=="number"&&r!==r};function l(e,r){return!!(e===r||o(e)&&o(r))}function g(e,r){if(e.length!==r.length)return!1;for(var t=0;t{const{top:o}=t.current.getBoundingClientRect();i(window.innerHeight-o)},[]);return c(()=>(e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}),[e]),[t,n]}export{d as u}; 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/logo.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/manifest.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"yacd","short_name":"yacd","start_url":"./","display":"standalone","background_color":"#ffffff","lang":"en","scope":"./","icons":[{"src":"apple-touch-icon-precomposed.png","sizes":"512x512","type":"image/png"}]} 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/registerSW.js: -------------------------------------------------------------------------------- 1 | if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('./sw.js', { scope: './' })})} -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/yacd.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/yacd.ico -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/yacd/yacd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/yacd/yacd.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/zashboard/apple-touch-icon.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/NotoColorEmoji-flagsonly-CWWDk9km.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/NotoColorEmoji-flagsonly-CWWDk9km.ttf -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/metacubex-BlQkOUXT.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/metacubex-BlQkOUXT.jpg -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/zashboard/favicon.ico -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/manifest.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"zashboard","short_name":"zashboard","description":"a dashboard using clash api","start_url":"./","display":"standalone","background_color":"#ffffff","theme_color":"#000000","lang":"en","scope":"./","icons":[{"src":"./pwa-192x192.png","sizes":"192x192","type":"image/png","purpose":"any"},{"src":"./pwa-512x512.png","sizes":"512x512","type":"image/png","purpose":"any"},{"src":"./pwa-maskable-192x192.png","sizes":"192x192","type":"image/png","purpose":"maskable"},{"src":"./pwa-maskable-512x512.png","sizes":"512x512","type":"image/png","purpose":"maskable"}]} 2 | -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-192x192.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-512x512.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-maskable-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-maskable-192x192.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-maskable-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-maskable-512x512.png -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/ui/zashboard/registerSW.js: -------------------------------------------------------------------------------- 1 | if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('./sw.js', { scope: './' })})} -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/openclash/yml_groups_name_get.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . /usr/share/openclash/ruby.sh 3 | 4 | CFG_FILE=$(uci -q get openclash.config.config_path) 5 | UPDATE_CONFIG_FILE=$(uci -q get openclash.config.config_update_path) 6 | 7 | if [ ! -z "$UPDATE_CONFIG_FILE" ]; then 8 | CFG_FILE="$UPDATE_CONFIG_FILE" 9 | fi 10 | 11 | if [ -z "$CFG_FILE" ]; then 12 | for file_name in /etc/openclash/config/* 13 | do 14 | if [ -f "$file_name" ]; then 15 | CFG_FILE=$file_name 16 | break 17 | fi 18 | done 19 | fi 20 | 21 | if [ -f "$CFG_FILE" ]; then 22 | rm -rf "/tmp/Proxy_Group" 2>/dev/null 23 | ruby_read_hash_arr "$CFG_FILE" "['proxy-groups']" "['name']" >/tmp/Proxy_Group 2>&1 24 | 25 | if [ -f "/tmp/Proxy_Group" ]; then 26 | echo 'DIRECT' >>/tmp/Proxy_Group 27 | echo 'REJECT' >>/tmp/Proxy_Group 28 | echo 'REJECT-DROP' >>/tmp/Proxy_Group 29 | echo 'PASS' >>/tmp/Proxy_Group 30 | echo 'GLOBAL' >>/tmp/Proxy_Group 31 | else 32 | return 1 33 | fi 34 | else 35 | return 1 36 | fi -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/rpcd/acl.d/luci-app-openclash.json: -------------------------------------------------------------------------------- 1 | { 2 | "luci-app-openclash": { 3 | "description": "Grant UCI access for luci-app-openclash", 4 | "read": { 5 | "uci": [ "openclash" ] 6 | }, 7 | "write": { 8 | "uci": [ "openclash" ] 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /luci-app-openclash/root/usr/share/ucitrack/luci-app-openclash.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": "openclash", 3 | "init": "openclash" 4 | } 5 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: inherit; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: inherit; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/img/arrow-clockwise-light.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/img/eye-light.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/img/eye-slash-light.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/root/www/luci-static/resources/openclash/img/logo.png -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/img/megaphone-simple.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /luci-app-openclash/root/www/luci-static/resources/openclash/img/wrench-light.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /luci-app-openclash/tools/po2lmo/Makefile: -------------------------------------------------------------------------------- 1 | 2 | INSTALL = install 3 | PREFIX = /usr/bin 4 | 5 | po2lmo: src/po2lmo.o src/template_lmo.o 6 | $(CC) $(LDFLAGS) -o src/po2lmo src/po2lmo.o src/template_lmo.o 7 | 8 | install: 9 | $(INSTALL) -m 755 src/po2lmo $(PREFIX) 10 | 11 | clean: 12 | $(RM) src/po2lmo src/*.o 13 | -------------------------------------------------------------------------------- /luci-app-openclash/tools/po2lmo/src/po2lmo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-openclash/tools/po2lmo/src/po2lmo -------------------------------------------------------------------------------- /luci-app-passwall/luasrc/model/cbi/passwall/client/type/naive.lua: -------------------------------------------------------------------------------- 1 | local m, s = ... 2 | 3 | local api = require "luci.passwall.api" 4 | 5 | if not api.is_finded("naive") then 6 | return 7 | end 8 | 9 | local type_name = "Naiveproxy" 10 | 11 | local option_prefix = "naive_" 12 | 13 | local function _n(name) 14 | return option_prefix .. name 15 | end 16 | 17 | -- [[ Naive ]] 18 | 19 | s.fields["type"]:value(type_name, translate("NaiveProxy")) 20 | 21 | o = s:option(ListValue, _n("protocol"), translate("Protocol")) 22 | o:value("https", translate("HTTPS")) 23 | o:value("quic", translate("QUIC")) 24 | 25 | o = s:option(Value, _n("address"), translate("Address (Support Domain Name)")) 26 | 27 | o = s:option(Value, _n("port"), translate("Port")) 28 | o.datatype = "port" 29 | 30 | o = s:option(Value, _n("username"), translate("Username")) 31 | 32 | o = s:option(Value, _n("password"), translate("Password")) 33 | o.password = true 34 | 35 | api.luci_types(arg[1], m, s, type_name, option_prefix) 36 | -------------------------------------------------------------------------------- /luci-app-passwall/luasrc/model/cbi/passwall/server/user.lua: -------------------------------------------------------------------------------- 1 | local api = require "luci.passwall.api" 2 | local fs = api.fs 3 | local types_dir = "/usr/lib/lua/luci/model/cbi/passwall/server/type/" 4 | 5 | m = Map("passwall_server", translate("Server Config")) 6 | m.redirect = api.url("server") 7 | api.set_apply_on_parse(m) 8 | 9 | if not arg[1] or not m:get(arg[1]) then 10 | luci.http.redirect(m.redirect) 11 | end 12 | 13 | s = m:section(NamedSection, arg[1], "user", "") 14 | s.addremove = false 15 | s.dynamic = false 16 | 17 | o = s:option(Flag, "enable", translate("Enable")) 18 | o.default = "1" 19 | o.rmempty = false 20 | 21 | o = s:option(Value, "remarks", translate("Remarks")) 22 | o.default = translate("Remarks") 23 | o.rmempty = false 24 | 25 | o = s:option(ListValue, "type", translate("Type")) 26 | 27 | local type_table = {} 28 | for filename in fs.dir(types_dir) do 29 | table.insert(type_table, filename) 30 | end 31 | table.sort(type_table) 32 | 33 | for index, value in ipairs(type_table) do 34 | local p_func = loadfile(types_dir .. value) 35 | setfenv(p_func, getfenv(1))(m, s) 36 | end 37 | 38 | return m 39 | -------------------------------------------------------------------------------- /luci-app-passwall/luasrc/view/passwall/cbi/hidevalue.htm: -------------------------------------------------------------------------------- 1 |
" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>" style="display: none !important"> 2 | " /> 3 |
4 | -------------------------------------------------------------------------------- /luci-app-passwall/luasrc/view/passwall/haproxy/status.htm: -------------------------------------------------------------------------------- 1 | <% 2 | local api = require "luci.passwall.api" 3 | local console_port = api.uci_get_type("@global_haproxy[0]", "console_port", "") 4 | -%> 5 |

6 | 7 | 27 | -------------------------------------------------------------------------------- /luci-app-passwall/po/zh_Hans: -------------------------------------------------------------------------------- 1 | zh-cn -------------------------------------------------------------------------------- /luci-app-passwall/root/etc/config/passwall_server: -------------------------------------------------------------------------------- 1 | 2 | config global 'global' 3 | option enable '0' 4 | 5 | -------------------------------------------------------------------------------- /luci-app-passwall/root/etc/hotplug.d/iface/98-passwall: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | [[ "$ACTION" == "ifup" && $(uci get "passwall.@global[0].enabled") == "1" ]] && [ -f /var/lock/passwall_ready.lock ] && { 4 | default_device=$(ip route | grep default | awk -F 'dev ' '{print $2}' | awk '{print $1}') 5 | [ "$default_device" == "$DEVICE" ] && { 6 | LOCK_FILE_DIR=/var/lock 7 | [ ! -d ${LOCK_FILE_DIR} ] && mkdir -p ${LOCK_FILE_DIR} 8 | LOCK_FILE="${LOCK_FILE_DIR}/passwall_ifup.lock" 9 | if [ -s ${LOCK_FILE} ]; then 10 | SPID=$(cat ${LOCK_FILE}) 11 | if [ -e /proc/${SPID}/status ]; then 12 | exit 1 13 | fi 14 | cat /dev/null > ${LOCK_FILE} 15 | fi 16 | echo $$ > ${LOCK_FILE} 17 | 18 | /etc/init.d/passwall restart >/dev/null 2>&1 & 19 | logger -p notice -t network -s "passwall: restart when $INTERFACE ifup" 20 | 21 | rm -rf ${LOCK_FILE} 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /luci-app-passwall/root/etc/init.d/passwall_server: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | 3 | START=99 4 | 5 | start() { 6 | lua /usr/lib/lua/luci/passwall/server_app.lua start 7 | } 8 | 9 | stop() { 10 | lua /usr/lib/lua/luci/passwall/server_app.lua stop 11 | } 12 | 13 | restart() { 14 | stop 15 | start 16 | } -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/haproxy_check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export PATH=/usr/sbin:/usr/bin:/sbin:/bin:/root/bin 4 | 5 | listen_address=$1 6 | listen_port=$2 7 | server_address=$3 8 | server_port=$4 9 | 10 | probe_file="/tmp/etc/passwall/haproxy/Probe_URL" 11 | probeUrl="https://www.google.com/generate_204" 12 | if [ -f "$probe_file" ]; then 13 | firstLine=$(head -n 1 "$probe_file" | tr -d ' \t\n') 14 | [ -n "$firstLine" ] && probeUrl="$firstLine" 15 | fi 16 | 17 | extra_params="-x socks5h://${server_address}:${server_port}" 18 | if /usr/bin/curl --help all | grep -q "\-\-retry-all-errors"; then 19 | extra_params="${extra_params} --retry-all-errors" 20 | fi 21 | 22 | status=$(/usr/bin/curl -I -o /dev/null -skL ${extra_params} --connect-timeout 3 --retry 1 --max-time 10 -w "%{http_code}" "${probeUrl}") 23 | 24 | case "$status" in 25 | 200|204) 26 | exit 0 27 | ;; 28 | *) 29 | exit 1 30 | ;; 31 | esac 32 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/helper_smartdns.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | restart() { 4 | local no_log 5 | eval_set_val $@ 6 | _LOG_FILE=$LOG_FILE 7 | [ -n "$no_log" ] && LOG_FILE="/dev/null" 8 | rm -rf /tmp/smartdns.cache 9 | /etc/init.d/smartdns reload >/dev/null 2>&1 10 | LOG_FILE=${_LOG_FILE} 11 | } 12 | 13 | del() { 14 | rm -rf /tmp/etc/smartdns/passwall.conf 15 | sed -i "/passwall/d" /etc/smartdns/custom.conf >/dev/null 2>&1 16 | rm -rf /tmp/smartdns.cache 17 | /etc/init.d/smartdns reload >/dev/null 2>&1 18 | } 19 | 20 | arg1=$1 21 | shift 22 | case $arg1 in 23 | del) 24 | del $@ 25 | ;; 26 | restart) 27 | restart $@ 28 | ;; 29 | *) ;; 30 | esac 31 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/block_host: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-passwall/root/usr/share/passwall/rules/block_host -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/block_ip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-passwall/root/usr/share/passwall/rules/block_ip -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/direct_host: -------------------------------------------------------------------------------- 1 | cn 2 | apple.com 3 | microsoft.com 4 | dyndns.com 5 | douyucdn.cn 6 | douyucdn2.cn 7 | location.services.mozilla.com 8 | 9 | #steam 10 | steamcontent.com 11 | dl.steam.clngaa.com 12 | dl.steam.ksyna.com 13 | st.dl.bscstorage.net 14 | st.dl.eccdnx.com 15 | st.dl.pinyuncloud.com 16 | cdn.mileweb.cs.steampowered.com.8686c.com 17 | cdn-ws.content.steamchina.com 18 | cdn-qc.content.steamchina.com 19 | cdn-ali.content.steamchina.com 20 | epicgames-download1-1251447533.file.myqcloud.com 21 | 22 | #DoT/DoH 23 | dns.alidns.com 24 | doh.pub 25 | dot.pub 26 | doh.360.cn 27 | dot.360.cn 28 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/direct_ip: -------------------------------------------------------------------------------- 1 | 114.114.114.114 2 | 114.114.115.115 3 | 223.5.5.5 4 | 223.6.6.6 5 | 119.29.29.29 6 | 180.76.76.76 7 | 1.12.12.12 8 | 120.53.53.53 9 | 180.184.1.1 10 | 180.184.2.2 11 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/domains_excluded: -------------------------------------------------------------------------------- 1 | courier.push.apple.com 2 | rbsxbxp-mim.vivox.com 3 | rbsxbxp.www.vivox.com 4 | rbsxbxp-ws.vivox.com 5 | rbspsxp.www.vivox.com 6 | rbspsxp-mim.vivox.com 7 | rbspsxp-ws.vivox.com 8 | rbswxp.www.vivox.com 9 | rbswxp-mim.vivox.com 10 | disp-rbspsp-5-1.vivox.com 11 | disp-rbsxbp-5-1.vivox.com 12 | proxy.rbsxbp.vivox.com 13 | proxy.rbspsp.vivox.com 14 | proxy.rbswp.vivox.com 15 | rbswp.vivox.com 16 | rbsxbp.vivox.com 17 | rbspsp.vivox.com 18 | rbspsp.www.vivox.com 19 | rbswp.www.vivox.com 20 | rbsxbp.www.vivox.com 21 | rbsxbxp.vivox.com 22 | rbspsxp.vivox.com 23 | rbswxp.vivox.com 24 | Mijia Cloud 25 | dlg.io.mi.com 26 | marscdn.c2c.wechat.com 27 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/lanlist_ipv4: -------------------------------------------------------------------------------- 1 | 0.0.0.0/8 2 | 10.0.0.0/8 3 | 100.64.0.0/10 4 | 127.0.0.0/8 5 | 169.254.0.0/16 6 | 172.16.0.0/12 7 | 192.0.0.0/24 8 | 192.0.2.0/24 9 | 192.88.99.0/24 10 | 192.168.0.0/16 11 | 198.51.100.0/24 12 | 203.0.113.0/24 13 | 224.0.0.0/4 14 | 233.252.0.0/24 15 | 240.0.0.0/4 16 | 255.255.255.255/32 17 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/lanlist_ipv6: -------------------------------------------------------------------------------- 1 | ::/128 2 | ::1/128 3 | ::ffff:0:0/96 4 | ::ffff:0:0:0/96 5 | 64:ff9b::/96 6 | 64:ff9b:1::/48 7 | 100::/64 8 | 2001::/32 9 | 2001:20::/28 10 | 2001:db8::/32 11 | 2002::/16 12 | 3fff::/20 13 | 5f00::/16 14 | fc00::/7 15 | fe80::/64 16 | ff00::/8 17 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/proxy_host: -------------------------------------------------------------------------------- 1 | engage.cloudflareclient.com 2 | github.com 3 | bing.com 4 | c.mi.com 5 | apple-relay.apple.com 6 | 7 | #google 8 | googleapis.cn 9 | googleapis.com 10 | google.com.tw 11 | google.com.hk 12 | gstatic.com 13 | xn--ngstr-lra8j.com 14 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/passwall/rules/proxy_ip: -------------------------------------------------------------------------------- 1 | 149.154.160.0/20 2 | 91.108.4.0/22 3 | 91.108.56.0/24 4 | 109.239.140.0/24 5 | 67.198.55.0/24 6 | 8.8.4.4 7 | 8.8.8.8 8 | 208.67.222.222 9 | 208.67.220.220 10 | 104.16.249.249 11 | 104.16.248.249 12 | 1.1.1.1 13 | 1.1.1.2 14 | 1.0.0.1 15 | 9.9.9.9 16 | 149.112.112.112 17 | 2001:67c:4e8::/48 18 | 2001:b28:f23c::/48 19 | 2001:b28:f23d::/48 20 | 2001:b28:f23f::/48 21 | 2001:b28:f242::/48 22 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/rpcd/acl.d/luci-app-passwall.json: -------------------------------------------------------------------------------- 1 | { 2 | "luci-app-passwall": { 3 | "description": "Grant UCI access for luci-app-passwall", 4 | "read": { 5 | "uci": [ "passwall", "passwall_server" ] 6 | }, 7 | "write": { 8 | "uci": [ "passwall", "passwall_server" ] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/ucitrack/luci-app-passwall-server.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": "passwall_server", 3 | "init": "passwall_server" 4 | } 5 | -------------------------------------------------------------------------------- /luci-app-passwall/root/usr/share/ucitrack/luci-app-passwall.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": "passwall", 3 | "init": "passwall" 4 | } 5 | -------------------------------------------------------------------------------- /luci-app-passwall2/luasrc/model/cbi/passwall2/client/app_update.lua: -------------------------------------------------------------------------------- 1 | local api = require "luci.passwall2.api" 2 | local appname = api.appname 3 | 4 | m = Map(appname) 5 | api.set_apply_on_parse(m) 6 | 7 | -- [[ App Settings ]]-- 8 | s = m:section(TypedSection, "global_app", translate("App Update"), 9 | "" .. 10 | translate("Please confirm that your firmware supports FPU.") .. 11 | "") 12 | s.anonymous = true 13 | s:append(Template(appname .. "/app_update/app_version")) 14 | 15 | local k, v 16 | local com = require "luci.passwall2.com" 17 | for k, v in pairs(com) do 18 | o = s:option(Value, k:gsub("%-","_") .. "_file", translatef("%s App Path", v.name)) 19 | o.default = v.default_path or ("/usr/bin/" .. k) 20 | o.rmempty = false 21 | end 22 | 23 | o = s:option(DummyValue, "tips", " ") 24 | o.rawhtml = true 25 | o.cfgvalue = function(t, n) 26 | return string.format('%s', translate("if you want to run from memory, change the path, /tmp beginning then save the application and update it manually.")) 27 | end 28 | 29 | return m 30 | -------------------------------------------------------------------------------- /luci-app-passwall2/luasrc/model/cbi/passwall2/client/type/naive.lua: -------------------------------------------------------------------------------- 1 | local m, s = ... 2 | 3 | local api = require "luci.passwall2.api" 4 | 5 | if not api.is_finded("naive") then 6 | return 7 | end 8 | 9 | local type_name = "Naiveproxy" 10 | 11 | local option_prefix = "naive_" 12 | 13 | local function _n(name) 14 | return option_prefix .. name 15 | end 16 | 17 | -- [[ Naive ]] 18 | 19 | s.fields["type"]:value(type_name, translate("NaiveProxy")) 20 | 21 | o = s:option(ListValue, _n("protocol"), translate("Protocol")) 22 | o:value("https", translate("HTTPS")) 23 | o:value("quic", translate("QUIC")) 24 | 25 | o = s:option(Value, _n("address"), translate("Address (Support Domain Name)")) 26 | 27 | o = s:option(Value, _n("port"), translate("Port")) 28 | o.datatype = "port" 29 | 30 | o = s:option(Value, _n("username"), translate("Username")) 31 | 32 | o = s:option(Value, _n("password"), translate("Password")) 33 | o.password = true 34 | 35 | api.luci_types(arg[1], m, s, type_name, option_prefix) 36 | -------------------------------------------------------------------------------- /luci-app-passwall2/luasrc/model/cbi/passwall2/server/user.lua: -------------------------------------------------------------------------------- 1 | local api = require "luci.passwall2.api" 2 | local fs = require "nixio.fs" 3 | local types_dir = "/usr/lib/lua/luci/model/cbi/passwall2/server/type/" 4 | 5 | m = Map("passwall2_server", translate("Server Config")) 6 | m.redirect = api.url("server") 7 | api.set_apply_on_parse(m) 8 | 9 | s = m:section(NamedSection, arg[1], "user", "") 10 | s.addremove = false 11 | s.dynamic = false 12 | 13 | o = s:option(Flag, "enable", translate("Enable")) 14 | o.default = "1" 15 | o.rmempty = false 16 | 17 | o = s:option(Value, "remarks", translate("Remarks")) 18 | o.default = translate("Remarks") 19 | o.rmempty = false 20 | 21 | o = s:option(ListValue, "type", translate("Type")) 22 | 23 | local type_table = {} 24 | for filename in fs.dir(types_dir) do 25 | table.insert(type_table, filename) 26 | end 27 | table.sort(type_table) 28 | 29 | for index, value in ipairs(type_table) do 30 | local p_func = loadfile(types_dir .. value) 31 | setfenv(p_func, getfenv(1))(m, s) 32 | end 33 | 34 | return m 35 | -------------------------------------------------------------------------------- /luci-app-passwall2/luasrc/view/passwall2/cbi/hidevalue.htm: -------------------------------------------------------------------------------- 1 |
" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>" style="display: none !important"> 2 | " /> 3 |
4 | -------------------------------------------------------------------------------- /luci-app-passwall2/luasrc/view/passwall2/haproxy/status.htm: -------------------------------------------------------------------------------- 1 | <% 2 | local api = require "luci.passwall2.api" 3 | local console_port = api.uci_get_type("global_haproxy", "console_port", "") 4 | -%> 5 |

6 | 7 | 27 | -------------------------------------------------------------------------------- /luci-app-passwall2/po/zh_Hans: -------------------------------------------------------------------------------- 1 | zh-cn -------------------------------------------------------------------------------- /luci-app-passwall2/root/etc/config/passwall2_server: -------------------------------------------------------------------------------- 1 | 2 | config global 'global' 3 | option enable '0' 4 | 5 | -------------------------------------------------------------------------------- /luci-app-passwall2/root/etc/hotplug.d/iface/98-passwall2: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | [[ "$ACTION" == "ifup" && $(uci get "passwall2.@global[0].enabled") == "1" ]] && [ -f /var/lock/passwall2_ready.lock ] && { 4 | default_device=$(ip route | grep default | awk -F 'dev ' '{print $2}' | awk '{print $1}') 5 | [ "$default_device" == "$DEVICE" ] && { 6 | LOCK_FILE_DIR=/var/lock 7 | [ ! -d ${LOCK_FILE_DIR} ] && mkdir -p ${LOCK_FILE_DIR} 8 | LOCK_FILE="${LOCK_FILE_DIR}/passwall2_ifup.lock" 9 | if [ -s ${LOCK_FILE} ]; then 10 | SPID=$(cat ${LOCK_FILE}) 11 | if [ -e /proc/${SPID}/status ]; then 12 | exit 1 13 | fi 14 | cat /dev/null > ${LOCK_FILE} 15 | fi 16 | echo $$ > ${LOCK_FILE} 17 | 18 | /etc/init.d/passwall2 restart >/dev/null 2>&1 & 19 | logger -p notice -t network -s "passwall2: restart when $INTERFACE ifup" 20 | 21 | rm -rf ${LOCK_FILE} 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /luci-app-passwall2/root/etc/init.d/passwall2_server: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | 3 | START=99 4 | 5 | start() { 6 | lua /usr/lib/lua/luci/passwall2/server_app.lua start 7 | } 8 | 9 | stop() { 10 | lua /usr/lib/lua/luci/passwall2/server_app.lua stop 11 | } 12 | 13 | restart() { 14 | stop 15 | start 16 | } -------------------------------------------------------------------------------- /luci-app-passwall2/root/usr/share/passwall2/domains_excluded: -------------------------------------------------------------------------------- 1 | courier.push.apple.com 2 | rbsxbxp-mim.vivox.com 3 | rbsxbxp.www.vivox.com 4 | rbsxbxp-ws.vivox.com 5 | rbspsxp.www.vivox.com 6 | rbspsxp-mim.vivox.com 7 | rbspsxp-ws.vivox.com 8 | rbswxp.www.vivox.com 9 | rbswxp-mim.vivox.com 10 | disp-rbspsp-5-1.vivox.com 11 | disp-rbsxbp-5-1.vivox.com 12 | proxy.rbsxbp.vivox.com 13 | proxy.rbspsp.vivox.com 14 | proxy.rbswp.vivox.com 15 | rbswp.vivox.com 16 | rbsxbp.vivox.com 17 | rbspsp.vivox.com 18 | rbspsp.www.vivox.com 19 | rbswp.www.vivox.com 20 | rbsxbp.www.vivox.com 21 | rbsxbxp.vivox.com 22 | rbspsxp.vivox.com 23 | rbswxp.vivox.com 24 | Mijia Cloud 25 | dlg.io.mi.com 26 | marscdn.c2c.wechat.com 27 | -------------------------------------------------------------------------------- /luci-app-passwall2/root/usr/share/passwall2/haproxy_check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export PATH=/usr/sbin:/usr/bin:/sbin:/bin:/root/bin 4 | 5 | listen_address=$1 6 | listen_port=$2 7 | server_address=$3 8 | server_port=$4 9 | 10 | probe_file="/tmp/etc/passwall2/haproxy/Probe_URL" 11 | probeUrl="https://www.google.com/generate_204" 12 | if [ -f "$probe_file" ]; then 13 | firstLine=$(head -n 1 "$probe_file" | tr -d ' \t\n') 14 | [ -n "$firstLine" ] && probeUrl="$firstLine" 15 | fi 16 | 17 | extra_params="-x socks5h://${server_address}:${server_port}" 18 | if /usr/bin/curl --help all | grep -q "\-\-retry-all-errors"; then 19 | extra_params="${extra_params} --retry-all-errors" 20 | fi 21 | 22 | status=$(/usr/bin/curl -I -o /dev/null -skL ${extra_params} --connect-timeout 3 --retry 1 --max-time 10 -w "%{http_code}" "${probeUrl}") 23 | 24 | case "$status" in 25 | 200|204) 26 | exit 0 27 | ;; 28 | *) 29 | exit 1 30 | ;; 31 | esac 32 | -------------------------------------------------------------------------------- /luci-app-passwall2/root/usr/share/rpcd/acl.d/luci-app-passwall2.json: -------------------------------------------------------------------------------- 1 | { 2 | "luci-app-passwall2": { 3 | "description": "Grant UCI access for luci-app-passwall2", 4 | "read": { 5 | "uci": [ "passwall2", "passwall2_server" ] 6 | }, 7 | "write": { 8 | "uci": [ "passwall2", "passwall2_server" ] 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /luci-app-passwall2/root/usr/share/ucitrack/luci-app-passwall2-server.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": "passwall2_server", 3 | "init": "passwall2_server" 4 | } 5 | -------------------------------------------------------------------------------- /luci-app-passwall2/root/usr/share/ucitrack/luci-app-passwall2.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": "passwall2", 3 | "init": "passwall2" 4 | } 5 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 3 | 4 | <%+cbi/valuefooter%> 5 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 27 | 28 | <%=self.value%> 29 | <%+cbi/valuefooter%> 30 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/luasrc/view/shadowsocksr/checkport.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 23 | 24 | <%=self.value%> 25 | <%+cbi/valuefooter%> 26 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/luasrc/view/shadowsocksr/ping.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | -- ms 3 | <%+cbi/valuefooter%> 4 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/luasrc/view/shadowsocksr/reset.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 23 | 24 | 25 | <%+cbi/valuefooter%> 26 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/luasrc/view/shadowsocksr/socket.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | wait 3 | 4 | 5 | 6 | <%+cbi/valuefooter%> 7 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm: -------------------------------------------------------------------------------- 1 | 17 | 18 |
19 |

20 | <%:Collecting data...%> 21 |

22 |
23 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 16 | 17 | 18 | <%+cbi/valuefooter%> 19 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/po/zh-cn: -------------------------------------------------------------------------------- 1 | zh_Hans -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/etc/config/shadowsocksr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-ssr-plus/root/etc/config/shadowsocksr -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/etc/ssrplus/ad.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-ssr-plus/root/etc/ssrplus/ad.conf -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/etc/ssrplus/black.list: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kenzok8/small/0776bd9b80cec8e493dca49e5e1f801d587347cf/luci-app-ssr-plus/root/etc/ssrplus/black.list -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/etc/ssrplus/deny.list: -------------------------------------------------------------------------------- 1 | gvod.aiseejapp.atianqi.com 2 | stat.pandora.xiaomi.com 3 | upgrade.mishop.pandora.xiaomi.com 4 | logonext.tv.kuyun.com 5 | config.kuyun.com 6 | mishop.pandora.xiaomi.com 7 | dvb.pandora.xiaomi.com 8 | api.ad.xiaomi.com 9 | de.pandora.xiaomi.com 10 | data.mistat.xiaomi.com 11 | jellyfish.pandora.xiaomi.com 12 | gallery.pandora.xiaomi.com 13 | o2o.api.xiaomi.com 14 | bss.pandora.xiaomi.com -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml: -------------------------------------------------------------------------------- 1 | log: 2 | level: info 3 | plugins: 4 | - tag: lazy_cache 5 | type: cache 6 | args: 7 | size: 8000 8 | lazy_cache_ttl: 86400 9 | 10 | - tag: forward_google 11 | type: forward 12 | args: 13 | concurrent: 2 14 | upstreams: 15 | 16 | - tag: main_sequence_disable_IPv6 17 | type: sequence 18 | args: 19 | - exec: $lazy_cache 20 | - exec: prefer_ipv4 21 | - exec: $forward_google 22 | - matches: 23 | - qtype 28 65 24 | exec: reject 0 25 | 26 | - tag: main_sequence_with_IPv6 27 | type: sequence 28 | args: 29 | - exec: $lazy_cache 30 | - exec: $forward_google 31 | 32 | - tag: udp_server 33 | type: udp_server 34 | args: 35 | entry: DNS_MODE 36 | listen: 0.0.0.0:DNS_PORT 37 | 38 | - tag: tcp_server 39 | type: tcp_server 40 | args: 41 | entry: DNS_MODE 42 | listen: 0.0.0.0:DNS_PORT 43 | 44 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/etc/ssrplus/netflix.list: -------------------------------------------------------------------------------- 1 | amazonaws.com 2 | aws.amazon.com 3 | awsstatic.com 4 | fast.com 5 | netflix.com 6 | netflix.net 7 | nflxext.com 8 | nflximg.net 9 | nflxso.net 10 | nflxvideo.net 11 | netflixdnstest0.com 12 | netflixdnstest1.com 13 | netflixdnstest2.com 14 | netflixdnstest3.com 15 | netflixdnstest4.com 16 | netflixdnstest5.com 17 | netflixdnstest6.com 18 | netflixdnstest7.com 19 | netflixdnstest8.com 20 | netflixdnstest9.com 21 | hulu.com 22 | huluim.com 23 | hbonow.com 24 | hbogo.com 25 | hbo.com 26 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/etc/ssrplus/netflixip.list: -------------------------------------------------------------------------------- 1 | 8.41.4.0/24 2 | 23.23.189.144/28 3 | 23.246.0.0/18 4 | 34.195.253.0/25 5 | 34.210.42.111/32 6 | 37.77.184.0/21 7 | 38.72.126.0/24 8 | 45.57.0.0/17 9 | 52.24.178.0/24 10 | 52.35.140.0/24 11 | 52.89.124.203/32 12 | 54.148.37.5/32 13 | 54.204.25.0/28 14 | 54.213.167.0/24 15 | 64.120.128.0/17 16 | 66.197.128.0/17 17 | 69.53.224.0/19 18 | 103.87.204.0/22 19 | 108.175.32.0/20 20 | 185.2.220.0/22 21 | 185.9.188.0/22 22 | 192.173.64.0/18 23 | 198.38.96.0/19 24 | 198.45.48.0/20 25 | 203.75.84.0/24 26 | 203.198.13.0/24 27 | 203.198.80.0/24 28 | 207.45.72.0/22 29 | 208.75.76.0/22 30 | 210.0.153.0/24 31 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/etc/ssrplus/white.list: -------------------------------------------------------------------------------- 1 | bilibili.com 2 | bilibili.cn 3 | bilivideo.com 4 | bilivideo.cn 5 | biliapi.com 6 | biliapi.net 7 | apple.com -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/usr/share/rpcd/acl.d/luci-app-ssr-plus.json: -------------------------------------------------------------------------------- 1 | { 2 | "luci-app-ssr-plus": { 3 | "description": "Grant UCI access for luci-app-ssr-plus", 4 | "read": { 5 | "file": { 6 | "/etc/ssrplus/*": [ "read" ] 7 | }, 8 | "uci": ["shadowsocksr"] 9 | }, 10 | "write": { 11 | "file": { 12 | "/etc/ssrplus/*": [ "write" ] 13 | }, 14 | "uci": ["shadowsocksr"] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/usr/share/shadowsocksr/chinaipset.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | [ -f "$1" ] && china_ip=$1 3 | ipset -! flush china 2>/dev/null 4 | ipset -! -R <<-EOF || exit 1 5 | create china hash:net 6 | $(cat ${china_ip:=/etc/ssrplus/china_ssr.txt} | sed -e "s/^/add china /") 7 | EOF 8 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/usr/share/shadowsocksr/ssrplusupdate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | /usr/bin/lua /usr/share/shadowsocksr/update.lua 3 | sleep 2s 4 | /usr/share/shadowsocksr/chinaipset.sh /var/etc/ssrplus/china_ssr.txt 5 | sleep 2s 6 | /usr/bin/lua /usr/share/shadowsocksr/subscribe.lua 7 | -------------------------------------------------------------------------------- /luci-app-ssr-plus/root/usr/share/ucitrack/luci-app-ssr-plus.json: -------------------------------------------------------------------------------- 1 | { 2 | "config": "shadowsocksr", 3 | "init": "shadowsocksr" 4 | } 5 | -------------------------------------------------------------------------------- /mihomo/.prepare.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | VERSION="$1" 3 | CURDIR="$2" 4 | BIN_PATH="$3" 5 | 6 | if [ -d "$CURDIR/.git" ]; then 7 | config="$CURDIR/.git/config" 8 | else 9 | config="$(sed "s|^gitdir:\s*|$CURDIR/|;s|$|/config|" "$CURDIR/.git")" 10 | fi 11 | [ -n "$(sed -En '/^\[remote /{h;:top;n;/^\[/b;s,(https?://gitcode\.(com|net)),\1,;T top;H;x;s|\n\s*|: |;p;}' "$config")" ] && { 12 | echo -e "#!/bin/sh\necho $VERSION" > "$BIN_PATH" 13 | } 14 | exit 0 15 | -------------------------------------------------------------------------------- /mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch: -------------------------------------------------------------------------------- 1 | From 0b86b89629f32e7c8b859239aa1a4814f256053c Mon Sep 17 00:00:00 2001 2 | From: sbwml 3 | Date: Thu, 28 Sep 2023 16:42:54 +0800 4 | Subject: [PATCH 3/5] add response for bad request in ServeHTTP handler 5 | 6 | --- 7 | pkg/server/http_handler.go | 1 + 8 | 1 file changed, 1 insertion(+) 9 | 10 | --- a/pkg/server/http_handler.go 11 | +++ b/pkg/server/http_handler.go 12 | @@ -93,6 +93,7 @@ func (h *HttpHandler) ServeHTTP(w http.R 13 | if err != nil { 14 | h.warnErr(req, "invalid request", err) 15 | w.WriteHeader(http.StatusBadRequest) 16 | + w.Write([]byte("Bad Request")) 17 | return 18 | } 19 | 20 | -------------------------------------------------------------------------------- /naiveproxy/files/naiveproxy.config: -------------------------------------------------------------------------------- 1 | 2 | config naiveproxy 'config' 3 | option enable '0' 4 | option listen_addr '' 5 | option server_addr '' 6 | option extra_argument '' 7 | -------------------------------------------------------------------------------- /nikki/files/mixin.yaml: -------------------------------------------------------------------------------- 1 | # Mixin File 2 | # You can set any mihomo profile's config at here, it will mixin to the profile. 3 | # 4 | # For example: 5 | # 6 | # global-client-fingerprint: chrome # set fingerprint for TLS transport 7 | # experimental: # experimental config 8 | # quic-go-disable-gso: false # disable quic-go GSO support 9 | # quic-go-disable-ecn: false # disable quic-go ECN support 10 | # dialer-ip4p-convert: false # IP4P support 11 | # proxies: # overwrite proxies 12 | # - name: "PROXY" 13 | # type: ss 14 | # server: proxy.example.com 15 | # port: 443 16 | # cipher: chacha20-ietf-poly1305 17 | # password: "password" 18 | # rules: # overwrite rules 19 | # - DOMAIN,google.com,PROXY 20 | # - DOMAIN-SUFFIX,google.com,PROXY 21 | # - DOMAIN-KEYWORD,google,PROXY 22 | # - DOMAIN-REGEX,^google.*com,PROXY 23 | # - GEOSITE,google,PROXY 24 | # - GEOSITE,cn,DIRECT 25 | # - IP-CIDR,8.8.8.8/32,DIRECT,no-resolve 26 | # - GEOIP,telegram,DIRECT 27 | # - GEOIP,cn,DIRECT 28 | # - Match,PROXY -------------------------------------------------------------------------------- /nikki/files/nftables/reserved_ip.nft: -------------------------------------------------------------------------------- 1 | #!/usr/sbin/nft -f 2 | 3 | table inet nikki { 4 | set reserved_ip { 5 | type ipv4_addr 6 | flags interval 7 | elements = { 8 | 0.0.0.0/8, 9 | 10.0.0.0/8, 10 | 127.0.0.0/8, 11 | 100.64.0.0/10, 12 | 169.254.0.0/16, 13 | 172.16.0.0/12, 14 | 192.168.0.0/16, 15 | 224.0.0.0/4, 16 | 240.0.0.0/4 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /nikki/files/nftables/reserved_ip6.nft: -------------------------------------------------------------------------------- 1 | #!/usr/sbin/nft -f 2 | 3 | table inet nikki { 4 | set reserved_ip6 { 5 | type ipv6_addr 6 | flags interval 7 | elements = { 8 | ::/128, 9 | ::1/128, 10 | ::ffff:0:0/96, 11 | 100::/64, 12 | 64:ff9b::/96, 13 | 2001::/32, 14 | 2001:10::/28, 15 | 2001:20::/28, 16 | 2001:db8::/32, 17 | 2002::/16, 18 | fc00::/7, 19 | fe80::/10, 20 | ff00::/8 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /nikki/files/nikki.upgrade: -------------------------------------------------------------------------------- 1 | /etc/nikki/profiles/ 2 | /etc/nikki/subscriptions/ 3 | /etc/nikki/mixin.yaml 4 | /etc/nikki/run/providers/rule/ 5 | /etc/nikki/run/providers/proxy/ 6 | /etc/nikki/nftables/reserved_ip.nft 7 | /etc/nikki/nftables/reserved_ip6.nft 8 | -------------------------------------------------------------------------------- /nikki/files/scripts/firewall_include.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | . "$IPKG_INSTROOT/lib/functions.sh" 4 | . "$IPKG_INSTROOT/etc/nikki/scripts/include.sh" 5 | 6 | config_load nikki 7 | config_get enabled "config" "enabled" 0 8 | config_get tcp_mode "proxy" "tcp_mode" 9 | config_get udp_mode "proxy" "udp_mode" 10 | config_get tun_device "mixin" "tun_device" 11 | 12 | if [ "$enabled" == 1 ] && [[ "$tcp_mode" == "tun" || "$udp_mode" == "tun" ]]; then 13 | nft insert rule inet fw4 input iifname "$tun_device" counter accept comment "nikki" 14 | nft insert rule inet fw4 forward oifname "$tun_device" counter accept comment "nikki" 15 | nft insert rule inet fw4 forward iifname "$tun_device" counter accept comment "nikki" 16 | fi 17 | 18 | exit 0 19 | -------------------------------------------------------------------------------- /nikki/files/uci-defaults/firewall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | . "$IPKG_INSTROOT/etc/nikki/scripts/include.sh" 4 | 5 | uci -q batch <<-EOF > /dev/null 6 | del firewall.nikki 7 | set firewall.nikki=include 8 | set firewall.nikki.type=script 9 | set firewall.nikki.path=$FIREWALL_INCLUDE_SH 10 | set firewall.nikki.fw4_compatible=1 11 | commit firewall 12 | EOF 13 | -------------------------------------------------------------------------------- /nikki/files/uci-defaults/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | . "$IPKG_INSTROOT/etc/nikki/scripts/include.sh" 4 | 5 | # check nikki.config.init 6 | init=$(uci -q get nikki.config.init); [ -z "$init" ] && return 7 | 8 | # generate random string for api secret and authentication password 9 | random=$(awk 'BEGIN{srand(); print int(rand() * 1000000)}') 10 | 11 | # set nikki.mixin.api_secret 12 | uci set nikki.mixin.api_secret="$random" 13 | 14 | # set nikki.@authentication[0].password 15 | uci set nikki.@authentication[0].password="$random" 16 | 17 | # remove nikki.config.init 18 | uci del nikki.config.init 19 | 20 | # commit 21 | uci commit nikki 22 | 23 | # exit with 0 24 | exit 0 25 | -------------------------------------------------------------------------------- /pdnsd-alt/files/pdnsd.init: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | 3 | START=65 4 | NAME=pdnsd 5 | DESC="proxy DNS server" 6 | 7 | DAEMON=/usr/sbin/pdnsd 8 | PID_FILE=/var/run/$NAME.pid 9 | CACHEDIR=/var/pdnsd 10 | CACHE=$CACHEDIR/pdnsd.cache 11 | 12 | USER=nobody 13 | GROUP=nogroup 14 | 15 | start() { 16 | echo -n "Starting $DESC: $NAME" 17 | 18 | gen_cache 19 | 20 | $DAEMON --daemon -p $PID_FILE 21 | echo " ." 22 | } 23 | 24 | stop() { 25 | echo -n "Stopping $DESC: $NAME" 26 | kill `cat $PID_FILE` > /dev/null 2>&1 27 | rm -rf $PID_FILE 28 | echo " ." 29 | } 30 | 31 | restart() { 32 | echo "Restarting $DESC: $NAME... " 33 | stop 34 | sleep 2 35 | start 36 | } 37 | 38 | gen_cache() 39 | { 40 | if ! test -f "$CACHE"; then 41 | mkdir -p `dirname $CACHE` 42 | dd if=/dev/zero of="$CACHE" bs=1 count=4 2> /dev/null 43 | chown -R $USER.$GROUP $CACHEDIR 44 | fi 45 | } 46 | 47 | -------------------------------------------------------------------------------- /shadowsocksr-libev/patches/0002-Revert-verify_simple-and-auth_simple.patch: -------------------------------------------------------------------------------- 1 | --- a/src/obfs/obfs.c 2 | +++ b/src/obfs/obfs.c 3 | @@ -88,7 +88,7 @@ obfs_class *new_obfs_class(const char *p 4 | plugin->client_decode = tls12_ticket_auth_client_decode; 5 | 6 | return plugin; 7 | - /*} else if (strcmp(plugin_name, "verify_simple") == 0) { 8 | + } else if (strcmp(plugin_name, "verify_simple") == 0) { 9 | obfs_class * plugin = (obfs_class*)malloc(sizeof(obfs_class)); 10 | plugin->init_data = init_data; 11 | plugin->new_obfs = verify_simple_new_obfs; 12 | @@ -115,7 +115,7 @@ obfs_class *new_obfs_class(const char *p 13 | plugin->client_udp_pre_encrypt = NULL; 14 | plugin->client_udp_post_decrypt = NULL; 15 | 16 | - return plugin;*/ 17 | + return plugin; 18 | } else if (strcmp(plugin_name, "auth_sha1") == 0) { 19 | obfs_class *plugin = (obfs_class *) malloc(sizeof(obfs_class)); 20 | plugin->init_data = auth_simple_init_data; 21 | -------------------------------------------------------------------------------- /shadowsocksr-libev/patches/100-fix-gcc-10.patch: -------------------------------------------------------------------------------- 1 | --- a/src/http.h 2 | +++ b/src/http.h 3 | @@ -29,6 +29,6 @@ 4 | #include 5 | #include "protocol.h" 6 | 7 | -const protocol_t *const http_protocol; 8 | +extern const protocol_t *const http_protocol; 9 | 10 | #endif 11 | --- a/src/tls.h 12 | +++ b/src/tls.h 13 | @@ -28,6 +28,6 @@ 14 | 15 | #include "protocol.h" 16 | 17 | -const protocol_t *const tls_protocol; 18 | +extern const protocol_t *const tls_protocol; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /shadowsocksr-libev/patches/101-Fix-Werror-sizeof-pointer-memaccess.patch: -------------------------------------------------------------------------------- 1 | --- a/src/local.c 2 | +++ b/src/local.c 3 | @@ -718,7 +718,7 @@ server_recv_cb(EV_P_ ev_io *w, int reven 4 | 5 | ss_free(hostname); 6 | } else { 7 | - strncpy(host, ip, sizeof(ip)); 8 | + strncpy(host, ip, INET6_ADDRSTRLEN); 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /shadowsocksr-libev/patches/104-pointer-used-after-free.patch: -------------------------------------------------------------------------------- 1 | --- a/server/server.c 2 | +++ b/server/server.c 3 | @@ -1942,12 +1942,12 @@ 4 | text = (char*)malloc(strlen(protocol) - 11); 5 | memcpy(text, protocol, strlen(protocol) - 11); 6 | int length = strlen(protocol) - 11; 7 | - free(protocol); 8 | obfs = (char*)malloc(length); 9 | memset(protocol, 0x00, length); 10 | memcpy(protocol, text, length); 11 | LOGI("protocol compatible enable, %s", protocol); 12 | free(text); 13 | + free(protocol); 14 | protocol_compatible = 1; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /shadowsocksr-libev/src/server/README.md: -------------------------------------------------------------------------------- 1 | # server 2 | 3 | `ss-server` and `ss-check` from https://github.com/ywb94/shadowsocks-libev 4 | -------------------------------------------------------------------------------- /shadowsocksr-libev/src/server/base64.h: -------------------------------------------------------------------------------- 1 | #ifndef __BASE64_H__ 2 | #define __BASE64_H__ 3 | 4 | enum {BASE64_OK = 0, BASE64_INVALID}; 5 | 6 | #define BASE64_ENCODE_OUT_SIZE(s) (((s) + 2) / 3 * 4) 7 | #define BASE64_DECODE_OUT_SIZE(s) (((s)) / 4 * 3) 8 | 9 | int 10 | base64_encode(const unsigned char *in, unsigned int inlen, char *out); 11 | 12 | int 13 | base64_decode(const char *in, unsigned int inlen, unsigned char *out); 14 | 15 | 16 | #endif /* __BASE64_H__ */ 17 | -------------------------------------------------------------------------------- /shadowsocksr-libev/src/server/http_simple.h: -------------------------------------------------------------------------------- 1 | /* 2 | * http_simple.h - Define shadowsocksR server's buffers and callbacks 3 | * 4 | * Copyright (C) 2015 - 2016, Break Wa11 5 | */ 6 | 7 | #ifndef _HTTP_SIMPLE_H 8 | #define _HTTP_SIMPLE_H 9 | 10 | obfs * http_simple_new_obfs(); 11 | void http_simple_dispose(obfs *self); 12 | 13 | int http_simple_client_encode(obfs *self, char **pencryptdata, int datalength, size_t* capacity); 14 | int http_simple_client_decode(obfs *self, char **pencryptdata, int datalength, size_t* capacity, int *needsendback); 15 | 16 | int http_post_client_encode(obfs *self, char **pencryptdata, int datalength, size_t* capacity); 17 | 18 | int http_simple_server_encode(obfs *self, char **pencryptdata, int datalength, size_t* capacity); 19 | int http_simple_server_decode(obfs *self, char **pencryptdata, int datalength, size_t* capacity, int *needsendback); 20 | 21 | #endif // _HTTP_SIMPLE_H 22 | -------------------------------------------------------------------------------- /shadowsocksr-libev/src/server/obfsutil.c: -------------------------------------------------------------------------------- 1 | int get_head_size(char *plaindata, int size, int def_size) { 2 | if (plaindata == NULL || size < 2) 3 | return def_size; 4 | int head_type = plaindata[0] & 0x7; 5 | if (head_type == 1) 6 | return 7; 7 | if (head_type == 4) 8 | return 19; 9 | if (head_type == 3) 10 | return 4 + plaindata[1]; 11 | return def_size; 12 | } 13 | 14 | static int shift128plus_init_flag = 0; 15 | static uint64_t shift128plus_s[2] = {0x10000000, 0xFFFFFFFF}; 16 | 17 | void init_shift128plus(void) { 18 | if (shift128plus_init_flag == 0) { 19 | shift128plus_init_flag = 1; 20 | uint32_t seed = time(NULL); 21 | shift128plus_s[0] = seed | 0x100000000L; 22 | shift128plus_s[1] = ((uint64_t)seed << 32) | 0x1; 23 | } 24 | } 25 | 26 | uint64_t xorshift128plus(void) { 27 | uint64_t x = shift128plus_s[0]; 28 | uint64_t const y = shift128plus_s[1]; 29 | shift128plus_s[0] = y; 30 | x ^= x << 23; // a 31 | x ^= x >> 17; // b 32 | x ^= y ^ (y >> 26); // c 33 | shift128plus_s[1] = x; 34 | return x + y; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /shadowsocksr-libev/src/server/tls1.2_ticket.h: -------------------------------------------------------------------------------- 1 | /* 2 | * http_simple.h - Define shadowsocksR server's buffers and callbacks 3 | * 4 | * Copyright (C) 2015 - 2016, Break Wa11 5 | */ 6 | 7 | #ifndef _TLS1_2_TICKET_H 8 | #define _TLS1_2_TICKET_H 9 | 10 | void * tls12_ticket_auth_init_data(); 11 | obfs * tls12_ticket_auth_new_obfs(); 12 | void tls12_ticket_auth_dispose(obfs *self); 13 | 14 | int tls12_ticket_auth_client_encode(obfs *self, char **pencryptdata, int datalength, size_t* capacity); 15 | int tls12_ticket_auth_client_decode(obfs *self, char **pencryptdata, int datalength, size_t* capacity, int *needsendback); 16 | 17 | int tls12_ticket_auth_server_encode(obfs *self, char **pencryptdata, int datalength, size_t* capacity); 18 | int tls12_ticket_auth_server_decode(obfs *self, char **pencryptdata, int datalength, size_t* capacity, int *needsendback); 19 | 20 | #endif // _TLS1_2_TICKET_H 21 | -------------------------------------------------------------------------------- /shadowsocksr-libev/src/server/verify.h: -------------------------------------------------------------------------------- 1 | /* 2 | * verify.h - Define shadowsocksR server's buffers and callbacks 3 | * 4 | * Copyright (C) 2015 - 2016, Break Wa11 5 | */ 6 | 7 | #ifndef _VERIFY_H 8 | #define _VERIFY_H 9 | 10 | obfs * verify_simple_new_obfs(); 11 | void verify_simple_dispose(obfs *self); 12 | 13 | int verify_simple_client_pre_encrypt(obfs *self, char **pplaindata, int datalength, size_t* capacity); 14 | int verify_simple_client_post_decrypt(obfs *self, char **pplaindata, int datalength, size_t* capacity); 15 | 16 | int verify_simple_server_pre_encrypt(obfs *self, char **pplaindata, int datalength, size_t* capacity); 17 | int verify_simple_server_post_decrypt(obfs *self, char **pplaindata, int datalength, size_t* capacity); 18 | 19 | #endif // _VERIFY_H 20 | -------------------------------------------------------------------------------- /ssocks/patches/001-fix.patch: -------------------------------------------------------------------------------- 1 | --- a/CMakeLists.txt 2020-09-07 14:23:49.000000000 +0800 2 | +++ b/CMakeLists.txt 2020-09-07 14:23:24.000000000 +0800 3 | @@ -11,7 +11,12 @@ 4 | endif(WIN32) 5 | 6 | add_executable(ssocks src/ssocks.c ${AUX}) 7 | +INSTALL(TARGETS ssocks RUNTIME DESTINATION bin) 8 | add_executable(ssocksd src/ssocksd.c ${AUX}) 9 | +INSTALL(TARGETS ssocksd RUNTIME DESTINATION bin) 10 | add_executable(nsocks src/nsocks.c ${AUX}) 11 | +INSTALL(TARGETS nsocks RUNTIME DESTINATION bin) 12 | add_executable(rcsocks src/rcsocks.c ${AUX}) 13 | +INSTALL(TARGETS rcsocks RUNTIME DESTINATION bin) 14 | add_executable(rssocks src/rssocks.c ${AUX}) 15 | +INSTALL(TARGETS rssocks RUNTIME DESTINATION bin) 16 | -------------------------------------------------------------------------------- /ssocks/patches/002-gcc10.patch: -------------------------------------------------------------------------------- 1 | --- a/src/configd-util.h 2020-07-09 05:30:54.000000000 +0800 2 | +++ b/src/configd-util.h 2020-09-08 19:35:11.000000000 +0800 3 | @@ -33,7 +33,7 @@ 4 | 5 | 6 | 7 | -struct globalArgsServer_t { 8 | +static struct globalArgsServer_t { 9 | char fileauth[255]; // -a option 10 | char fileconfig[255]; // -f option 11 | char filelog[255]; // -l option 12 | -------------------------------------------------------------------------------- /tcping/Makefile: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-3.0-only 2 | # 3 | # Copyright (C) 2021 ImmortalWrt.org 4 | 5 | include $(TOPDIR)/rules.mk 6 | 7 | PKG_NAME:=tcping 8 | PKG_VERSION:=0.3 9 | PKG_RELEASE:=2 10 | 11 | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 12 | PKG_SOURCE_URL:=https://codeload.github.com/Mattraks/tcping/tar.gz/$(PKG_VERSION)? 13 | PKG_HASH:=c703481d1751adf051dd3391c4dccdadc6dfca7484e636222b392e1213312e02 14 | 15 | PKG_LICENSE:=GPL-2.0-only 16 | PKG_LICENSE_FILE:=license.txt 17 | 18 | PKG_BUILD_PARALLEL:=1 19 | 20 | include $(INCLUDE_DIR)/package.mk 21 | 22 | define Package/tcping 23 | SECTION:=net 24 | CATEGORY:=Network 25 | TITLE:=tcping measures the latency of a tcp-connection (IPv4/IPv6 support) 26 | URL:=https://github.com/jlyo/tcping 27 | endef 28 | 29 | define Build/Compile 30 | $(MAKE) -C $(PKG_BUILD_DIR) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS) -Wall" LDFLAGS="$(TARGET_LDFLAGS)" 31 | endef 32 | 33 | define Package/tcping/install 34 | $(INSTALL_DIR) $(1)/usr/sbin 35 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/tcping $(1)/usr/sbin 36 | endef 37 | 38 | $(eval $(call BuildPackage,tcping)) 39 | -------------------------------------------------------------------------------- /trojan/patches/001-force-openssl-version.patch: -------------------------------------------------------------------------------- 1 | --- a/CMakeLists.txt 2 | +++ b/CMakeLists.txt 3 | @@ -43,7 +43,7 @@ if(MSVC) 4 | add_definitions(-DBOOST_DATE_TIME_NO_LIB) 5 | endif() 6 | 7 | -find_package(OpenSSL 1.1.0 REQUIRED) 8 | +find_package(OpenSSL 1.1.1 REQUIRED) 9 | include_directories(${OPENSSL_INCLUDE_DIR}) 10 | target_link_libraries(trojan ${OPENSSL_LIBRARIES}) 11 | if(OPENSSL_VERSION VERSION_GREATER_EQUAL 1.1.1) 12 | --------------------------------------------------------------------------------