├── .github
└── workflows
│ ├── ChromeGo.yml
│ └── ChromeMerge.yml
├── .gitignore
├── ChromeGo
├── README.md
├── all_merged_proxies.yaml
├── all_merged_proxies_shadowrocket_nekoray.txt
├── all_merged_proxies_with_warp.yaml
├── clashMeta
│ ├── ip_0.yaml
│ ├── ip_1.yaml
│ ├── ip_2.yaml
│ ├── ip_3.yaml
│ ├── ip_4.yaml
│ └── ip_5.yaml
├── get_all_proxies.sh
├── hysteria1
│ ├── ip_0.json
│ ├── ip_1.json
│ ├── ip_2.json
│ └── ip_3.json
├── hysteria2
│ ├── ip_0.json
│ ├── ip_1.json
│ ├── ip_2.json
│ └── ip_3.json
├── naiveproxy
│ ├── ip_0.json
│ └── ip_1.json
├── singbox
│ ├── ip_0.json
│ └── ip_1.json
└── xray
│ ├── ip_0.json
│ ├── ip_1.json
│ ├── ip_2.json
│ └── ip_3.json
├── ChromeGo_Merge
├── GeoLite2-City.mmdb
├── LICENSE
├── ReadMe.md
├── merge.py
├── meta_merge.py
├── requirements.txt
├── sb.py
├── sub
│ ├── merged_proxies_new.yaml
│ ├── merged_warp_proxies_new.yaml
│ ├── sb.json
│ └── shadowrocket_base64.txt
├── templates
│ ├── clash_template.yaml
│ └── clash_warp_template.yaml
└── urls
│ ├── clash_urls.txt
│ ├── hysteria2_urls.txt
│ ├── hysteria_urls.txt
│ ├── naiverproxy_urls.txt
│ ├── sb_urls.txt
│ ├── ss_urls.txt
│ └── xray_urls.txt
├── LICENSE
├── README.md
├── index.html
├── main.ipynb
├── main.ps1
├── main.py
├── main.sh
├── markdown_to_html copy.py
├── markdown_to_html.py
├── src
├── css
│ ├── codehighlight.css
│ ├── directory.css
│ ├── katex.min.css
│ ├── linenum.css
│ ├── markdown.css
│ └── tasklist.css
└── js
│ ├── directory.js
│ ├── katex.min.js
│ ├── mathtex-script-type.min.js
│ └── mermaid.min.js
└── warp
├── README.md
├── linux
└── placeholder
├── macos
└── placeholder
├── unix
└── placeholder
├── wgcf-account.toml
├── wgcf-freebsd
├── wgcf-linux
├── wgcf-macos
├── wgcf-profile.conf
├── wgcf.exe
├── windows
└── placeholder
├── wireguard-conf-generator.bat
├── wireguard-conf-generator.ps1
└── wireguard-conf-generator.sh
/.github/workflows/ChromeGo.yml:
--------------------------------------------------------------------------------
1 | # This is a basic workflow to help you get started with Actions
2 |
3 | name: Auto Merge All ChromeGo Proxies
4 |
5 | # Controls when the workflow will run
6 | on:
7 | # Triggers the workflow on push or pull request events but only for the "main" branch
8 | push:
9 | branches: [ "main" ]
10 | pull_request:
11 | branches: [ "main" ]
12 |
13 | # Allows you to run this workflow manually from the Actions tab
14 | workflow_dispatch:
15 |
16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
17 | jobs:
18 | # This workflow contains a single job called "build"
19 | Publish_to_Cloudflare_Pages:
20 | # The type of runner that the job will run on
21 | runs-on: ubuntu-latest
22 | permissions:
23 | contents: write
24 | deployments: write
25 |
26 | # Steps represent a sequence of tasks that will be executed as part of the job
27 | steps:
28 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
29 | # - uses: actions/checkout@v3
30 | - uses: actions/checkout@v2
31 |
32 | - name: Set up Python
33 | uses: actions/setup-python@v2
34 | with:
35 | python-version: 3.11 # 替换为你的 Python 版本
36 |
37 | # Runs a single command using the runners shell
38 | - name: Auto Merge All ChromeGo Proxies by shell script
39 | run: |
40 | sh main.sh
41 | cd ChromeGo
42 | ls
43 |
44 | # - name: commit files
45 | # run: |
46 | # git config --local user.email "action@github.com"
47 | # git config --local user.name "GitHub Action"
48 | # git add -A
49 | # git commit -m "github action auto build" -a
50 |
51 | # - name: push changes
52 | # uses: ad-m/github-push-action@v0.6.0
53 | # with:
54 | # github_token: ${{ secrets.ACTIONS_TOKEN }}
55 | # branch: main
56 |
57 | - name: Publish to Cloudflare Pages
58 | uses: cloudflare/pages-action@v1
59 | with:
60 | apiToken: ${{ secrets.CF_API_KEY}}
61 | accountId: ${{ secrets.CF_ACCOUNT_ID}}
62 | projectName: cloudflare-pages-vpn
63 | directory: .
64 | # Optional: Enable this if you want to have GitHub Deployments triggered
65 | gitHubToken: ${{ secrets.ACTIONS_TOKEN }}
66 | # Optional: Switch what branch you are publishing to.
67 | # By default this will be the branch which triggered this workflow
68 | branch: main
69 | # Optional: Change the working directory
70 | workingDirectory: .
71 | # Optional: Change the Wrangler version, allows you to point to a specific version or a tag such as `beta`
72 | wranglerVersion: '3'
--------------------------------------------------------------------------------
/.github/workflows/ChromeMerge.yml:
--------------------------------------------------------------------------------
1 | name: ChromeMerge Script
2 |
3 | on:
4 | push:
5 | branches:
6 | - main # 替换为你的默认分支
7 | schedule:
8 | - cron: '0 0,8,18 * * *' # 每6h一次
9 | workflow_dispatch: # 触发手动事件
10 | jobs:
11 | merge:
12 | runs-on: ubuntu-latest
13 | permissions:
14 | contents: write
15 | deployments: write
16 |
17 | steps:
18 | - name: Checkout repository
19 | uses: actions/checkout@v2
20 |
21 | - name: Set up Python
22 | uses: actions/setup-python@v2
23 | with:
24 | python-version: 3.11 # 替换为你的 Python 版本
25 |
26 | - name: Install dependencies
27 | run: cd ChromeGo_Merge && pip install -r requirements.txt
28 |
29 | - name: Run merge script
30 | run: cd ChromeGo_Merge && python meta_merge.py # 替换为你的 merge.py 脚本名称
31 |
32 | - name: Run shadowrocket merge script
33 | run: cd ChromeGo_Merge && python merge.py # 替换为你的 merge.py 脚本名称
34 |
35 | # # BUG: lgf4591/cloudflare-pages-vpn.git denied to github-actions[bot] -> ref: https://machbbs.com/v2ex/508380
36 | # - name: Commit Changes
37 | # run: |
38 | # git config core.ignorecase false
39 | # git config --local user.email "lgf4591@outlook.com"
40 | # git config --local user.name "lgf4591"
41 | # git add .
42 | # git commit -m "Updated at $(date '+%Y-%m-%d %H:%M:%S')"
43 | # git push
44 |
45 | - name: commit files
46 | run: |
47 | git config --local user.email "action@github.com"
48 | git config --local user.name "GitHub Action"
49 | git add -A
50 | git commit -m "github action auto build" -a
51 |
52 | - name: push changes
53 | uses: ad-m/github-push-action@v0.6.0
54 | with:
55 | github_token: ${{ secrets.ACTIONS_TOKEN }}
56 | branch: main
57 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | share/python-wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 | MANIFEST
28 |
29 | # PyInstaller
30 | # Usually these files are written by a python script from a template
31 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
32 | *.manifest
33 | *.spec
34 |
35 | # Installer logs
36 | pip-log.txt
37 | pip-delete-this-directory.txt
38 |
39 | # Unit test / coverage reports
40 | htmlcov/
41 | .tox/
42 | .nox/
43 | .coverage
44 | .coverage.*
45 | .cache
46 | nosetests.xml
47 | coverage.xml
48 | *.cover
49 | *.py,cover
50 | .hypothesis/
51 | .pytest_cache/
52 | cover/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | .pybuilder/
76 | target/
77 |
78 | # Jupyter Notebook
79 | .ipynb_checkpoints
80 |
81 | # IPython
82 | profile_default/
83 | ipython_config.py
84 |
85 | # pyenv
86 | # For a library or package, you might want to ignore these files since the code is
87 | # intended to run in multiple environments; otherwise, check them in:
88 | # .python-version
89 |
90 | # pipenv
91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
94 | # install all needed dependencies.
95 | #Pipfile.lock
96 |
97 | # poetry
98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99 | # This is especially recommended for binary packages to ensure reproducibility, and is more
100 | # commonly ignored for libraries.
101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102 | #poetry.lock
103 |
104 | # pdm
105 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106 | #pdm.lock
107 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108 | # in version control.
109 | # https://pdm.fming.dev/#use-with-ide
110 | .pdm.toml
111 |
112 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113 | __pypackages__/
114 |
115 | # Celery stuff
116 | celerybeat-schedule
117 | celerybeat.pid
118 |
119 | # SageMath parsed files
120 | *.sage.py
121 |
122 | # Environments
123 | .env
124 | .venv
125 | env/
126 | venv/
127 | ENV/
128 | env.bak/
129 | venv.bak/
130 |
131 | # Spyder project settings
132 | .spyderproject
133 | .spyproject
134 |
135 | # Rope project settings
136 | .ropeproject
137 |
138 | # mkdocs documentation
139 | /site
140 |
141 | # mypy
142 | .mypy_cache/
143 | .dmypy.json
144 | dmypy.json
145 |
146 | # Pyre type checker
147 | .pyre/
148 |
149 | # pytype static type analyzer
150 | .pytype/
151 |
152 | # Cython debug symbols
153 | cython_debug/
154 |
155 | # PyCharm
156 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158 | # and can be added to the global gitignore or merged into this file. For a more nuclear
159 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160 | #.idea/
161 |
--------------------------------------------------------------------------------
/ChromeGo/README.md:
--------------------------------------------------------------------------------
1 | ## 简介
2 |
3 | **注意:clash内核无法使用这些节点,你要用clashmeta**
4 |
5 | https://github.com/vveg26/chromego_merge/tree/main
6 |
7 | ## 为什么要套上warp
8 |
9 | 点击展开/折叠
10 | 首先chromego屏蔽了很多网站,包括你喜欢的p开头的网站,套上warp可以突破这一层限制。
11 |
12 | 第二我并不喜欢使用机场等服务,原因就是机场主或者节点主完全知道你访问的网站,虽然有一层https加密,但是他们还是可以知道你访问的域名已经你连接的时间,套上warp之后,他们只能看到一串加密流量。
13 |
14 | 第三,我为什么要提取节点出来,不仅仅是因为方便管理,可以在一个配置文件中切换不同的节点。而且是因为我并不喜欢使用他们所提供的客户端,虽然chromego所提供的客户端并没有什么问题,但是我还是喜欢自己常用的客户端。
15 |
16 |
17 |
18 | ## 如何修改为自己的warp节点
19 | 可以用warp+机器人和提取wg节点替换掉配置文件中的wg信息
20 | [warp提取wireguard网站](https://replit.com/@misaka-blog/wgcf-profile-generator)
21 | [warp+机器人](https://t.me/generatewarpplusbot)
22 |
23 | ## 订阅链接分享(无需翻墙版-托管自netlify)
24 | ### 不套warp版本(clashmeta-全平台通用-节点最全)
25 | **不含hysteria2节点**
26 | ```
27 | https://mareep.netlify.app/sub/merged_proxies.yaml
28 | ```
29 | **含hysteria2节点(节点最全)**
30 | ```
31 | https://mareep.netlify.app/sub/merged_proxies_new.yaml
32 | ```
33 | ### 套warp版本(clashmeta-全平台通用-节点最全)
34 | **不含hysteria2节点**
35 | ```
36 | https://mareep.netlify.app/sub/merged_warp_proxies.yaml
37 | ```
38 | **含hysteria2节点(节点最全)**
39 | ```
40 | https://mareep.netlify.app/sub/merged_warp_proxies_new.yaml
41 | ```
42 | ### 通用链接 shadowrocket-nekoray
43 | ```
44 | https://mareep.netlify.app/sub/shadowrocket_base64.txt
45 | ```
46 |
47 | ## 订阅链接分享(需要翻墙版-托管自github)
48 |
49 | 点击展开/折叠
50 |
51 | ### 不套warp版本(clashmeta
52 | ```
53 | https://raw.githubusercontent.com/vveg26/chromego_merge/main/sub/merged_proxies.yaml
54 | ```
55 | ### 套warp版本(clashmeta
56 | ```
57 | https://raw.githubusercontent.com/vveg26/chromego_merge/main/sub/merged_warp_proxies.yaml
58 | ```
59 | ### 通用链接 shadowrocket-nekoray
60 | ```
61 | https://raw.githubusercontent.com/vveg26/chromego_merge/main/sub/shadowrocket_base64.txt
62 | ```
63 |
64 |
65 |
66 |
67 | ## 致谢
68 | [Alvin9999](https://github.com/Alvin9999/pac2/tree/master)
69 |
70 | ## TODO
71 | - 部分代码逻辑不够优雅
72 | - sing-box节点的处理
73 | - xray部分节点的处理
74 | - 融合ss和ssr
75 |
76 |
77 |
--------------------------------------------------------------------------------
/ChromeGo/all_merged_proxies.yaml:
--------------------------------------------------------------------------------
1 | port: 7890
2 | allow-lan: true
3 | mode: rule
4 | log-level: info
5 | unified-delay: true
6 | global-client-fingerprint: chrome
7 | dns:
8 | enable: true
9 | listen: :53
10 | ipv6: true
11 | enhanced-mode: fake-ip
12 | fake-ip-range: 198.18.0.1/16
13 | default-nameserver:
14 | - 223.5.5.5
15 | - 8.8.8.8
16 | nameserver:
17 | - https://dns.alidns.com/dns-query
18 | - https://doh.pub/dns-query
19 | fallback:
20 | - https://1.0.0.1/dns-query
21 | - tls://dns.google
22 | fallback-filter:
23 | geoip: true
24 | geoip-code: CN
25 | ipcidr:
26 | - 240.0.0.0/4
27 | proxies:
28 | - name: 油管-绵阿羊
29 | type: trojan
30 | server: a
31 | port: 1
32 | password: 72ac875a-f5b9-461e-a7a4-942b468b0d83
33 | udp: true
34 | sni: gw.alicdn.com
35 | skip-cert-verify: true
36 | - name: meta_hysteria2_01
37 | type: hysteria2
38 | server: 108.181.22.205
39 | port: 10194
40 | password: 87dc8c2e
41 | sni: www.bing.com
42 | skip-cert-verify: true
43 | - name: meta_hysteria_11
44 | type: hysteria
45 | server: www.dtku46.xyz
46 | port: 11223
47 | auth-str: mqoE9qSoyMFa
48 | alpn:
49 | - h3
50 | protocol: udp
51 | up: 50 Mbps
52 | down: 100 Mbps
53 | skip-cert-verify: true
54 | - name: meta_tuic_21
55 | server: tuic3.dtku47.xyz
56 | port: 12255
57 | type: tuic
58 | uuid: ed6a538a-6e66-4f21-a769-4b389bb2f3ab
59 | password: dongtaiwang
60 | alpn:
61 | - h3
62 | request-timeout: 8000
63 | udp-relay-mode: native
64 | congestion-controller: bbr
65 | - name: meta_hysteria2_31
66 | type: hysteria2
67 | server: 108.181.22.205
68 | port: 10194
69 | password: 87dc8c2e
70 | sni: www.bing.com
71 | skip-cert-verify: true
72 | - name: meta_hysteria_41
73 | type: hysteria
74 | server: www.dtku46.xyz
75 | port: 11223
76 | auth-str: mqoE9qSoyMFa
77 | alpn:
78 | - h3
79 | protocol: udp
80 | up: 50 Mbps
81 | down: 100 Mbps
82 | skip-cert-verify: true
83 | - name: meta_hysteria2_51
84 | type: hysteria2
85 | server: 108.181.22.205
86 | port: 10194
87 | password: 87dc8c2e
88 | sni: www.bing.com
89 | skip-cert-verify: true
90 | - name: meta_hysteria_61
91 | type: hysteria
92 | server: hy2.dtku47.xyz
93 | port: 15566
94 | auth-str: jQrGpwSqp34P
95 | alpn:
96 | - h3
97 | protocol: udp
98 | up: 50 Mbps
99 | down: 100 Mbps
100 | - name: meta_hysteria_71
101 | type: hysteria
102 | server: clash1.dtku47.xyz
103 | port: 11223
104 | auth-str: O5tQQiW2xKf5
105 | alpn:
106 | - h3
107 | protocol: udp
108 | up: 50 Mbps
109 | down: 100 Mbps
110 | - name: meta_hysteria_81
111 | type: hysteria
112 | server: hy2.dtku47.xyz
113 | port: 15566
114 | auth-str: jQrGpwSqp34P
115 | alpn:
116 | - h3
117 | protocol: udp
118 | up: 50 Mbps
119 | down: 100 Mbps
120 | - name: meta_hysteria_91
121 | type: hysteria
122 | server: hy1.dtku47.xyz
123 | port: 22334
124 | auth-str: lASdKzWK0VxL
125 | alpn:
126 | - h3
127 | protocol: udp
128 | up: 50 Mbps
129 | down: 100 Mbps
130 | - name: meta_hysteria_101
131 | type: hysteria
132 | server: hy2.dtku47.xyz
133 | port: 15566
134 | auth-str: jQrGpwSqp34P
135 | alpn:
136 | - h3
137 | protocol: udp
138 | up: 50 Mbps
139 | down: 100 Mbps
140 | - name: meta_hysteria_111
141 | type: hysteria
142 | server: hy1.dtku47.xyz
143 | port: 22334
144 | auth-str: lASdKzWK0VxL
145 | alpn:
146 | - h3
147 | protocol: udp
148 | up: 50 Mbps
149 | down: 100 Mbps
150 | - name: meta_hysteria_121
151 | type: hysteria
152 | server: 108.181.22.239
153 | port: 17727
154 | sni: youku.com
155 | skip-cert-verify: true
156 | alpn:
157 | - h3
158 | protocol: udp
159 | auth_str: 7YxfKsXdTnB226S8j4OjaA9M0nLcXATvgnXhVJbCRG7e9KKU7i
160 | up: 11
161 | down: 55
162 | - name: meta_hysteria_131
163 | type: hysteria
164 | server: www.dtku50.xyz
165 | port: 43250
166 | sni: bing.com
167 | skip-cert-verify: true
168 | alpn:
169 | - h3
170 | protocol: udp
171 | auth_str: 2S9M5Gs0pgRsaTObNghoLZx6wPkBJOGTFWvf4R06Us5hUNtfr7
172 | up: 2
173 | down: 10
174 | - name: meta_vless_141
175 | type: vless
176 | server: 45.150.165.61
177 | port: 25678
178 | udp: true
179 | uuid: 34f36b97-1fb7-41f3-8db4-912cc69e724a
180 | tls: true
181 | servername: itunes.apple.com
182 | flow: xtls-rprx-vision
183 | network: tcp
184 | reality-opts:
185 | public-key: sJsSZcA2DyAHDTcoe8Utbz9JaXJPMVmtHmiXxWmcExc
186 | client-fingerprint: chrome
187 | - name: meta_hysteria_151
188 | type: hysteria
189 | server: www3.dtku49.xyz
190 | port: 58693
191 | sni: bing.com
192 | skip-cert-verify: true
193 | alpn:
194 | - h3
195 | protocol: udp
196 | auth_str: nbdyVMqucpFMmyRiwcRQFI7EeKzJWjPYuks3ZzEhCv6HjeZvbh
197 | up: 11
198 | down: 55
199 | - name: hysteria_0
200 | type: hysteria
201 | server: 167.160.91.115
202 | port: 13928
203 | ports: 13928
204 | auth_str: BF0LL4L2jlqSdW3KxjQv81AiFFjj90vWRHeUoqUuTVPeDAGvq3
205 | up: 80
206 | down: 100
207 | fast-open: true
208 | protocol: udp
209 | sni: paypal.com
210 | skip-cert-verify: true
211 | alpn:
212 | - h3
213 | - name: hysteria_1
214 | type: hysteria
215 | server: 173.234.25.52
216 | port: 20164
217 | ports: 20164
218 | auth_str: Ljg6NNEATDqP97hdAdHe1lJv7ggtKc0h7zmCCZKCX3qY0LR64F
219 | up: 80
220 | down: 100
221 | fast-open: true
222 | protocol: udp
223 | sni: www.microsoft.com
224 | skip-cert-verify: true
225 | alpn:
226 | - h3
227 | - name: hysteria_2
228 | type: hysteria
229 | server: 173.234.25.52
230 | port: 20164
231 | ports: 20164
232 | auth_str: Ljg6NNEATDqP97hdAdHe1lJv7ggtKc0h7zmCCZKCX3qY0LR64F
233 | up: 80
234 | down: 100
235 | fast-open: true
236 | protocol: udp
237 | sni: www.microsoft.com
238 | skip-cert-verify: true
239 | alpn:
240 | - h3
241 | - name: hysteria_3
242 | type: hysteria
243 | server: 51.158.54.46
244 | port: 11926
245 | ports: 11926
246 | auth_str: Trz2alKwzCImRAXI3nXfpo1ylpHfqOL8s1vageWKoyjjvWeMVs
247 | up: 80
248 | down: 100
249 | fast-open: true
250 | protocol: udp
251 | sni: youku.com
252 | skip-cert-verify: true
253 | alpn:
254 | - h3
255 | - name: hysteria2_0
256 | type: hysteria2
257 | server: 108.181.22.155
258 | port: 17965
259 | password: 4f58555f
260 | fast-open: true
261 | sni: www.bing.com
262 | skip-cert-verify: true
263 | - name: hysteria2_1
264 | type: hysteria2
265 | server: 167.160.90.252
266 | port: 60930
267 | password: fc4488ef
268 | fast-open: true
269 | sni: www.bing.com
270 | skip-cert-verify: true
271 | - name: hysteria2_2
272 | type: hysteria2
273 | server: www2.dtku49.xyz
274 | port: 54406
275 | password: ebcbb37b
276 | fast-open: true
277 | sni: www.bing.com
278 | skip-cert-verify: true
279 | - name: hysteria2_3
280 | type: hysteria2
281 | server: www.dtku48.xyz
282 | port: 56411
283 | password: dongtaiwang.com
284 | fast-open: true
285 | sni: www.bing.com
286 | skip-cert-verify: true
287 | proxy-groups:
288 | - name: 节点选择
289 | type: select
290 | proxies:
291 | - 自动选择
292 | - DIRECT
293 | - 油管-绵阿羊
294 | - meta_hysteria2_01
295 | - meta_hysteria_11
296 | - meta_tuic_21
297 | - meta_hysteria2_31
298 | - meta_hysteria_41
299 | - meta_hysteria2_51
300 | - meta_hysteria_61
301 | - meta_hysteria_71
302 | - meta_hysteria_81
303 | - meta_hysteria_91
304 | - meta_hysteria_101
305 | - meta_hysteria_111
306 | - meta_hysteria_121
307 | - meta_hysteria_131
308 | - meta_vless_141
309 | - meta_hysteria_151
310 | - hysteria_0
311 | - hysteria_1
312 | - hysteria_2
313 | - hysteria_3
314 | - hysteria2_0
315 | - hysteria2_1
316 | - hysteria2_2
317 | - hysteria2_3
318 | - name: 自动选择
319 | type: url-test
320 | url: http://www.gstatic.com/generate_204
321 | interval: 300
322 | tolerance: 50
323 | proxies:
324 | - 油管-绵阿羊
325 | - meta_hysteria2_01
326 | - meta_hysteria_11
327 | - meta_tuic_21
328 | - meta_hysteria2_31
329 | - meta_hysteria_41
330 | - meta_hysteria2_51
331 | - meta_hysteria_61
332 | - meta_hysteria_71
333 | - meta_hysteria_81
334 | - meta_hysteria_91
335 | - meta_hysteria_101
336 | - meta_hysteria_111
337 | - meta_hysteria_121
338 | - meta_hysteria_131
339 | - meta_vless_141
340 | - meta_hysteria_151
341 | - hysteria_0
342 | - hysteria_1
343 | - hysteria_2
344 | - hysteria_3
345 | - hysteria2_0
346 | - hysteria2_1
347 | - hysteria2_2
348 | - hysteria2_3
349 | rules:
350 | - DOMAIN,clash.razord.top,DIRECT
351 | - DOMAIN,yacd.haishan.me,DIRECT
352 | - GEOIP,LAN,DIRECT
353 | - GEOIP,CN,DIRECT
354 | - MATCH,节点选择
355 |
--------------------------------------------------------------------------------
/ChromeGo/all_merged_proxies_shadowrocket_nekoray.txt:
--------------------------------------------------------------------------------
1 | aHlzdGVyaWEyOi8vODdkYzhjMmVAMTA4LjE4MS4yMi4yMDU6MTAxOTQ/aW5zZWN1cmU9MSZzbmk9d3d3LmJpbmcuY29tJm9iZnM9Jm9iZnMtcGFzc3dvcmQ9I2h5c3RlcmlhMl9tZXRhXzAKaHlzdGVyaWE6Ly93d3cuZHRrdTQ2Lnh5ejoxMTIyMz9wZWVyPSZhdXRoPW1xb0U5cVNveU1GYSZpbnNlY3VyZT0xJnVwbWJwcz01MCZkb3dubWJwcz04MCZhbHBuPWgzJm1wb3J0PTExMjIzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI2h5c3RlcmlhX21ldGFfMQp0dWljOi8vZWQ2YTUzOGEtNmU2Ni00ZjIxLWE3NjktNGIzODliYjJmM2FiOmRvbmd0YWl3YW5nQHR1aWMzLmR0a3U0Ny54eXo6MTIyNTU/c25pPSZjb25nZXN0aW9uX2NvbnRyb2w9YmJyJnVkcF9yZWxheV9tb2RlPW5hdGl2ZSZhbHBuPWgzJmFsbG93X2luc2VjdXJlPTAKaHlzdGVyaWEyOi8vODdkYzhjMmVAMTA4LjE4MS4yMi4yMDU6MTAxOTQ/aW5zZWN1cmU9MSZzbmk9d3d3LmJpbmcuY29tJm9iZnM9Jm9iZnMtcGFzc3dvcmQ9I2h5c3RlcmlhMl9tZXRhXzMKaHlzdGVyaWE6Ly93d3cuZHRrdTQ2Lnh5ejoxMTIyMz9wZWVyPSZhdXRoPW1xb0U5cVNveU1GYSZpbnNlY3VyZT0xJnVwbWJwcz01MCZkb3dubWJwcz04MCZhbHBuPWgzJm1wb3J0PTExMjIzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI2h5c3RlcmlhX21ldGFfNApoeXN0ZXJpYTI6Ly84N2RjOGMyZUAxMDguMTgxLjIyLjIwNToxMDE5ND9pbnNlY3VyZT0xJnNuaT13d3cuYmluZy5jb20mb2Jmcz0mb2Jmcy1wYXNzd29yZD0jaHlzdGVyaWEyX21ldGFfNQpoeXN0ZXJpYTovL2h5Mi5kdGt1NDcueHl6OjE1NTY2P3BlZXI9JmF1dGg9alFyR3B3U3FwMzRQJmluc2VjdXJlPTAmdXBtYnBzPTUwJmRvd25tYnBzPTgwJmFscG49aDMmbXBvcnQ9MTU1NjYmb2Jmcz0mcHJvdG9jb2w9dWRwJmZhc3RvcGVuPTEjaHlzdGVyaWFfbWV0YV82Cmh5c3RlcmlhOi8vY2xhc2gxLmR0a3U0Ny54eXo6MTEyMjM/cGVlcj0mYXV0aD1PNXRRUWlXMnhLZjUmaW5zZWN1cmU9MCZ1cG1icHM9NTAmZG93bm1icHM9ODAmYWxwbj1oMyZtcG9ydD0xMTIyMyZvYmZzPSZwcm90b2NvbD11ZHAmZmFzdG9wZW49MSNoeXN0ZXJpYV9tZXRhXzcKaHlzdGVyaWE6Ly9oeTIuZHRrdTQ3Lnh5ejoxNTU2Nj9wZWVyPSZhdXRoPWpRckdwd1NxcDM0UCZpbnNlY3VyZT0wJnVwbWJwcz01MCZkb3dubWJwcz04MCZhbHBuPWgzJm1wb3J0PTE1NTY2Jm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI2h5c3RlcmlhX21ldGFfOApoeXN0ZXJpYTovL2h5MS5kdGt1NDcueHl6OjIyMzM0P3BlZXI9JmF1dGg9bEFTZEt6V0swVnhMJmluc2VjdXJlPTAmdXBtYnBzPTUwJmRvd25tYnBzPTgwJmFscG49aDMmbXBvcnQ9MjIzMzQmb2Jmcz0mcHJvdG9jb2w9dWRwJmZhc3RvcGVuPTEjaHlzdGVyaWFfbWV0YV85Cmh5c3RlcmlhOi8vaHkyLmR0a3U0Ny54eXo6MTU1NjY/cGVlcj0mYXV0aD1qUXJHcHdTcXAzNFAmaW5zZWN1cmU9MCZ1cG1icHM9NTAmZG93bm1icHM9ODAmYWxwbj1oMyZtcG9ydD0xNTU2NiZvYmZzPSZwcm90b2NvbD11ZHAmZmFzdG9wZW49MSNoeXN0ZXJpYV9tZXRhXzEwCmh5c3RlcmlhOi8vaHkxLmR0a3U0Ny54eXo6MjIzMzQ/cGVlcj0mYXV0aD1sQVNkS3pXSzBWeEwmaW5zZWN1cmU9MCZ1cG1icHM9NTAmZG93bm1icHM9ODAmYWxwbj1oMyZtcG9ydD0yMjMzNCZvYmZzPSZwcm90b2NvbD11ZHAmZmFzdG9wZW49MSNoeXN0ZXJpYV9tZXRhXzExCmh5c3RlcmlhOi8vMTA4LjE4MS4yMi4yMzk6MTc3Mjc/cGVlcj15b3VrdS5jb20mYXV0aD0maW5zZWN1cmU9MSZ1cG1icHM9NTAmZG93bm1icHM9ODAmYWxwbj1oMyZtcG9ydD0xNzcyNyZvYmZzPSZwcm90b2NvbD11ZHAmZmFzdG9wZW49MSNoeXN0ZXJpYV9tZXRhXzEyCmh5c3RlcmlhOi8vd3d3LmR0a3U1MC54eXo6NDMyNTA/cGVlcj1iaW5nLmNvbSZhdXRoPSZpbnNlY3VyZT0xJnVwbWJwcz01MCZkb3dubWJwcz04MCZhbHBuPWgzJm1wb3J0PTQzMjUwJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI2h5c3RlcmlhX21ldGFfMTMKdmxlc3M6Ly8zNGYzNmI5Ny0xZmI3LTQxZjMtOGRiNC05MTJjYzY5ZTcyNGFANDUuMTUwLjE2NS42MToyNTY3OD9zZWN1cml0eT1yZWFsaXR5JmFsbG93SW5zZWN1cmUwJmZsb3c9eHRscy1ycHJ4LXZpc2lvbiZ0eXBlPXRjcCZmcD1jaHJvbWUmcGJrPXNKc1NaY0EyRHlBSERUY29lOFV0Yno5SmFYSlBNVm10SG1pWHhXbWNFeGMmc2lkPSZzbmk9aXR1bmVzLmFwcGxlLmNvbSZzZXJ2aWNlTmFtZT0mcGF0aD0maG9zdD0jdmxlc3NfbWV0YV8xNApoeXN0ZXJpYTovL3d3dzMuZHRrdTQ5Lnh5ejo1ODY5Mz9wZWVyPWJpbmcuY29tJmF1dGg9Jmluc2VjdXJlPTEmdXBtYnBzPTUwJmRvd25tYnBzPTgwJmFscG49aDMmbXBvcnQ9NTg2OTMmb2Jmcz0mcHJvdG9jb2w9dWRwJmZhc3RvcGVuPTEjaHlzdGVyaWFfbWV0YV8xNQphSFIwY0hNNkx5OWtiMjVuZEdGcGQyRnVaeTVqYjIwNlpHOXVaM1JoYVhkaGJtY3VZMjl0UUhkM2R5NWtkR3QxTkRndWVIbDZPalEwTXc9PQphSFIwY0hNNkx5OWtiMjVuZEdGcGQyRnVaeTVqYjIwNlpHOXVaM1JoYVhkaGJtY3VZMjl0UUc1aGFYWmxNVFF1WTJaalpHNHpMbmg1ZWpvME5ETT0KaHlzdGVyaWE6Ly8xNjcuMTYwLjkxLjExNToxMzkyOD9wZWVyPXBheXBhbC5jb20mYXV0aD1CRjBMTDRMMmpscVNkVzNLeGpRdjgxQWlGRmpqOTB2V1JIZVVvcVV1VFZQZURBR3ZxMyZpbnNlY3VyZT0xJnVwbWJwcz0xMSZkb3dubWJwcz01NSZhbHBuPWgzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI2h5c3RlcmlhXzAKaHlzdGVyaWE6Ly8xNzMuMjM0LjI1LjUyOjIwMTY0P3BlZXI9d3d3Lm1pY3Jvc29mdC5jb20mYXV0aD1Mamc2Tk5FQVREcVA5N2hkQWRIZTFsSnY3Z2d0S2MwaDd6bUNDWktDWDNxWTBMUjY0RiZpbnNlY3VyZT0xJnVwbWJwcz0xMSZkb3dubWJwcz01NSZhbHBuPWgzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI2h5c3RlcmlhXzEKaHlzdGVyaWE6Ly8xNzMuMjM0LjI1LjUyOjIwMTY0P3BlZXI9d3d3Lm1pY3Jvc29mdC5jb20mYXV0aD1Mamc2Tk5FQVREcVA5N2hkQWRIZTFsSnY3Z2d0S2MwaDd6bUNDWktDWDNxWTBMUjY0RiZpbnNlY3VyZT0xJnVwbWJwcz0xMSZkb3dubWJwcz01NSZhbHBuPWgzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI2h5c3RlcmlhXzIKaHlzdGVyaWE6Ly81MS4xNTguNTQuNDY6MTE5MjY/cGVlcj15b3VrdS5jb20mYXV0aD1UcnoyYWxLd3pDSW1SQVhJM25YZnBvMXlscEhmcU9MOHMxdmFnZVdLb3lqanZXZU1WcyZpbnNlY3VyZT0xJnVwbWJwcz0xMSZkb3dubWJwcz01NSZhbHBuPWgzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI2h5c3RlcmlhXzMKaHlzdGVyaWEyOi8vNGY1ODU1NWZAMTA4LjE4MS4yMi4xNTU6MTc5NjU/aW5zZWN1cmU9MSZzbmk9d3d3LmJpbmcuY29tI2h5c3RlcmlhMl8wCmh5c3RlcmlhMjovL2ZjNDQ4OGVmQDE2Ny4xNjAuOTAuMjUyOjYwOTMwP2luc2VjdXJlPTEmc25pPXd3dy5iaW5nLmNvbSNoeXN0ZXJpYTJfMQpoeXN0ZXJpYTI6Ly9lYmNiYjM3YkB3d3cyLmR0a3U0OS54eXo6NTQ0MDY/aW5zZWN1cmU9MSZzbmk9d3d3LmJpbmcuY29tI2h5c3RlcmlhMl8yCmh5c3RlcmlhMjovL2Rvbmd0YWl3YW5nLmNvbUB3d3cuZHRrdTQ4Lnh5ejo1NjQxMT9pbnNlY3VyZT0xJnNuaT13d3cuYmluZy5jb20jaHlzdGVyaWEyXzMKdmxlc3M6Ly8wNzczMjU2Yy1kMDIwLTQzNmQtYWZlYS02ZWVlN2NiNmM4NzJAZG93bmxvYWQueXVuemhvbmd6aHVhbi5jb206NDQzP3NlY3VyaXR5PXRscyZhbGxvd0luc2VjdXJlPTAmZmxvdz0mdHlwZT13cyZmcD1jaHJvbWUmcGJrPSZzaWQ9JnNuaT14cmF5MS5mcmVlZ3JhZGVseS54eXomc2VydmljZU5hbWU9JnBhdGg9L2JvZGh3cyZob3N0PXhyYXkxLmZyZWVncmFkZWx5Lnh5eiN2bGVzc18wCnZsZXNzOi8vZjVjMTgwZWItZmJjZS00OWFjLTkwMjktNDgyZWNhOTM4NWMwQGRvd25sb2FkLnl1bnpob25nemh1YW4uY29tOjQ0Mz9zZWN1cml0eT10bHMmYWxsb3dJbnNlY3VyZT0wJmZsb3c9JnR5cGU9d3MmZnA9Y2hyb21lJnBiaz0mc2lkPSZzbmk9eHJheTEuZnJlZWgxLnh5eiZzZXJ2aWNlTmFtZT0mcGF0aD0vZ3pvZ3dzJmhvc3Q9eHJheTEuZnJlZWgxLnh5eiN2bGVzc18yCnZsZXNzOi8vZjVjMTgwZWItZmJjZS00OWFjLTkwMjktNDgyZWNhOTM4NWMwQGRvbmd0YWl3YW5nMi5jb206NDQzP3NlY3VyaXR5PXRscyZhbGxvd0luc2VjdXJlPTAmZmxvdz0mdHlwZT13cyZmcD1jaHJvbWUmcGJrPSZzaWQ9JnNuaT14cmF5MS5mcmVlaDEueHl6JnNlcnZpY2VOYW1lPSZwYXRoPS9nem9nd3MmaG9zdD14cmF5MS5mcmVlaDEueHl6I3ZsZXNzXzMK
--------------------------------------------------------------------------------
/ChromeGo/all_merged_proxies_with_warp.yaml:
--------------------------------------------------------------------------------
1 | port: 7890
2 | allow-lan: true
3 | mode: rule
4 | log-level: info
5 | unified-delay: true
6 | global-client-fingerprint: chrome
7 | dns:
8 | enable: true
9 | listen: :53
10 | ipv6: true
11 | enhanced-mode: fake-ip
12 | fake-ip-range: 198.18.0.1/16
13 | default-nameserver:
14 | - 223.5.5.5
15 | - 8.8.8.8
16 | nameserver:
17 | - https://dns.alidns.com/dns-query
18 | - https://doh.pub/dns-query
19 | fallback:
20 | - https://1.0.0.1/dns-query
21 | - tls://dns.google
22 | fallback-filter:
23 | geoip: true
24 | geoip-code: CN
25 | ipcidr:
26 | - 240.0.0.0/4
27 | proxies:
28 | - name: 油管-绵阿羊
29 | type: trojan
30 | server: a
31 | port: 1
32 | password: 72ac875a-f5b9-461e-a7a4-942b468b0d83
33 | udp: true
34 | sni: gw.alicdn.com
35 | skip-cert-verify: true
36 | - name: WARP
37 | type: wireguard
38 | server: engage.cloudflareclient.com
39 | port: 2408
40 | ip: 172.16.0.2
41 | ipv6: 2606:4700:110:87c0:ba32:773a:8d44:e353
42 | private-key: +HpHpY/KjSv5hJdGrN2ok1A6CKhCmTQv5Unwyul9S1g=
43 | public-key: bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
44 | udp: true
45 | reserved:
46 | - 0
47 | - 0
48 | - 0
49 | remote-dns-resolve: true
50 | dns:
51 | - 1.1.1.1
52 | - 8.8.8.8
53 | dialer-proxy: WARP前置节点
54 | - name: meta_hysteria2_01
55 | type: hysteria2
56 | server: 108.181.22.205
57 | port: 10194
58 | password: 87dc8c2e
59 | sni: www.bing.com
60 | skip-cert-verify: true
61 | - name: meta_hysteria_11
62 | type: hysteria
63 | server: www.dtku46.xyz
64 | port: 11223
65 | auth-str: mqoE9qSoyMFa
66 | alpn:
67 | - h3
68 | protocol: udp
69 | up: 50 Mbps
70 | down: 100 Mbps
71 | skip-cert-verify: true
72 | - name: meta_tuic_21
73 | server: tuic3.dtku47.xyz
74 | port: 12255
75 | type: tuic
76 | uuid: ed6a538a-6e66-4f21-a769-4b389bb2f3ab
77 | password: dongtaiwang
78 | alpn:
79 | - h3
80 | request-timeout: 8000
81 | udp-relay-mode: native
82 | congestion-controller: bbr
83 | - name: meta_hysteria2_31
84 | type: hysteria2
85 | server: 108.181.22.205
86 | port: 10194
87 | password: 87dc8c2e
88 | sni: www.bing.com
89 | skip-cert-verify: true
90 | - name: meta_hysteria_41
91 | type: hysteria
92 | server: www.dtku46.xyz
93 | port: 11223
94 | auth-str: mqoE9qSoyMFa
95 | alpn:
96 | - h3
97 | protocol: udp
98 | up: 50 Mbps
99 | down: 100 Mbps
100 | skip-cert-verify: true
101 | - name: meta_hysteria2_51
102 | type: hysteria2
103 | server: 108.181.22.205
104 | port: 10194
105 | password: 87dc8c2e
106 | sni: www.bing.com
107 | skip-cert-verify: true
108 | - name: meta_hysteria_61
109 | type: hysteria
110 | server: hy2.dtku47.xyz
111 | port: 15566
112 | auth-str: jQrGpwSqp34P
113 | alpn:
114 | - h3
115 | protocol: udp
116 | up: 50 Mbps
117 | down: 100 Mbps
118 | - name: meta_hysteria_71
119 | type: hysteria
120 | server: clash1.dtku47.xyz
121 | port: 11223
122 | auth-str: O5tQQiW2xKf5
123 | alpn:
124 | - h3
125 | protocol: udp
126 | up: 50 Mbps
127 | down: 100 Mbps
128 | - name: meta_hysteria_81
129 | type: hysteria
130 | server: hy2.dtku47.xyz
131 | port: 15566
132 | auth-str: jQrGpwSqp34P
133 | alpn:
134 | - h3
135 | protocol: udp
136 | up: 50 Mbps
137 | down: 100 Mbps
138 | - name: meta_hysteria_91
139 | type: hysteria
140 | server: hy1.dtku47.xyz
141 | port: 22334
142 | auth-str: lASdKzWK0VxL
143 | alpn:
144 | - h3
145 | protocol: udp
146 | up: 50 Mbps
147 | down: 100 Mbps
148 | - name: meta_hysteria_101
149 | type: hysteria
150 | server: hy2.dtku47.xyz
151 | port: 15566
152 | auth-str: jQrGpwSqp34P
153 | alpn:
154 | - h3
155 | protocol: udp
156 | up: 50 Mbps
157 | down: 100 Mbps
158 | - name: meta_hysteria_111
159 | type: hysteria
160 | server: hy1.dtku47.xyz
161 | port: 22334
162 | auth-str: lASdKzWK0VxL
163 | alpn:
164 | - h3
165 | protocol: udp
166 | up: 50 Mbps
167 | down: 100 Mbps
168 | - name: meta_hysteria_121
169 | type: hysteria
170 | server: 108.181.22.239
171 | port: 17727
172 | sni: youku.com
173 | skip-cert-verify: true
174 | alpn:
175 | - h3
176 | protocol: udp
177 | auth_str: 7YxfKsXdTnB226S8j4OjaA9M0nLcXATvgnXhVJbCRG7e9KKU7i
178 | up: 11
179 | down: 55
180 | - name: meta_hysteria_131
181 | type: hysteria
182 | server: www.dtku50.xyz
183 | port: 43250
184 | sni: bing.com
185 | skip-cert-verify: true
186 | alpn:
187 | - h3
188 | protocol: udp
189 | auth_str: 2S9M5Gs0pgRsaTObNghoLZx6wPkBJOGTFWvf4R06Us5hUNtfr7
190 | up: 2
191 | down: 10
192 | - name: meta_vless_141
193 | type: vless
194 | server: 45.150.165.61
195 | port: 25678
196 | udp: true
197 | uuid: 34f36b97-1fb7-41f3-8db4-912cc69e724a
198 | tls: true
199 | servername: itunes.apple.com
200 | flow: xtls-rprx-vision
201 | network: tcp
202 | reality-opts:
203 | public-key: sJsSZcA2DyAHDTcoe8Utbz9JaXJPMVmtHmiXxWmcExc
204 | client-fingerprint: chrome
205 | - name: meta_hysteria_151
206 | type: hysteria
207 | server: www3.dtku49.xyz
208 | port: 58693
209 | sni: bing.com
210 | skip-cert-verify: true
211 | alpn:
212 | - h3
213 | protocol: udp
214 | auth_str: nbdyVMqucpFMmyRiwcRQFI7EeKzJWjPYuks3ZzEhCv6HjeZvbh
215 | up: 11
216 | down: 55
217 | - name: hysteria_0
218 | type: hysteria
219 | server: 167.160.91.115
220 | port: 13928
221 | ports: 13928
222 | auth_str: BF0LL4L2jlqSdW3KxjQv81AiFFjj90vWRHeUoqUuTVPeDAGvq3
223 | up: 80
224 | down: 100
225 | fast-open: true
226 | protocol: udp
227 | sni: paypal.com
228 | skip-cert-verify: true
229 | alpn:
230 | - h3
231 | - name: hysteria_1
232 | type: hysteria
233 | server: 173.234.25.52
234 | port: 20164
235 | ports: 20164
236 | auth_str: Ljg6NNEATDqP97hdAdHe1lJv7ggtKc0h7zmCCZKCX3qY0LR64F
237 | up: 80
238 | down: 100
239 | fast-open: true
240 | protocol: udp
241 | sni: www.microsoft.com
242 | skip-cert-verify: true
243 | alpn:
244 | - h3
245 | - name: hysteria_2
246 | type: hysteria
247 | server: 173.234.25.52
248 | port: 20164
249 | ports: 20164
250 | auth_str: Ljg6NNEATDqP97hdAdHe1lJv7ggtKc0h7zmCCZKCX3qY0LR64F
251 | up: 80
252 | down: 100
253 | fast-open: true
254 | protocol: udp
255 | sni: www.microsoft.com
256 | skip-cert-verify: true
257 | alpn:
258 | - h3
259 | - name: hysteria_3
260 | type: hysteria
261 | server: 51.158.54.46
262 | port: 11926
263 | ports: 11926
264 | auth_str: Trz2alKwzCImRAXI3nXfpo1ylpHfqOL8s1vageWKoyjjvWeMVs
265 | up: 80
266 | down: 100
267 | fast-open: true
268 | protocol: udp
269 | sni: youku.com
270 | skip-cert-verify: true
271 | alpn:
272 | - h3
273 | - name: hysteria2_0
274 | type: hysteria2
275 | server: 108.181.22.155
276 | port: 17965
277 | password: 4f58555f
278 | fast-open: true
279 | sni: www.bing.com
280 | skip-cert-verify: true
281 | - name: hysteria2_1
282 | type: hysteria2
283 | server: 167.160.90.252
284 | port: 60930
285 | password: fc4488ef
286 | fast-open: true
287 | sni: www.bing.com
288 | skip-cert-verify: true
289 | - name: hysteria2_2
290 | type: hysteria2
291 | server: www2.dtku49.xyz
292 | port: 54406
293 | password: ebcbb37b
294 | fast-open: true
295 | sni: www.bing.com
296 | skip-cert-verify: true
297 | - name: hysteria2_3
298 | type: hysteria2
299 | server: www.dtku48.xyz
300 | port: 56411
301 | password: dongtaiwang.com
302 | fast-open: true
303 | sni: www.bing.com
304 | skip-cert-verify: true
305 | proxy-groups:
306 | - name: 节点选择
307 | type: select
308 | proxies:
309 | - 油管-绵阿羊
310 | - WARP
311 | - 自动选择
312 | - 负载均衡
313 | - 手动选择
314 | - DIRECT
315 | - name: WARP前置节点
316 | type: select
317 | proxies:
318 | - 自动选择
319 | - 负载均衡
320 | - 手动选择
321 | - name: 自动选择
322 | type: url-test
323 | url: http://www.gstatic.com/generate_204
324 | interval: 300
325 | tolerance: 50
326 | proxies:
327 | - 油管-绵阿羊
328 | - meta_hysteria2_01
329 | - meta_hysteria_11
330 | - meta_tuic_21
331 | - meta_hysteria2_31
332 | - meta_hysteria_41
333 | - meta_hysteria2_51
334 | - meta_hysteria_61
335 | - meta_hysteria_71
336 | - meta_hysteria_81
337 | - meta_hysteria_91
338 | - meta_hysteria_101
339 | - meta_hysteria_111
340 | - meta_hysteria_121
341 | - meta_hysteria_131
342 | - meta_vless_141
343 | - meta_hysteria_151
344 | - hysteria_0
345 | - hysteria_1
346 | - hysteria_2
347 | - hysteria_3
348 | - hysteria2_0
349 | - hysteria2_1
350 | - hysteria2_2
351 | - hysteria2_3
352 | - name: 手动选择
353 | type: select
354 | proxies:
355 | - 油管-绵阿羊
356 | - meta_hysteria2_01
357 | - meta_hysteria_11
358 | - meta_tuic_21
359 | - meta_hysteria2_31
360 | - meta_hysteria_41
361 | - meta_hysteria2_51
362 | - meta_hysteria_61
363 | - meta_hysteria_71
364 | - meta_hysteria_81
365 | - meta_hysteria_91
366 | - meta_hysteria_101
367 | - meta_hysteria_111
368 | - meta_hysteria_121
369 | - meta_hysteria_131
370 | - meta_vless_141
371 | - meta_hysteria_151
372 | - hysteria_0
373 | - hysteria_1
374 | - hysteria_2
375 | - hysteria_3
376 | - hysteria2_0
377 | - hysteria2_1
378 | - hysteria2_2
379 | - hysteria2_3
380 | - name: 负载均衡
381 | type: load-balance
382 | proxies:
383 | - 油管-绵阿羊
384 | - meta_hysteria2_01
385 | - meta_hysteria_11
386 | - meta_tuic_21
387 | - meta_hysteria2_31
388 | - meta_hysteria_41
389 | - meta_hysteria2_51
390 | - meta_hysteria_61
391 | - meta_hysteria_71
392 | - meta_hysteria_81
393 | - meta_hysteria_91
394 | - meta_hysteria_101
395 | - meta_hysteria_111
396 | - meta_hysteria_121
397 | - meta_hysteria_131
398 | - meta_vless_141
399 | - meta_hysteria_151
400 | - hysteria_0
401 | - hysteria_1
402 | - hysteria_2
403 | - hysteria_3
404 | - hysteria2_0
405 | - hysteria2_1
406 | - hysteria2_2
407 | - hysteria2_3
408 | url: http://www.gstatic.com/generate_204
409 | interval: 300
410 | strategy: round-robin
411 | rules:
412 | - DOMAIN,clash.razord.top,DIRECT
413 | - DOMAIN,yacd.haishan.me,DIRECT
414 | - GEOIP,LAN,DIRECT
415 | - GEOIP,CN,DIRECT
416 | - MATCH,节点选择
417 |
--------------------------------------------------------------------------------
/ChromeGo/clashMeta/ip_0.yaml:
--------------------------------------------------------------------------------
1 | secret: dongtaiwang.com
2 | mixed-port: 7890
3 | allow-lan: false
4 | log-level: info
5 | dns:
6 | enabled: true
7 | nameserver:
8 | - 119.29.29.29
9 | - 223.5.5.5
10 | fallback:
11 | - 8.8.8.8
12 | - 8.8.4.4
13 | - tls://1.0.0.1:853
14 | - tls://dns.google:853
15 | proxies:
16 | - name: ip
17 | type: hysteria
18 | server: hy2.dtku47.xyz
19 | port: 15566
20 | auth-str: jQrGpwSqp34P
21 | alpn:
22 | - h3
23 | protocol: udp
24 | up: "50 Mbps"
25 | down: "100 Mbps"
26 | proxy-groups:
27 | - name: 🚀 节点选择
28 | type: select
29 | proxies:
30 | - ♻️ 自动选择
31 | - DIRECT
32 | - ip
33 | - name: ♻️ 自动选择
34 | type: url-test
35 | url: http://www.gstatic.com/generate_204
36 | interval: 300
37 | tolerance: 50
38 | proxies:
39 | - ip
40 | - name: 🌍 国外媒体
41 | type: select
42 | proxies:
43 | - 🚀 节点选择
44 | - ♻️ 自动选择
45 | - 🎯 全球直连
46 | - ip
47 | - name: 📲 电报信息
48 | type: select
49 | proxies:
50 | - 🚀 节点选择
51 | - 🎯 全球直连
52 | - ip
53 | - name: Ⓜ️ 微软服务
54 | type: select
55 | proxies:
56 | - 🎯 全球直连
57 | - 🚀 节点选择
58 | - ip
59 | - name: 🍎 苹果服务
60 | type: select
61 | proxies:
62 | - 🚀 节点选择
63 | - 🎯 全球直连
64 | - ip
65 | - name: 🎯 全球直连
66 | type: select
67 | proxies:
68 | - DIRECT
69 | - 🚀 节点选择
70 | - ♻️ 自动选择
71 | - name: 🛑 全球拦截
72 | type: select
73 | proxies:
74 | - REJECT
75 | - DIRECT
76 | - name: 🍃 应用净化
77 | type: select
78 | proxies:
79 | - REJECT
80 | - DIRECT
81 | - name: 🐟 漏网之鱼
82 | type: select
83 | proxies:
84 | - 🚀 节点选择
85 | - 🎯 全球直连
86 | - ♻️ 自动选择
87 | - ip
88 |
89 | rules:
90 | - MATCH,🚀 节点选择
91 |
--------------------------------------------------------------------------------
/ChromeGo/clashMeta/ip_1.yaml:
--------------------------------------------------------------------------------
1 | secret: dongtaiwang.com
2 | mixed-port: 7890
3 | allow-lan: false
4 | log-level: info
5 | dns:
6 | enabled: true
7 | nameserver:
8 | - 119.29.29.29
9 | - 223.5.5.5
10 | fallback:
11 | - 8.8.8.8
12 | - 8.8.4.4
13 | - tls://1.0.0.1:853
14 | - tls://dns.google:853
15 | proxies:
16 | - name: ip
17 | type: hysteria
18 | server: clash1.dtku47.xyz
19 | port: 11223
20 | auth-str: O5tQQiW2xKf5
21 | alpn:
22 | - h3
23 | protocol: udp
24 | up: "50 Mbps"
25 | down: "100 Mbps"
26 | proxy-groups:
27 | - name: 🚀 节点选择
28 | type: select
29 | proxies:
30 | - ♻️ 自动选择
31 | - DIRECT
32 | - ip
33 | - name: ♻️ 自动选择
34 | type: url-test
35 | url: http://www.gstatic.com/generate_204
36 | interval: 300
37 | tolerance: 50
38 | proxies:
39 | - ip
40 | - name: 🌍 国外媒体
41 | type: select
42 | proxies:
43 | - 🚀 节点选择
44 | - ♻️ 自动选择
45 | - 🎯 全球直连
46 | - ip
47 | - name: 📲 电报信息
48 | type: select
49 | proxies:
50 | - 🚀 节点选择
51 | - 🎯 全球直连
52 | - ip
53 | - name: Ⓜ️ 微软服务
54 | type: select
55 | proxies:
56 | - 🎯 全球直连
57 | - 🚀 节点选择
58 | - ip
59 | - name: 🍎 苹果服务
60 | type: select
61 | proxies:
62 | - 🚀 节点选择
63 | - 🎯 全球直连
64 | - ip
65 | - name: 🎯 全球直连
66 | type: select
67 | proxies:
68 | - DIRECT
69 | - 🚀 节点选择
70 | - ♻️ 自动选择
71 | - name: 🛑 全球拦截
72 | type: select
73 | proxies:
74 | - REJECT
75 | - DIRECT
76 | - name: 🍃 应用净化
77 | type: select
78 | proxies:
79 | - REJECT
80 | - DIRECT
81 | - name: 🐟 漏网之鱼
82 | type: select
83 | proxies:
84 | - 🚀 节点选择
85 | - 🎯 全球直连
86 | - ♻️ 自动选择
87 | - ip
88 |
89 | rules:
90 | - MATCH,🚀 节点选择
91 |
--------------------------------------------------------------------------------
/ChromeGo/clashMeta/ip_2.yaml:
--------------------------------------------------------------------------------
1 | secret: dongtaiwang.com
2 | mixed-port: 7890
3 | allow-lan: false
4 | log-level: info
5 | dns:
6 | enabled: true
7 | nameserver:
8 | - 119.29.29.29
9 | - 223.5.5.5
10 | fallback:
11 | - 8.8.8.8
12 | - 8.8.4.4
13 | - tls://1.0.0.1:853
14 | - tls://dns.google:853
15 | proxies:
16 | - name: ip
17 | type: hysteria
18 | server: hy2.dtku47.xyz
19 | port: 15566
20 | auth-str: jQrGpwSqp34P
21 | alpn:
22 | - h3
23 | protocol: udp
24 | up: "50 Mbps"
25 | down: "100 Mbps"
26 | proxy-groups:
27 | - name: 🚀 节点选择
28 | type: select
29 | proxies:
30 | - ♻️ 自动选择
31 | - DIRECT
32 | - ip
33 | - name: ♻️ 自动选择
34 | type: url-test
35 | url: http://www.gstatic.com/generate_204
36 | interval: 300
37 | tolerance: 50
38 | proxies:
39 | - ip
40 | - name: 🌍 国外媒体
41 | type: select
42 | proxies:
43 | - 🚀 节点选择
44 | - ♻️ 自动选择
45 | - 🎯 全球直连
46 | - ip
47 | - name: 📲 电报信息
48 | type: select
49 | proxies:
50 | - 🚀 节点选择
51 | - 🎯 全球直连
52 | - ip
53 | - name: Ⓜ️ 微软服务
54 | type: select
55 | proxies:
56 | - 🎯 全球直连
57 | - 🚀 节点选择
58 | - ip
59 | - name: 🍎 苹果服务
60 | type: select
61 | proxies:
62 | - 🚀 节点选择
63 | - 🎯 全球直连
64 | - ip
65 | - name: 🎯 全球直连
66 | type: select
67 | proxies:
68 | - DIRECT
69 | - 🚀 节点选择
70 | - ♻️ 自动选择
71 | - name: 🛑 全球拦截
72 | type: select
73 | proxies:
74 | - REJECT
75 | - DIRECT
76 | - name: 🍃 应用净化
77 | type: select
78 | proxies:
79 | - REJECT
80 | - DIRECT
81 | - name: 🐟 漏网之鱼
82 | type: select
83 | proxies:
84 | - 🚀 节点选择
85 | - 🎯 全球直连
86 | - ♻️ 自动选择
87 | - ip
88 |
89 | rules:
90 | - MATCH,🚀 节点选择
91 |
--------------------------------------------------------------------------------
/ChromeGo/clashMeta/ip_3.yaml:
--------------------------------------------------------------------------------
1 | secret: dongtaiwang.com
2 | mixed-port: 7890
3 | allow-lan: false
4 | log-level: info
5 | dns:
6 | enabled: true
7 | nameserver:
8 | - 119.29.29.29
9 | - 223.5.5.5
10 | fallback:
11 | - 8.8.8.8
12 | - 8.8.4.4
13 | - tls://1.0.0.1:853
14 | - tls://dns.google:853
15 | proxies:
16 | - name: ip
17 | type: hysteria
18 | server: hy2.dtku47.xyz
19 | port: 15566
20 | auth-str: jQrGpwSqp34P
21 | alpn:
22 | - h3
23 | protocol: udp
24 | up: "50 Mbps"
25 | down: "100 Mbps"
26 | proxy-groups:
27 | - name: 🚀 节点选择
28 | type: select
29 | proxies:
30 | - ♻️ 自动选择
31 | - DIRECT
32 | - ip
33 | - name: ♻️ 自动选择
34 | type: url-test
35 | url: http://www.gstatic.com/generate_204
36 | interval: 300
37 | tolerance: 50
38 | proxies:
39 | - ip
40 | - name: 🌍 国外媒体
41 | type: select
42 | proxies:
43 | - 🚀 节点选择
44 | - ♻️ 自动选择
45 | - 🎯 全球直连
46 | - ip
47 | - name: 📲 电报信息
48 | type: select
49 | proxies:
50 | - 🚀 节点选择
51 | - 🎯 全球直连
52 | - ip
53 | - name: Ⓜ️ 微软服务
54 | type: select
55 | proxies:
56 | - 🎯 全球直连
57 | - 🚀 节点选择
58 | - ip
59 | - name: 🍎 苹果服务
60 | type: select
61 | proxies:
62 | - 🚀 节点选择
63 | - 🎯 全球直连
64 | - ip
65 | - name: 🎯 全球直连
66 | type: select
67 | proxies:
68 | - DIRECT
69 | - 🚀 节点选择
70 | - ♻️ 自动选择
71 | - name: 🛑 全球拦截
72 | type: select
73 | proxies:
74 | - REJECT
75 | - DIRECT
76 | - name: 🍃 应用净化
77 | type: select
78 | proxies:
79 | - REJECT
80 | - DIRECT
81 | - name: 🐟 漏网之鱼
82 | type: select
83 | proxies:
84 | - 🚀 节点选择
85 | - 🎯 全球直连
86 | - ♻️ 自动选择
87 | - ip
88 |
89 | rules:
90 | - MATCH,🚀 节点选择
91 |
--------------------------------------------------------------------------------
/ChromeGo/clashMeta/ip_4.yaml:
--------------------------------------------------------------------------------
1 | secret: dongtaiwang.com
2 | mixed-port: 7890
3 | allow-lan: false
4 | log-level: info
5 | dns:
6 | enabled: true
7 | nameserver:
8 | - 119.29.29.29
9 | - 223.5.5.5
10 | fallback:
11 | - 8.8.8.8
12 | - 8.8.4.4
13 | - tls://1.0.0.1:853
14 | - tls://dns.google:853
15 | proxies:
16 | - name: ip
17 | type: hysteria
18 | server: hy1.dtku47.xyz
19 | port: 22334
20 | auth-str: lASdKzWK0VxL
21 | alpn:
22 | - h3
23 | protocol: udp
24 | up: "50 Mbps"
25 | down: "100 Mbps"
26 | proxy-groups:
27 | - name: 🚀 节点选择
28 | type: select
29 | proxies:
30 | - ♻️ 自动选择
31 | - DIRECT
32 | - ip
33 | - name: ♻️ 自动选择
34 | type: url-test
35 | url: http://www.gstatic.com/generate_204
36 | interval: 300
37 | tolerance: 50
38 | proxies:
39 | - ip
40 | - name: 🌍 国外媒体
41 | type: select
42 | proxies:
43 | - 🚀 节点选择
44 | - ♻️ 自动选择
45 | - 🎯 全球直连
46 | - ip
47 | - name: 📲 电报信息
48 | type: select
49 | proxies:
50 | - 🚀 节点选择
51 | - 🎯 全球直连
52 | - ip
53 | - name: Ⓜ️ 微软服务
54 | type: select
55 | proxies:
56 | - 🎯 全球直连
57 | - 🚀 节点选择
58 | - ip
59 | - name: 🍎 苹果服务
60 | type: select
61 | proxies:
62 | - 🚀 节点选择
63 | - 🎯 全球直连
64 | - ip
65 | - name: 🎯 全球直连
66 | type: select
67 | proxies:
68 | - DIRECT
69 | - 🚀 节点选择
70 | - ♻️ 自动选择
71 | - name: 🛑 全球拦截
72 | type: select
73 | proxies:
74 | - REJECT
75 | - DIRECT
76 | - name: 🍃 应用净化
77 | type: select
78 | proxies:
79 | - REJECT
80 | - DIRECT
81 | - name: 🐟 漏网之鱼
82 | type: select
83 | proxies:
84 | - 🚀 节点选择
85 | - 🎯 全球直连
86 | - ♻️ 自动选择
87 | - ip
88 |
89 | rules:
90 | - MATCH,🚀 节点选择
91 |
92 |
93 |
--------------------------------------------------------------------------------
/ChromeGo/clashMeta/ip_5.yaml:
--------------------------------------------------------------------------------
1 | secret: dongtaiwang.com
2 | mixed-port: 7890
3 | allow-lan: false
4 | log-level: info
5 | dns:
6 | enabled: true
7 | nameserver:
8 | - 119.29.29.29
9 | - 223.5.5.5
10 | fallback:
11 | - 8.8.8.8
12 | - 8.8.4.4
13 | - tls://1.0.0.1:853
14 | - tls://dns.google:853
15 | proxies:
16 | - name: ip
17 | type: hysteria
18 | server: hy1.dtku47.xyz
19 | port: 22334
20 | auth-str: lASdKzWK0VxL
21 | alpn:
22 | - h3
23 | protocol: udp
24 | up: "50 Mbps"
25 | down: "100 Mbps"
26 | proxy-groups:
27 | - name: 🚀 节点选择
28 | type: select
29 | proxies:
30 | - ♻️ 自动选择
31 | - DIRECT
32 | - ip
33 | - name: ♻️ 自动选择
34 | type: url-test
35 | url: http://www.gstatic.com/generate_204
36 | interval: 300
37 | tolerance: 50
38 | proxies:
39 | - ip
40 | - name: 🌍 国外媒体
41 | type: select
42 | proxies:
43 | - 🚀 节点选择
44 | - ♻️ 自动选择
45 | - 🎯 全球直连
46 | - ip
47 | - name: 📲 电报信息
48 | type: select
49 | proxies:
50 | - 🚀 节点选择
51 | - 🎯 全球直连
52 | - ip
53 | - name: Ⓜ️ 微软服务
54 | type: select
55 | proxies:
56 | - 🎯 全球直连
57 | - 🚀 节点选择
58 | - ip
59 | - name: 🍎 苹果服务
60 | type: select
61 | proxies:
62 | - 🚀 节点选择
63 | - 🎯 全球直连
64 | - ip
65 | - name: 🎯 全球直连
66 | type: select
67 | proxies:
68 | - DIRECT
69 | - 🚀 节点选择
70 | - ♻️ 自动选择
71 | - name: 🛑 全球拦截
72 | type: select
73 | proxies:
74 | - REJECT
75 | - DIRECT
76 | - name: 🍃 应用净化
77 | type: select
78 | proxies:
79 | - REJECT
80 | - DIRECT
81 | - name: 🐟 漏网之鱼
82 | type: select
83 | proxies:
84 | - 🚀 节点选择
85 | - 🎯 全球直连
86 | - ♻️ 自动选择
87 | - ip
88 |
89 | rules:
90 | - MATCH,🚀 节点选择
91 |
--------------------------------------------------------------------------------
/ChromeGo/get_all_proxies.sh:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 | mkdir -p clash
3 | mkdir -p wireguard
4 |
5 | curl -L https://mareep.netlify.app/sub/merged_proxies_new.yaml -o all_merged_proxies.yaml
6 | curl -L https://mareep.netlify.app/sub/merged_warp_proxies_new.yaml -o all_merged_proxies_with_warp.yaml
7 | curl -L https://mareep.netlify.app/sub/shadowrocket_base64.txt -o all_merged_proxies_shadowrocket_nekoray.txt
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ChromeGo/hysteria1/ip_0.json:
--------------------------------------------------------------------------------
1 | {
2 | "server": "108.181.22.239:17727",
3 | "protocol": "udp",
4 | "up_mbps": 11,
5 | "down_mbps": 55,
6 | "http": {
7 | "listen": "127.0.0.1:1081",
8 | "timeout" : 250,
9 | "disable_udp": false
10 | },
11 | "socks5": {
12 | "listen": "127.0.0.1:1080",
13 | "timeout": 250,
14 | "disable_udp": false
15 | },
16 | "obfs": "",
17 | "auth_str": "7YxfKsXdTnB226S8j4OjaA9M0nLcXATvgnXhVJbCRG7e9KKU7i",
18 | "alpn": "h3",
19 | "server_name": "youku.com",
20 | "insecure": true,
21 | "recv_window_conn": 5767168,
22 | "recv_window": 23068672,
23 | "disable_mtu_discovery": true,
24 | "resolver": "https://223.5.5.5/dns-query",
25 | "retry": 3,
26 | "retry_interval": 3,
27 | "quit_on_disconnect": false,
28 | "handshake_timeout": 15,
29 | "idle_timeout": 30,
30 | "fast_open": true,
31 | "hop_interval": 120
32 | }
33 |
--------------------------------------------------------------------------------
/ChromeGo/hysteria1/ip_1.json:
--------------------------------------------------------------------------------
1 | {
2 | "server": "51.158.54.46:11926",
3 | "protocol": "udp",
4 | "up_mbps": 11,
5 | "down_mbps": 55,
6 | "http": {
7 | "listen": "127.0.0.1:1081",
8 | "timeout" : 300,
9 | "disable_udp": false
10 | },
11 | "socks5": {
12 | "listen": "127.0.0.1:1080",
13 | "timeout": 300,
14 | "disable_udp": false
15 | },
16 | "obfs": "",
17 | "auth_str": "Trz2alKwzCImRAXI3nXfpo1ylpHfqOL8s1vageWKoyjjvWeMVs",
18 | "alpn": "h3",
19 | "server_name": "youku.com",
20 | "insecure": true,
21 | "recv_window_conn": 5767168,
22 | "recv_window": 23068672,
23 | "disable_mtu_discovery": true,
24 | "resolver": "https://223.5.5.5/dns-query",
25 | "retry": 3,
26 | "retry_interval": 3,
27 | "quit_on_disconnect": false,
28 | "handshake_timeout": 15,
29 | "idle_timeout": 30,
30 | "fast_open": true,
31 | "hop_interval": 120
32 | }
33 |
--------------------------------------------------------------------------------
/ChromeGo/hysteria1/ip_2.json:
--------------------------------------------------------------------------------
1 | {
2 | "server": "173.234.25.52:20164",
3 | "protocol": "udp",
4 | "up_mbps": 11,
5 | "down_mbps": 55,
6 | "http": {
7 | "listen": "127.0.0.1:1081",
8 | "timeout" : 250,
9 | "disable_udp": false
10 | },
11 | "socks5": {
12 | "listen": "127.0.0.1:1080",
13 | "timeout": 250,
14 | "disable_udp": false
15 | },
16 | "obfs": "",
17 | "auth_str": "Ljg6NNEATDqP97hdAdHe1lJv7ggtKc0h7zmCCZKCX3qY0LR64F",
18 | "alpn": "h3",
19 | "server_name": "www.microsoft.com",
20 | "insecure": true,
21 | "recv_window_conn": 5767168,
22 | "recv_window": 23068672,
23 | "disable_mtu_discovery": true,
24 | "resolver": "https://223.5.5.5/dns-query",
25 | "retry": 3,
26 | "retry_interval": 3,
27 | "quit_on_disconnect": false,
28 | "handshake_timeout": 15,
29 | "idle_timeout": 30,
30 | "fast_open": true,
31 | "hop_interval": 120
32 | }
33 |
--------------------------------------------------------------------------------
/ChromeGo/hysteria1/ip_3.json:
--------------------------------------------------------------------------------
1 | {
2 | "server": "109.104.152.149:48406",
3 | "protocol": "udp",
4 | "up_mbps": 11,
5 | "down_mbps": 55,
6 | "http": {
7 | "listen": "127.0.0.1:1081",
8 | "timeout" : 300,
9 | "disable_udp": false
10 | },
11 | "socks5": {
12 | "listen": "127.0.0.1:1080",
13 | "timeout": 300,
14 | "disable_udp": false
15 | },
16 | "obfs": "",
17 | "auth_str": "xfNhrunYJ9GvDXCTktY2bIwhc1EyeyyAbiUMx1UtBOWgI4cMVB",
18 | "alpn": "h3",
19 | "server_name": "www.amazon.cn",
20 | "insecure": true,
21 | "recv_window_conn": 5767168,
22 | "recv_window": 23068672,
23 | "disable_mtu_discovery": true,
24 | "resolver": "https://223.5.5.5/dns-query",
25 | "retry": 3,
26 | "retry_interval": 3,
27 | "quit_on_disconnect": false,
28 | "handshake_timeout": 15,
29 | "idle_timeout": 30,
30 | "fast_open": true,
31 | "hop_interval": 120
32 | }
33 |
--------------------------------------------------------------------------------
/ChromeGo/hysteria2/ip_0.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "server": "108.181.22.155:56091",
4 | "auth": "dongtaiwang.com",
5 | "tls": {
6 | "sni": "www.bing.com",
7 | "insecure": true
8 | },
9 | "quic": {
10 | "initStreamReceiveWindow": 16777216,
11 | "maxStreamReceiveWindow": 16777216,
12 | "initConnReceiveWindow": 33554432,
13 | "maxConnReceiveWindow": 33554432
14 | },
15 | "fastOpen": true,
16 | "socks5": {
17 | "listen": "127.0.0.1:1080"
18 | },
19 | "transport": {
20 | "udp": {
21 | "hopInterval": "30s"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ChromeGo/hysteria2/ip_1.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "server": "www.dtku46.xyz:13579",
4 | "auth": "dongtaiwang.com",
5 | "tls": {
6 | "sni": "www.bing.com",
7 | "insecure": true
8 | },
9 | "quic": {
10 | "initStreamReceiveWindow": 16777216,
11 | "maxStreamReceiveWindow": 16777216,
12 | "initConnReceiveWindow": 33554432,
13 | "maxConnReceiveWindow": 33554432
14 | },
15 | "fastOpen": true,
16 | "socks5": {
17 | "listen": "127.0.0.1:1080"
18 | },
19 | "transport": {
20 | "udp": {
21 | "hopInterval": "30s"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ChromeGo/hysteria2/ip_2.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "server": "108.181.22.155:56091",
4 | "auth": "dongtaiwang.com",
5 | "tls": {
6 | "sni": "www.bing.com",
7 | "insecure": true
8 | },
9 | "quic": {
10 | "initStreamReceiveWindow": 16777216,
11 | "maxStreamReceiveWindow": 16777216,
12 | "initConnReceiveWindow": 33554432,
13 | "maxConnReceiveWindow": 33554432
14 | },
15 | "fastOpen": true,
16 | "socks5": {
17 | "listen": "127.0.0.1:1080"
18 | },
19 | "transport": {
20 | "udp": {
21 | "hopInterval": "30s"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ChromeGo/hysteria2/ip_3.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "server": "www.dtku48.xyz:26458",
4 | "auth": "dongtaiwang.com",
5 | "tls": {
6 | "sni": "www.bing.com",
7 | "insecure": true
8 | },
9 | "quic": {
10 | "initStreamReceiveWindow": 16777216,
11 | "maxStreamReceiveWindow": 16777216,
12 | "initConnReceiveWindow": 33554432,
13 | "maxConnReceiveWindow": 33554432
14 | },
15 | "fastOpen": true,
16 | "socks5": {
17 | "listen": "127.0.0.1:1080"
18 | },
19 | "transport": {
20 | "udp": {
21 | "hopInterval": "30s"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ChromeGo/naiveproxy/ip_0.json:
--------------------------------------------------------------------------------
1 | {
2 | "listen": "socks://127.0.0.1:1080",
3 | "proxy": "https://dongtaiwang.com:dongtaiwang.com@www.dtku48.xyz:443"
4 | }
5 |
--------------------------------------------------------------------------------
/ChromeGo/naiveproxy/ip_1.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "listen": "socks://127.0.0.1:1080",
4 | "proxy": "https://dongtaiwang.com:dongtaiwang.com@naive16.cfcdn3.xyz:443"
5 | }
6 |
--------------------------------------------------------------------------------
/ChromeGo/singbox/ip_0.json:
--------------------------------------------------------------------------------
1 | {
2 | "inbounds": [
3 | {
4 | "type": "mixed",
5 | "tag": "mixed-in",
6 | "listen": "::",
7 | "listen_port": 1080,
8 | "sniff": true,
9 | "set_system_proxy": false
10 | }
11 | ],
12 | "outbounds": [
13 | {
14 | "type": "hysteria",
15 | "tag": "Hysteria-3166",
16 | "server": "www.dtku50.xyz",
17 | "server_port": 28877,
18 | "up_mbps": 50,
19 | "down_mbps": 100,
20 | "auth_str": "y6Sf5xTFyNx5",
21 | "tls": {
22 | "enabled": true,
23 | "server_name": "www.dtku50.xyz",
24 | "alpn": [
25 | "h3"
26 | ]
27 |
28 | }
29 | }
30 | ]
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/ChromeGo/singbox/ip_1.json:
--------------------------------------------------------------------------------
1 | {
2 | "inbounds": [
3 | {
4 | "type": "mixed",
5 | "tag": "mixed-in",
6 | "listen": "::",
7 | "listen_port": 1080,
8 | "sniff": true,
9 | "set_system_proxy": false
10 | }
11 | ],
12 | "outbounds": [
13 | {
14 | "type": "tuic",
15 | "tag": "tuic-6132",
16 | "server": "sing2.dtku47.xyz",
17 | "server_port": 55667,
18 | "uuid": "2dca51f2-8968-479b-b086-4a62269f3f37",
19 | "password": "dongtaiwang",
20 | "congestion_control": "bbr",
21 | "udp_relay_mode": "native",
22 | "zero_rtt_handshake": false,
23 | "heartbeat": "10s",
24 | "tls": {
25 | "enabled": true,
26 | "server_name": "sing2.dtku47.xyz",
27 | "alpn": [
28 | "h3"
29 | ]
30 |
31 | }
32 | }
33 | ]
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/ChromeGo/xray/ip_0.json:
--------------------------------------------------------------------------------
1 | {
2 | "log": {
3 | "access": "",
4 | "error": "",
5 | "loglevel": "warning"
6 | },
7 | "inbounds": [
8 | {
9 | "tag": "socks",
10 | "port": 1080,
11 | "listen": "127.0.0.1",
12 | "protocol": "socks",
13 | "sniffing": {
14 | "enabled": true,
15 | "destOverride": [
16 | "http",
17 | "tls"
18 | ],
19 | "routeOnly": false
20 | },
21 | "settings": {
22 | "auth": "noauth",
23 | "udp": true,
24 | "allowTransparent": false
25 | }
26 | },
27 | {
28 | "tag": "http",
29 | "port": 1081,
30 | "listen": "127.0.0.1",
31 | "protocol": "http",
32 | "sniffing": {
33 | "enabled": true,
34 | "destOverride": [
35 | "http",
36 | "tls"
37 | ],
38 | "routeOnly": false
39 | },
40 | "settings": {
41 | "auth": "noauth",
42 | "udp": true,
43 | "allowTransparent": false
44 | }
45 | }
46 | ],
47 | "outbounds": [
48 | {
49 | "tag": "proxy",
50 | "protocol": "vless",
51 | "settings": {
52 | "vnext": [
53 | {
54 | "address": "dongtaiwang3.com",
55 | "port": 443,
56 | "users": [
57 | {
58 | "id": "0773256c-d020-436d-afea-6eee7cb6c872",
59 | "alterId": 0,
60 | "email": "t@t.tt",
61 | "security": "auto",
62 | "encryption": "none",
63 | "flow": ""
64 | }
65 | ]
66 | }
67 | ]
68 | },
69 | "streamSettings": {
70 | "network": "ws",
71 | "security": "tls",
72 | "tlsSettings": {
73 | "allowInsecure": false,
74 | "serverName": "xray1.freegradely.xyz",
75 | "fingerprint": "chrome",
76 | "show": false
77 | },
78 | "wsSettings": {
79 | "path": "/bodhws",
80 | "headers": {
81 | "Host": "xray1.freegradely.xyz"
82 | }
83 | }
84 | },
85 | "mux": {
86 | "enabled": false,
87 | "concurrency": -1
88 | }
89 | },
90 | {
91 | "tag": "direct",
92 | "protocol": "freedom",
93 | "settings": {}
94 | },
95 | {
96 | "tag": "block",
97 | "protocol": "blackhole",
98 | "settings": {
99 | "response": {
100 | "type": "http"
101 | }
102 | }
103 | }
104 | ],
105 | "routing": {
106 | "domainStrategy": "AsIs",
107 | "rules": [
108 | {
109 | "type": "field",
110 | "inboundTag": [
111 | "api"
112 | ],
113 | "outboundTag": "api",
114 | "enabled": true
115 | },
116 | {
117 | "id": "4903912855803990739",
118 | "type": "field",
119 | "outboundTag": "direct",
120 | "domain": [
121 | "domain:example-example.com",
122 | "domain:example-example2.com"
123 | ],
124 | "enabled": true
125 | },
126 | {
127 | "id": "5708028511442260423",
128 | "type": "field",
129 | "outboundTag": "block",
130 | "domain": [
131 | "geosite:category-ads-all"
132 | ],
133 | "enabled": true
134 | },
135 | {
136 | "id": "5285280340381945458",
137 | "type": "field",
138 | "outboundTag": "direct",
139 | "domain": [
140 | "geosite:cn"
141 | ],
142 | "enabled": true
143 | },
144 | {
145 | "id": "5063426339087196734",
146 | "type": "field",
147 | "outboundTag": "direct",
148 | "ip": [
149 | "geoip:private",
150 | "geoip:cn"
151 | ],
152 | "enabled": true
153 | },
154 | {
155 | "id": "4919950405029472934",
156 | "type": "field",
157 | "port": "0-65535",
158 | "outboundTag": "proxy",
159 | "enabled": true
160 | }
161 | ]
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/ChromeGo/xray/ip_1.json:
--------------------------------------------------------------------------------
1 | {
2 | "log": {
3 | "access": "",
4 | "error": "",
5 | "loglevel": "warning"
6 | },
7 | "inbounds": [
8 | {
9 | "tag": "socks",
10 | "port": 1080,
11 | "listen": "127.0.0.1",
12 | "protocol": "socks",
13 | "sniffing": {
14 | "enabled": true,
15 | "destOverride": [
16 | "http",
17 | "tls"
18 | ],
19 | "routeOnly": false
20 | },
21 | "settings": {
22 | "auth": "noauth",
23 | "udp": true,
24 | "allowTransparent": false
25 | }
26 | },
27 | {
28 | "tag": "http",
29 | "port": 1081,
30 | "listen": "127.0.0.1",
31 | "protocol": "http",
32 | "sniffing": {
33 | "enabled": true,
34 | "destOverride": [
35 | "http",
36 | "tls"
37 | ],
38 | "routeOnly": false
39 | },
40 | "settings": {
41 | "auth": "noauth",
42 | "udp": true,
43 | "allowTransparent": false
44 | }
45 | }
46 | ],
47 | "outbounds": [
48 | {
49 | "tag": "proxy",
50 | "protocol": "vless",
51 | "settings": {
52 | "vnext": [
53 | {
54 | "address": "109.104.152.156",
55 | "port": 16717,
56 | "users": [
57 | {
58 | "id": "a2971a3e-d013-47b2-93c8-2ff2a4bcff2a",
59 | "alterId": 0,
60 | "email": "t@t.tt",
61 | "security": "auto",
62 | "encryption": "none",
63 | "flow": "xtls-rprx-vision"
64 | }
65 | ]
66 | }
67 | ]
68 | },
69 | "streamSettings": {
70 | "network": "tcp",
71 | "security": "reality",
72 | "realitySettings": {
73 | "serverName": "aod.itunes.apple.com",
74 | "fingerprint": "chrome",
75 | "show": false,
76 | "publicKey": "ydGuypY0EPIAxMpi8L-yhWBtjyavZbtwo9JJk2K5G0Y",
77 | "shortId": "6ba85179e30d4fc2",
78 | "spiderX": ""
79 | }
80 | },
81 | "mux": {
82 | "enabled": false,
83 | "concurrency": -1
84 | }
85 | },
86 | {
87 | "tag": "direct",
88 | "protocol": "freedom",
89 | "settings": {}
90 | },
91 | {
92 | "tag": "block",
93 | "protocol": "blackhole",
94 | "settings": {
95 | "response": {
96 | "type": "http"
97 | }
98 | }
99 | }
100 | ],
101 | "routing": {
102 | "domainStrategy": "AsIs",
103 | "rules": [
104 | {
105 | "type": "field",
106 | "inboundTag": [
107 | "api"
108 | ],
109 | "outboundTag": "api",
110 | "enabled": true
111 | },
112 | {
113 | "id": "4903912855803990739",
114 | "type": "field",
115 | "outboundTag": "direct",
116 | "domain": [
117 | "domain:example-example.com",
118 | "domain:example-example2.com"
119 | ],
120 | "enabled": true
121 | },
122 | {
123 | "id": "5708028511442260423",
124 | "type": "field",
125 | "outboundTag": "block",
126 | "domain": [
127 | "geosite:category-ads-all"
128 | ],
129 | "enabled": true
130 | },
131 | {
132 | "id": "5285280340381945458",
133 | "type": "field",
134 | "outboundTag": "direct",
135 | "domain": [
136 | "geosite:cn"
137 | ],
138 | "enabled": true
139 | },
140 | {
141 | "id": "5063426339087196734",
142 | "type": "field",
143 | "outboundTag": "direct",
144 | "ip": [
145 | "geoip:private",
146 | "geoip:cn"
147 | ],
148 | "enabled": true
149 | },
150 | {
151 | "id": "4919950405029472934",
152 | "type": "field",
153 | "port": "0-65535",
154 | "outboundTag": "proxy",
155 | "enabled": true
156 | }
157 | ]
158 | }
159 | }
160 |
--------------------------------------------------------------------------------
/ChromeGo/xray/ip_2.json:
--------------------------------------------------------------------------------
1 | {
2 | "log": {
3 | "access": "",
4 | "error": "",
5 | "loglevel": "warning"
6 | },
7 | "inbounds": [
8 | {
9 | "tag": "socks",
10 | "port": 1080,
11 | "listen": "127.0.0.1",
12 | "protocol": "socks",
13 | "sniffing": {
14 | "enabled": true,
15 | "destOverride": [
16 | "http",
17 | "tls"
18 | ],
19 | "routeOnly": false
20 | },
21 | "settings": {
22 | "auth": "noauth",
23 | "udp": true,
24 | "allowTransparent": false
25 | }
26 | },
27 | {
28 | "tag": "http",
29 | "port": 1081,
30 | "listen": "127.0.0.1",
31 | "protocol": "http",
32 | "sniffing": {
33 | "enabled": true,
34 | "destOverride": [
35 | "http",
36 | "tls"
37 | ],
38 | "routeOnly": false
39 | },
40 | "settings": {
41 | "auth": "noauth",
42 | "udp": true,
43 | "allowTransparent": false
44 | }
45 | }
46 | ],
47 | "outbounds": [
48 | {
49 | "tag": "proxy",
50 | "protocol": "vless",
51 | "settings": {
52 | "vnext": [
53 | {
54 | "address": "dongtaiwang2.com",
55 | "port": 443,
56 | "users": [
57 | {
58 | "id": "f5c180eb-fbce-49ac-9029-482eca9385c0",
59 | "alterId": 0,
60 | "email": "t@t.tt",
61 | "security": "auto",
62 | "encryption": "none",
63 | "flow": ""
64 | }
65 | ]
66 | }
67 | ]
68 | },
69 | "streamSettings": {
70 | "network": "ws",
71 | "security": "tls",
72 | "tlsSettings": {
73 | "allowInsecure": false,
74 | "serverName": "xray1.freeh1.xyz",
75 | "fingerprint": "chrome",
76 | "show": false
77 | },
78 | "wsSettings": {
79 | "path": "/gzogws",
80 | "headers": {
81 | "Host": "xray1.freeh1.xyz"
82 | }
83 | }
84 | },
85 | "mux": {
86 | "enabled": false,
87 | "concurrency": -1
88 | }
89 | },
90 | {
91 | "tag": "direct",
92 | "protocol": "freedom",
93 | "settings": {}
94 | },
95 | {
96 | "tag": "block",
97 | "protocol": "blackhole",
98 | "settings": {
99 | "response": {
100 | "type": "http"
101 | }
102 | }
103 | }
104 | ],
105 | "routing": {
106 | "domainStrategy": "AsIs",
107 | "rules": [
108 | {
109 | "type": "field",
110 | "inboundTag": [
111 | "api"
112 | ],
113 | "outboundTag": "api",
114 | "enabled": true
115 | },
116 | {
117 | "id": "4903912855803990739",
118 | "type": "field",
119 | "outboundTag": "direct",
120 | "domain": [
121 | "domain:example-example.com",
122 | "domain:example-example2.com"
123 | ],
124 | "enabled": true
125 | },
126 | {
127 | "id": "5708028511442260423",
128 | "type": "field",
129 | "outboundTag": "block",
130 | "domain": [
131 | "geosite:category-ads-all"
132 | ],
133 | "enabled": true
134 | },
135 | {
136 | "id": "5285280340381945458",
137 | "type": "field",
138 | "outboundTag": "direct",
139 | "domain": [
140 | "geosite:cn"
141 | ],
142 | "enabled": true
143 | },
144 | {
145 | "id": "5063426339087196734",
146 | "type": "field",
147 | "outboundTag": "direct",
148 | "ip": [
149 | "geoip:private",
150 | "geoip:cn"
151 | ],
152 | "enabled": true
153 | },
154 | {
155 | "id": "4919950405029472934",
156 | "type": "field",
157 | "port": "0-65535",
158 | "outboundTag": "proxy",
159 | "enabled": true
160 | }
161 | ]
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/ChromeGo/xray/ip_3.json:
--------------------------------------------------------------------------------
1 | {
2 | "log": {
3 | "access": "",
4 | "error": "",
5 | "loglevel": "warning"
6 | },
7 | "inbounds": [
8 | {
9 | "tag": "socks",
10 | "port": 1080,
11 | "listen": "127.0.0.1",
12 | "protocol": "socks",
13 | "sniffing": {
14 | "enabled": true,
15 | "destOverride": [
16 | "http",
17 | "tls"
18 | ],
19 | "routeOnly": false
20 | },
21 | "settings": {
22 | "auth": "noauth",
23 | "udp": true,
24 | "allowTransparent": false
25 | }
26 | },
27 | {
28 | "tag": "http",
29 | "port": 1081,
30 | "listen": "127.0.0.1",
31 | "protocol": "http",
32 | "sniffing": {
33 | "enabled": true,
34 | "destOverride": [
35 | "http",
36 | "tls"
37 | ],
38 | "routeOnly": false
39 | },
40 | "settings": {
41 | "auth": "noauth",
42 | "udp": true,
43 | "allowTransparent": false
44 | }
45 | }
46 | ],
47 | "outbounds": [
48 | {
49 | "tag": "proxy",
50 | "protocol": "shadowsocks",
51 | "settings": {
52 | "servers": [
53 | {
54 | "address": "www3.dtku49.xyz",
55 | "method": "2022-blake3-chacha20-poly1305",
56 | "ota": false,
57 | "password": "x3jy8UXDQj6OPEL/MLXqqtPqmidNFNbHzXo91Wd8tiw=",
58 | "port": 10088,
59 | "level": 1
60 | }
61 | ]
62 | },
63 | "streamSettings": {
64 | "network": "tcp"
65 | },
66 | "mux": {
67 | "enabled": false,
68 | "concurrency": -1
69 | }
70 | },
71 | {
72 | "tag": "direct",
73 | "protocol": "freedom",
74 | "settings": {}
75 | },
76 | {
77 | "tag": "block",
78 | "protocol": "blackhole",
79 | "settings": {
80 | "response": {
81 | "type": "http"
82 | }
83 | }
84 | }
85 | ],
86 | "routing": {
87 | "domainStrategy": "AsIs",
88 | "rules": [
89 | {
90 | "type": "field",
91 | "inboundTag": [
92 | "api"
93 | ],
94 | "outboundTag": "api",
95 | "enabled": true
96 | },
97 | {
98 | "id": "4903912855803990739",
99 | "type": "field",
100 | "outboundTag": "direct",
101 | "domain": [
102 | "domain:example-example.com",
103 | "domain:example-example2.com"
104 | ],
105 | "enabled": true
106 | },
107 | {
108 | "id": "5708028511442260423",
109 | "type": "field",
110 | "outboundTag": "block",
111 | "domain": [
112 | "geosite:category-ads-all"
113 | ],
114 | "enabled": true
115 | },
116 | {
117 | "id": "5285280340381945458",
118 | "type": "field",
119 | "outboundTag": "direct",
120 | "domain": [
121 | "geosite:cn"
122 | ],
123 | "enabled": true
124 | },
125 | {
126 | "id": "5063426339087196734",
127 | "type": "field",
128 | "outboundTag": "direct",
129 | "ip": [
130 | "geoip:private",
131 | "geoip:cn"
132 | ],
133 | "enabled": true
134 | },
135 | {
136 | "id": "4919950405029472934",
137 | "type": "field",
138 | "port": "0-65535",
139 | "outboundTag": "proxy",
140 | "enabled": true
141 | }
142 | ]
143 | }
144 | }
145 |
--------------------------------------------------------------------------------
/ChromeGo_Merge/GeoLite2-City.mmdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lgf4591/cloudflare-pages-vpn/4851cf46af74d2b749657e610c93366f00c7de09/ChromeGo_Merge/GeoLite2-City.mmdb
--------------------------------------------------------------------------------
/ChromeGo_Merge/LICENSE:
--------------------------------------------------------------------------------
1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
2 | Version 2, December 2004
3 |
4 | Copyright (C) 2004 Sam Hocevar
5 |
6 | Everyone is permitted to copy and distribute verbatim or modified
7 | copies of this license document, and changing it is allowed as long
8 | as the name is changed.
9 |
10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
12 |
13 | 0. You just DO WHAT THE FUCK YOU WANT TO.
14 |
--------------------------------------------------------------------------------
/ChromeGo_Merge/ReadMe.md:
--------------------------------------------------------------------------------
1 | ## 简介
2 |
3 | 油管:[绵阿羊](https://www.youtube.com/channel/UC9xYHJIRj7oXTPYYrTv2U2A)
4 |
5 | ## 注意事项
6 |
7 | 套上warp可绕过chromego封锁的网站(P,X)
8 |
9 | 开启浏览器自带doh以及客户端tun模式也可绕过封锁,参考:[开启chrome自带doh](https://blog.mareep.net/posts/9993/)
10 |
11 | ## 如何修改为自己的warp节点
12 |
13 |
14 | 点击展开/折叠
15 |
16 | 可以用warp+机器人和提取wg节点替换掉配置文件中的wg信息
17 |
18 | [warp提取wireguard网站](https://replit.com/@misaka-blog/wgcf-profile-generator)
19 |
20 | [warp+机器人](https://t.me/generatewarpplusbot)
21 |
22 | 然后本地创建一个yaml文件,参考:[issues #20](https://github.com/vveg26/chromego_merge/issues/20)
23 |
24 |
25 |
26 | ## 订阅链接分享
27 | ### 不套warp版本(clashmeta)
28 |
29 | ```
30 | https://mareep.netlify.app/sub/merged_proxies_new.yaml
31 | ```
32 | ### 套warp版本(clashmeta)
33 |
34 | ```
35 | https://mareep.netlify.app/sub/merged_warp_proxies_new.yaml
36 | ```
37 |
38 | ### 通用base64链接 (shadowrocket和nekoray系列)
39 | ```
40 | https://mareep.netlify.app/sub/shadowrocket_base64.txt
41 | ```
42 |
43 | ### sing-box订阅链接(1.8.0以上)
44 |
45 | ```
46 | https://mareep.netlify.app/sub/sb.json
47 | ```
48 |
49 |
50 | ## 客户端推荐
51 | ### Windows
52 | - [clash verge](https://github.com/zzzgydi/clash-verge/releases)
53 | - [nekoray](https://github.com/MatsuriDayo/nekoray)
54 | ### android
55 | - [nekobox](https://github.com/MatsuriDayo/NekoBoxForAndroid)
56 | - [clashmeta for android](https://github.com/MetaCubeX/ClashMetaForAndroid/releases)
57 |
58 | ### ios
59 | - shadowrocket
60 |
61 | ### macos
62 | - [clashx.meta](https://github.com/MetaCubeX/ClashX.Meta/releases)
63 | - [clash verge](https://github.com/zzzgydi/clash-verge/releases)
64 | - shadowrocket
65 |
66 | ## 致谢
67 | - [Alvin9999](https://github.com/Alvin9999/pac2/tree/master)
68 | - [sing-box-subscribe](https://github.com/Toperlock/sing-box-subscribe)
69 |
70 | 区域设置代码截取自:
71 | - [chromegopacs](https://github.com/markbang/chromegopacs)
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/ChromeGo_Merge/merge.py:
--------------------------------------------------------------------------------
1 | import base64
2 | import json
3 | import urllib.request
4 | import yaml
5 | import codecs
6 | import logging
7 | import geoip2.database
8 | import socket
9 | import re
10 |
11 | # 提取节点
12 | def process_urls(url_file, processor):
13 | try:
14 | with open(url_file, 'r') as file:
15 | urls = file.read().splitlines()
16 |
17 | for index, url in enumerate(urls):
18 | try:
19 | response = urllib.request.urlopen(url)
20 | data = response.read().decode('utf-8')
21 | processor(data, index)
22 | except Exception as e:
23 | logging.error(f"Error processing URL {url}: {e}")
24 | except Exception as e:
25 | logging.error(f"Error reading file {url_file}: {e}")
26 | def get_physical_location(address):
27 | address = re.sub(':.*', '', address) # 用正则表达式去除端口部分
28 | try:
29 | ip_address = socket.gethostbyname(address)
30 | except socket.gaierror:
31 | ip_address = address
32 |
33 | try:
34 | reader = geoip2.database.Reader('GeoLite2-City.mmdb') # 这里的路径需要指向你自己的数据库文件
35 | response = reader.city(ip_address)
36 | country = response.country.name
37 | city = response.city.name
38 | #return f"{country}_{city}"
39 | return f"{country}"
40 | except geoip2.errors.AddressNotFoundError as e:
41 | print(f"Error: {e}")
42 | return "Unknown"
43 | #提取clash节点
44 | def process_clash(data, index):
45 | # 解析YAML格式的内容
46 | content = yaml.safe_load(data)
47 |
48 | # 提取proxies部分并合并到merged_proxies中
49 | proxies = content.get('proxies', [])
50 |
51 | for proxy in proxies:
52 | # 如果类型是vless
53 | if proxy['type'] == 'vless' :
54 | server = proxy.get("server", "")
55 | port = int(proxy.get("port", 443))
56 | udp = proxy.get("udp", "")
57 | uuid = proxy.get("uuid", "")
58 | network = proxy.get("network", "")
59 | tls = int(proxy.get("tls", 0))
60 | xudp = proxy.get("xudp", "")
61 | sni = proxy.get("servername", "")
62 | flow = proxy.get("flow", "")
63 | publicKey = proxy.get('reality-opts', {}).get('public-key', '')
64 | short_id = proxy.get('reality-opts', {}).get('short-id', '')
65 | fp = proxy.get("client-fingerprint", "")
66 | insecure = int(proxy.get("skip-cert-verify", 0))
67 | grpc_serviceName = proxy.get('grpc-opts', {}).get('grpc-service-name', '')
68 |
69 | ws_path = proxy.get('ws-opts', {}).get('path', '')
70 | ws_headers_host = proxy.get('ws-opts', {}).get('headers', {}).get('Host', '')
71 | if tls == 0:
72 | security = 'none'
73 | elif tls == 1 and publicKey != '':
74 | security = 'reality'
75 | else:
76 | security = 'tls'
77 | location = get_physical_location(server)
78 | name = f"{location}_vless_{index}"
79 | vless_meta = f"vless://{uuid}@{server}:{port}?security={security}&allowInsecure{insecure}&flow={flow}&type={network}&fp={fp}&pbk={publicKey}&sid={short_id}&sni={sni}&serviceName={grpc_serviceName}&path={ws_path}&host={ws_headers_host}#{name}"
80 |
81 | merged_proxies.append(vless_meta)
82 |
83 | if proxy['type'] == 'vmess' :
84 | server = proxy.get("server", "")
85 | port = int(proxy.get("port", 443))
86 | uuid = proxy.get("uuid", "")
87 | #cipher = proxy.get("cipher", "")
88 | alterId = proxy.get("alterId", "")
89 | network = proxy.get("network", "")
90 | tls = int(proxy.get("tls", 0))
91 | if tls == 0:
92 | security = "none"
93 | elif tls == 1:
94 | security = "tls"
95 | sni = proxy.get("servername", "")
96 | ws_path = proxy.get('ws-opts', {}).get('path', '')
97 | ws_headers_host = proxy.get('ws-opts', {}).get('headers', {}).get('Host', '')
98 | location = get_physical_location(server)
99 | name = f"{location}_vmess_{index}"
100 | vmess_meta = f"vmess://{uuid}@{server}:{port}?security={security}&allowInsecure{insecure}&type={network}&fp={fp}&sni={sni}&path={ws_path}&host={ws_headers_host}#{name}"
101 |
102 | merged_proxies.append(vmess_meta)
103 |
104 | elif proxy['type'] == 'tuic':
105 | server = proxy.get("server", "")
106 | port = int(proxy.get("port", 443))
107 | uuid = proxy.get("uuid", "")
108 | password = proxy.get("password", "")
109 | sni = proxy.get("sni", "")
110 | insecure = int(proxy.get("skip-cert-verify", 0))
111 | udp_relay_mode = proxy.get("udp-relay-mode", "naive")
112 | congestion = proxy.get("congestion-controller", "bbr")
113 | alpn = proxy.get("alpn", [])[0] if proxy.get("alpn") and len(proxy["alpn"]) > 0 else None
114 | location = get_physical_location(server)
115 | name = f"{location}_tuic_{index}"
116 | #tuic_meta_neko = f"tuic://{server}:{port}?uuid={uuid}&version=5&password={password}&insecure={insecure}&alpn={alpn}&mode={udp_relay_mode}"
117 | tuic_meta = f"tuic://{uuid}:{password}@{server}:{port}?sni={sni}&congestion_control={congestion}&udp_relay_mode={udp_relay_mode}&alpn={alpn}&allow_insecure={insecure}#{name}"
118 | merged_proxies.append(tuic_meta)
119 |
120 | elif proxy['type'] == "hysteria2":
121 | server = proxy.get("server", "")
122 | port = int(proxy.get("port", 443))
123 | auth = proxy.get("password", "")
124 | obfs = proxy.get("obfs", "")
125 | obfs_password = proxy.get("obfs-password","")
126 | sni = proxy.get("sni", "")
127 | insecure = int(proxy.get("skip-cert-verify", 0))
128 | location = get_physical_location(server)
129 | name = f"{location}_hy2_{index}"
130 | hy2_meta = f"hysteria2://{auth}@{server}:{port}?insecure={insecure}&sni={sni}&obfs={obfs}&obfs-password={obfs_password}#{name}"
131 | merged_proxies.append(hy2_meta)
132 |
133 | elif proxy['type'] == 'hysteria':
134 | server = proxy.get("server", "")
135 | port = int(proxy.get("port", 443))
136 | ports = proxy.get("port", "")
137 | protocol = proxy.get("protocol", "udp")
138 | up_mbps = 50
139 | down_mbps = 80
140 | alpn = proxy.get("alpn", [])[0] if proxy.get("alpn") and len(proxy["alpn"]) > 0 else None
141 | obfs = proxy.get("obfs", "")
142 | insecure = int(proxy.get("skip-cert-verify", 0))
143 | sni = proxy.get("sni", "")
144 | fast_open = int(proxy.get("fast_open", 1))
145 | auth = proxy.get("auth-str", "")
146 | # 生成URL
147 | location = get_physical_location(server)
148 | name = f"{location}_hy_{index}"
149 | hysteria_meta = f"hysteria://{server}:{port}?peer={sni}&auth={auth}&insecure={insecure}&upmbps={up_mbps}&downmbps={down_mbps}&alpn={alpn}&mport={ports}&obfs={obfs}&protocol={protocol}&fastopen={fast_open}#{name}"
150 | merged_proxies.append(hysteria_meta)
151 |
152 | elif proxy['type'] == 'ssr':
153 | server = proxy.get("server", "")
154 | port = int(proxy.get("port", 443))
155 | password = proxy.get("password", "")
156 | password = base64.b64encode(password.encode()).decode()
157 | cipher = proxy.get("cipher", "")
158 | obfs = proxy.get("obfs", "")
159 | protocol = proxy.get("protocol", "")
160 | protocol_param = proxy.get("protocol-param", "")
161 | protocol_param = base64.b64encode(protocol_param.encode()).decode()
162 | obfs_param = proxy.get("obfs-param", "")
163 | obfs_param = base64.b64encode(obfs_param.encode()).decode()
164 | # 生成URL
165 | ssr_source=f"{server}:{port}:{protocol}:{cipher}:{obfs}:{password}/?obfsparam={obfs_param}&protoparam={protocol_param}&remarks=ssr_meta_{index}&protoparam{protocol_param}=&obfsparam={obfs_param}"
166 | ssr_source=base64.b64encode(ssr_source.encode()).decode()
167 | ssr_meta = f"ssr://{ssr_source}"
168 | merged_proxies.append(ssr_meta)
169 | #目前仅支持最原始版本ss,无插件支持
170 | elif proxy['type'] == 'sstest':
171 | server = proxy.get("server", "")
172 | port = int(proxy.get("port", 443))
173 | password = proxy.get("password", "")
174 | cipher = proxy.get("cipher", "")
175 | # 生成URL
176 | ss_source=f"{cipher}:{password}@{server}:{port}"
177 |
178 | ss_source=base64.b64encode(ss_source.encode()).decode()
179 | ss_meta = f"ss://{ss_source}"
180 | merged_proxies.append(ss_meta)
181 | def process_naive(data, index):
182 | try:
183 | json_data = json.loads(data)
184 |
185 | proxy_str = json_data["proxy"]
186 | #proxy_str = proxy_str.replace("https://", "")
187 | naiveproxy = base64.b64encode(proxy_str.encode()).decode()
188 | merged_proxies.append(naiveproxy)
189 |
190 |
191 | except Exception as e:
192 | logging.error(f"Error processing naive data for index {index}: {e}")
193 | #处理sing-box节点,待办
194 | def process_sb(data, index):
195 | try:
196 | json_data = json.loads(data)
197 | # 处理 shadowtls 数据
198 | server = json_data["outbounds"][1].get("server", "")
199 | server_port = json_data["outbounds"][1].get("server_port", "")
200 | method = json_data["outbounds"][0].get("method", "")
201 | password = json_data["outbounds"][0].get("password", "")
202 | version = int(json_data["outbounds"][1].get("version", 0))
203 | host = json_data["outbounds"][1]["tls"].get("server_name", "")
204 | shadowtls_password = json_data["outbounds"][1].get("password", "")
205 |
206 | ss = f"{method}:{password}@{server}:{server_port}"
207 | shadowtls = f'{{"version": "{version}", "host": "{host}","password":{shadowtls_password}}}'
208 | shadowtls_proxy = "ss://"+base64.b64encode(ss.encode()).decode()+"?shadow-tls="+base64.b64encode(shadowtls.encode()).decode()+f"#shadowtls{index}"
209 |
210 | merged_proxies.append(shadowtls_proxy)
211 |
212 | except Exception as e:
213 | logging.error(f"Error processing shadowtls data for index {index}: {e}")
214 | #hysteria
215 | def process_hysteria(data, index):
216 | try:
217 | json_data = json.loads(data)
218 | # 处理 hysteria 数据
219 | # 提取字段值
220 | server = json_data.get("server", "")
221 | protocol = json_data.get("protocol", "")
222 | up_mbps = json_data.get("up_mbps", "")
223 | down_mbps = json_data.get("down_mbps", "")
224 | alpn = json_data.get("alpn", "")
225 | obfs = json_data.get("obfs", "")
226 | insecure = int(json_data.get("insecure", 0))
227 | server_name = json_data.get("server_name", "")
228 | fast_open = int(json_data.get("fast_open", 0))
229 | auth = json_data.get("auth_str", "")
230 | # 生成URL
231 | location = get_physical_location(server)
232 | name = f"{location}_hysteria_{index}"
233 | hysteria = f"hysteria://{server}?peer={server_name}&auth={auth}&insecure={insecure}&upmbps={up_mbps}&downmbps={down_mbps}&alpn={alpn}&obfs={obfs}&protocol={protocol}&fastopen={fast_open}#{name}"
234 | merged_proxies.append(hysteria)
235 |
236 |
237 | except Exception as e:
238 | logging.error(f"Error processing hysteria data for index {index}: {e}")
239 | # 处理hysteria2
240 | def process_hysteria2(data, index):
241 | try:
242 | json_data = json.loads(data)
243 | # 处理 hysteria2 数据
244 | # 提取字段值
245 | server = json_data["server"]
246 | insecure = int(json_data["tls"]["insecure"])
247 | sni = json_data["tls"]["sni"]
248 | auth = json_data["auth"]
249 | # 生成URL
250 | location = get_physical_location(server)
251 | name = f"{location}_hysteria2_{index}"
252 | hysteria2 = f"hysteria2://{auth}@{server}?insecure={insecure}&sni={sni}#{name}"
253 |
254 | merged_proxies.append(hysteria2)
255 | except Exception as e:
256 | logging.error(f"Error processing hysteria2 data for index {index}: {e}")
257 |
258 | #处理xray
259 | def process_xray(data, index):
260 | try:
261 | json_data = json.loads(data)
262 | # 处理 xray 数据
263 | protocol = json_data["outbounds"][0].get("protocol")
264 |
265 | if protocol == "vless":
266 | vnext = json_data["outbounds"][0]["settings"]["vnext"]
267 |
268 | if vnext:
269 | server = vnext[0].get("address", "")
270 | port = vnext[0].get("port", "")
271 | users = vnext[0]["users"]
272 |
273 | if users:
274 | user = users[0]
275 | uuid = user.get("id", "")
276 | flow = user.get("flow", "")
277 |
278 | stream_settings = json_data["outbounds"][0].get("streamSettings", {})
279 | network = stream_settings.get("network", "")
280 | security = stream_settings.get("security", "")
281 | reality_settings = stream_settings.get("realitySettings", {})
282 |
283 | publicKey = reality_settings.get("publicKey", "")
284 | short_id = reality_settings.get("shortId", "")
285 | sni = reality_settings.get("serverName", "")
286 | #tls
287 | tls_settings = stream_settings.get("tlsSettings", {})
288 | sni = tls_settings.get("serverName", sni)
289 | insecure = int(tls_settings.get("allowInsecure", 0))
290 |
291 | fp = reality_settings.get("fingerprint", "")
292 | fp = tls_settings.get("fingerprint", fp)
293 | spx = reality_settings.get("spiderX", "")
294 |
295 | grpc_settings = stream_settings.get("grpcSettings", {})
296 | grpc_serviceName = grpc_settings.get("serviceName", "")
297 |
298 | ws_settings = stream_settings.get("wsSettings", {})
299 | ws_path = ws_settings.get("path", "")
300 | ws_headers_host = ws_settings.get("headers", {}).get("Host", "")
301 | location = get_physical_location(server)
302 | name = f"{location}_vless_{index}"
303 | xray_proxy = f"vless://{uuid}@{server}:{port}?security={security}&allowInsecure={insecure}&flow={flow}&type={network}&fp={fp}&pbk={publicKey}&sid={short_id}&sni={sni}&serviceName={grpc_serviceName}&path={ws_path}&host={ws_headers_host}#{name}"
304 |
305 | # 将当前proxy字典添加到所有proxies列表中
306 | merged_proxies.append(xray_proxy)
307 | # 不支持插件
308 | if protocol == "shadowsocks":
309 | server = json_data["outbounds"][0]["settings"]["servers"]["address"]
310 | method = json_data["outbounds"][0]["settings"]["servers"]["method"]
311 | password = json_data["outbounds"][0]["settings"]["servers"]["password"]
312 | port = json_data["outbounds"][0]["settings"]["servers"]["port"]
313 | # 生成URL
314 | ss_source=f"{method}:{password}@{server}:{port}"
315 | ss_source=base64.b64encode(ss_source.encode()).decode()
316 | xray_proxy = f"ss://{ss_source}"
317 |
318 | # 将当前proxy字典添加到所有proxies列表中
319 | merged_proxies.append(xray_proxy)
320 | except Exception as e:
321 | logging.error(f"Error processing xray data for index {index}: {e}")
322 |
323 | # 定义一个空列表用于存储合并后的代理配置
324 | merged_proxies = []
325 |
326 | # 处理 clash URLs
327 | process_urls('./urls/clash_urls.txt', process_clash)
328 |
329 | # 处理 shadowtls URLs
330 | #process_urls('./urls/sb_urls.txt', process_sb)
331 |
332 | # 处理 naive URLs
333 | process_urls('./urls/naiverproxy_urls.txt', process_naive)
334 |
335 | # 处理 hysteria URLs
336 | process_urls('./urls/hysteria_urls.txt', process_hysteria)
337 |
338 | # 处理 hysteria2 URLs
339 | process_urls('./urls/hysteria2_urls.txt', process_hysteria2)
340 |
341 | # 处理 xray URLs
342 | process_urls('./urls/xray_urls.txt', process_xray)
343 |
344 | # 将结果写入文件
345 | merged_content = "\n".join(merged_proxies)
346 |
347 | try:
348 | encoded_content = base64.b64encode(merged_content.encode("utf-8")).decode("utf-8")
349 |
350 | with open("./sub/shadowrocket_base64.txt", "w") as encoded_file:
351 | encoded_file.write(encoded_content)
352 |
353 | print("Content successfully encoded and written to shadowrocket_base64.txt.")
354 | except Exception as e:
355 | print(f"Error encoding and writing to file: {e}")
356 |
357 |
--------------------------------------------------------------------------------
/ChromeGo_Merge/meta_merge.py:
--------------------------------------------------------------------------------
1 | import yaml
2 | import json
3 | import urllib.request
4 | import logging
5 | import geoip2.database
6 | import socket
7 | import re
8 | # 提取节点
9 | def process_urls(url_file, processor):
10 | try:
11 | with open(url_file, 'r') as file:
12 | urls = file.read().splitlines()
13 |
14 | for index, url in enumerate(urls):
15 | try:
16 | response = urllib.request.urlopen(url)
17 | data = response.read().decode('utf-8')
18 | processor(data, index)
19 | except Exception as e:
20 | logging.error(f"Error processing URL {url}: {e}")
21 | except Exception as e:
22 | logging.error(f"Error reading file {url_file}: {e}")
23 | #提取clash节点
24 | def process_clash(data, index):
25 | content = yaml.safe_load(data)
26 | proxies = content.get('proxies', [])
27 | for i, proxy in enumerate(proxies):
28 | location = get_physical_location(proxy['server'])
29 | proxy['name'] = f"{location}_{proxy['type']}_{index}{i+1}"
30 | merged_proxies.extend(proxies)
31 |
32 | def get_physical_location(address):
33 | address = re.sub(':.*', '', address) # 用正则表达式去除端口部分
34 | try:
35 | ip_address = socket.gethostbyname(address)
36 | except socket.gaierror:
37 | ip_address = address
38 |
39 | try:
40 | reader = geoip2.database.Reader('GeoLite2-City.mmdb') # 这里的路径需要指向你自己的数据库文件
41 | response = reader.city(ip_address)
42 | country = response.country.name
43 | city = response.city.name
44 | #return f"{country}_{city}"
45 | return f"油管绵阿羊_{country}"
46 | except geoip2.errors.AddressNotFoundError as e:
47 | print(f"Error: {e}")
48 | return "Unknown"
49 |
50 | # 处理sb,待办
51 | def process_sb(data, index):
52 | try:
53 | json_data = json.loads(data)
54 | # 处理 shadowtls 数据
55 |
56 | # 提取所需字段
57 | method = json_data["outbounds"][0]["method"]
58 | password = json_data["outbounds"][0]["password"]
59 | server = json_data["outbounds"][1]["server"]
60 | server_port = json_data["outbounds"][1]["server_port"]
61 | server_name = json_data["outbounds"][1]["tls"]["server_name"]
62 | shadowtls_password = json_data["outbounds"][1]["password"]
63 | version = json_data["outbounds"][1]["version"]
64 | location = get_physical_location(server)
65 | name = f"{location}_shadowtls_{index}"
66 | # 创建当前网址的proxy字典
67 | proxy = {
68 | "name": name,
69 | "type": "ss",
70 | "server": server,
71 | "port": server_port,
72 | "cipher": method,
73 | "password": password,
74 | "plugin": "shadow-tls",
75 | "client-fingerprint": "chrome",
76 | "plugin-opts": {
77 | "host": server_name,
78 | "password": shadowtls_password,
79 | "version": int(version)
80 | }
81 | }
82 |
83 | # 将当前proxy字典添加到所有proxies列表中
84 | merged_proxies.append(proxy)
85 |
86 | except Exception as e:
87 | logging.error(f"Error processing shadowtls data for index {index}: {e}")
88 |
89 | def process_hysteria(data, index):
90 | try:
91 | json_data = json.loads(data)
92 | # 处理 hysteria 数据
93 | # 提取所需字段
94 | auth = json_data["auth_str"]
95 | server_ports = json_data["server"]
96 | server_ports_slt = server_ports.split(":")
97 | server = server_ports_slt[0]
98 | ports = server_ports_slt[1]
99 | ports_slt = ports.split(",")
100 | server_port = int(ports_slt[0])
101 | if len(ports_slt) > 1:
102 | mport = ports_slt[1]
103 | else:
104 | mport = server_port
105 | #fast_open = json_data["fast_open"]
106 | fast_open = True
107 | insecure = json_data["insecure"]
108 | server_name = json_data["server_name"]
109 | alpn = json_data["alpn"]
110 | protocol = json_data["protocol"]
111 | location = get_physical_location(server)
112 | name = f"{location}_hy_{index}"
113 |
114 | # 创建当前网址的proxy字典
115 | proxy = {
116 | "name": name,
117 | "type": "hysteria",
118 | "server": server,
119 | "port": server_port,
120 | "ports": mport,
121 | "auth_str": auth,
122 | "up": 80,
123 | "down": 100,
124 | "fast-open": fast_open,
125 | "protocol": protocol,
126 | "sni": server_name,
127 | "skip-cert-verify": insecure,
128 | "alpn": [alpn]
129 | }
130 |
131 | # 将当前proxy字典添加到所有proxies列表中
132 | merged_proxies.append(proxy)
133 |
134 | except Exception as e:
135 | logging.error(f"Error processing hysteria data for index {index}: {e}")
136 | # 处理hysteria2
137 | def process_hysteria2(data, index):
138 | try:
139 | json_data = json.loads(data)
140 | # 处理 hysteria2 数据
141 | # 提取所需字段
142 | auth = json_data["auth"]
143 | server_ports = json_data["server"]
144 | server_ports_slt = server_ports.split(":")
145 | server = server_ports_slt[0]
146 | ports = server_ports_slt[1]
147 | ports_slt = ports.split(",")
148 | server_port = int(ports_slt[0])
149 | #fast_open = json_data["fastOpen"]
150 | fast_open = True
151 | insecure = json_data["tls"]["insecure"]
152 | sni = json_data["tls"]["sni"]
153 | location = get_physical_location(server)
154 | name = f"{location}_hy2_{index}"
155 |
156 | # 创建当前网址的proxy字典
157 | proxy = {
158 | "name": name,
159 | "type": "hysteria2",
160 | "server": server,
161 | "port": server_port,
162 | "password": auth,
163 | "fast-open": fast_open,
164 | "sni": sni,
165 | "skip-cert-verify": insecure
166 | }
167 |
168 | # 将当前proxy字典添加到所有proxies列表中
169 | merged_proxies.append(proxy)
170 |
171 | except Exception as e:
172 | logging.error(f"Error processing hysteria2 data for index {index}: {e}")
173 |
174 | #处理xray
175 | def process_xray(data, index):
176 | try:
177 | json_data = json.loads(data)
178 | # 处理 xray 数据
179 | protocol = json_data["outbounds"][0]["protocol"]
180 | #vless操作
181 | if protocol == "vless":
182 | # 提取所需字段
183 | server = json_data["outbounds"][0]["settings"]["vnext"][0]["address"]
184 | port = json_data["outbounds"][0]["settings"]["vnext"][0]["port"]
185 | uuid = json_data["outbounds"][0]["settings"]["vnext"][0]["users"][0]["id"]
186 | istls = True
187 | flow = json_data["outbounds"][0]["settings"]["vnext"][0]["users"][0]["flow"]
188 | # 传输方式
189 | network = json_data["outbounds"][0]["streamSettings"]["network"]
190 | publicKey = json_data["outbounds"][0]["streamSettings"]["realitySettings"]["publicKey"]
191 | shortId = json_data["outbounds"][0]["streamSettings"]["realitySettings"]["shortId"]
192 | serverName = json_data["outbounds"][0]["streamSettings"]["realitySettings"]["serverName"]
193 | fingerprint = json_data["outbounds"][0]["streamSettings"]["realitySettings"]["fingerprint"]
194 | # udp转发
195 | isudp = True
196 | location = get_physical_location(server)
197 | name = f"{location}_reality_{index}"
198 |
199 | # 根据network判断tcp
200 | if network == "tcp":
201 | proxy = {
202 | "name": name,
203 | "type": protocol,
204 | "server": server,
205 | "port": port,
206 | "uuid": uuid,
207 | "network": network,
208 | "tls": istls,
209 | "udp": isudp,
210 | "flow": flow,
211 | "client-fingerprint": fingerprint,
212 | "servername": serverName,
213 | "reality-opts":{
214 | "public-key": publicKey,
215 | "short-id": shortId}
216 | }
217 |
218 | # 根据network判断grpc
219 | elif network == "grpc":
220 | serviceName = json_data["outbounds"][0]["streamSettings"]["grpcSettings"]["serviceName"]
221 |
222 | # 创建当前网址的proxy字典
223 | proxy = {
224 | "name": name,
225 | "type": protocol,
226 | "server": server,
227 | "port": port,
228 | "uuid": uuid,
229 | "network": network,
230 | "tls": istls,
231 | "udp": isudp,
232 | "flow": flow,
233 | "client-fingerprint": fingerprint,
234 | "servername": serverName,
235 | "grpc-opts":{
236 | "grpc-service-name": serviceName
237 | },
238 | "reality-opts":{
239 | "public-key": publicKey,
240 | "short-id": shortId}
241 | }
242 |
243 | # 将当前proxy字典添加到所有proxies列表中
244 | merged_proxies.append(proxy)
245 | except Exception as e:
246 | logging.error(f"Error processing xray data for index {index}: {e}")
247 |
248 | def update_proxy_groups(config_data, merged_proxies):
249 | for group in config_data['proxy-groups']:
250 | if group['name'] in ['自动选择', '节点选择']:
251 | if 'proxies' not in group or not group['proxies']:
252 | group['proxies'] = [proxy['name'] for proxy in merged_proxies]
253 | else:
254 | group['proxies'].extend(proxy['name'] for proxy in merged_proxies)
255 |
256 | def update_warp_proxy_groups(config_warp_data, merged_proxies):
257 | for group in config_warp_data['proxy-groups']:
258 | if group['name'] in ['自动选择', '手动选择', '负载均衡']:
259 | if 'proxies' not in group or not group['proxies']:
260 | group['proxies'] = [proxy['name'] for proxy in merged_proxies]
261 | else:
262 | group['proxies'].extend(proxy['name'] for proxy in merged_proxies)
263 |
264 | # 包含hysteria2
265 | merged_proxies = []
266 |
267 | # 处理 clash URLs
268 | process_urls('./urls/clash_urls.txt', process_clash)
269 |
270 | # 处理 shadowtls URLs
271 | #process_urls('./urls/sb_urls.txt', process_sb)
272 |
273 | # 处理 hysteria URLs
274 | process_urls('./urls/hysteria_urls.txt', process_hysteria)
275 |
276 | # 处理 hysteria2 URLs
277 | process_urls('./urls/hysteria2_urls.txt', process_hysteria2)
278 |
279 | # 处理 xray URLs
280 | process_urls('./urls/xray_urls.txt', process_xray)
281 |
282 | # 读取普通的配置文件内容
283 | with open('./templates/clash_template.yaml', 'r', encoding='utf-8') as file:
284 | config_data = yaml.safe_load(file)
285 |
286 | # 读取warp配置文件内容
287 | with open('./templates/clash_warp_template.yaml', 'r', encoding='utf-8') as file:
288 | config_warp_data = yaml.safe_load(file)
289 |
290 | # 添加合并后的代理到proxies部分
291 | if 'proxies' not in config_data or not config_data['proxies']:
292 | config_data['proxies'] = merged_proxies
293 | else:
294 | config_data['proxies'].extend(merged_proxies)
295 |
296 | if 'proxies' not in config_warp_data or not config_warp_data['proxies']:
297 | config_warp_data['proxies'] = merged_proxies
298 | else:
299 | config_warp_data['proxies'].extend(merged_proxies)
300 |
301 |
302 | # 更新自动选择和节点选择的proxies的name部分
303 | update_proxy_groups(config_data, merged_proxies)
304 | update_warp_proxy_groups(config_warp_data, merged_proxies)
305 |
306 | # 将更新后的数据写入到一个YAML文件中,并指定编码格式为UTF-8
307 | with open('./sub/merged_proxies_new.yaml', 'w', encoding='utf-8') as file:
308 | yaml.dump(config_data, file, sort_keys=False, allow_unicode=True)
309 |
310 | with open('./sub/merged_warp_proxies_new.yaml', 'w', encoding='utf-8') as file:
311 | yaml.dump(config_warp_data, file, sort_keys=False, allow_unicode=True)
312 |
313 | print("聚合完成")
314 |
315 |
316 |
--------------------------------------------------------------------------------
/ChromeGo_Merge/requirements.txt:
--------------------------------------------------------------------------------
1 | PyYAML==6.0.1
2 | geoip2
--------------------------------------------------------------------------------
/ChromeGo_Merge/sb.py:
--------------------------------------------------------------------------------
1 | import requests
2 | import os
3 |
4 | url = "https://sing-box-subscribe.vercel.app/config/https:/mareep.netlify.app/sub/shadowrocket_base64.txt"
5 | output_folder = "sub"
6 | output_filename = "sb.json"
7 |
8 | # 发送HTTP请求
9 | response = requests.get(url)
10 |
11 | # 检查请求是否成功
12 | if response.status_code == 200:
13 | # 创建输出
14 | # 确保输出文件夹存在
15 | if not os.path.exists(output_folder):
16 | os.makedirs(output_folder)
17 |
18 | # 构建输出文件路径
19 | output_path = os.path.join(output_folder, output_filename)
20 |
21 | # 将响应内容写入文件,使用utf-8编码
22 | with open(output_path, 'w', encoding='utf-8') as file:
23 | file.write(response.text)
24 |
25 | print(f"成功将内容写入 {output_path}")
26 | else:
27 | print(f"HTTP请求失败,状态码: {response.status_code}")
28 |
--------------------------------------------------------------------------------
/ChromeGo_Merge/sub/shadowrocket_base64.txt:
--------------------------------------------------------------------------------
1 | aHlzdGVyaWE6Ly8yMDguODcuMjQzLjE1MToxNzU0OT9wZWVyPXd3dy5iaW5nLmNvbSZhdXRoPSZpbnNlY3VyZT0xJnVwbWJwcz01MCZkb3dubWJwcz04MCZhbHBuPWgzJm1wb3J0PTE3NTQ5Jm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI1VuaXRlZCBTdGF0ZXNfaHlfNgpoeXN0ZXJpYTovLzEwOC4xODEuMjQuNzc6MTE1MTI/cGVlcj1hcHBsZS5jb20mYXV0aD1kb25ndGFpd2FuZy5jb20maW5zZWN1cmU9MSZ1cG1icHM9NTAmZG93bm1icHM9ODAmYWxwbj1oMyZtcG9ydD0xMTUxMiZvYmZzPSZwcm90b2NvbD11ZHAmZmFzdG9wZW49MSNVbml0ZWQgU3RhdGVzX2h5XzcKaHlzdGVyaWE6Ly8xODUuMjIuMTU1LjcxOjEwODAzP3BlZXI9d3d3LmJpbmcuY29tJmF1dGg9Jmluc2VjdXJlPTEmdXBtYnBzPTUwJmRvd25tYnBzPTgwJmFscG49aDMmbXBvcnQ9MTA4MDMmb2Jmcz0mcHJvdG9jb2w9dWRwJmZhc3RvcGVuPTEjUnVzc2lhX2h5XzgKaHlzdGVyaWE6Ly8yMDguODcuMjQzLjE1MToxNzU0OT9wZWVyPXd3dy5iaW5nLmNvbSZhdXRoPSZpbnNlY3VyZT0xJnVwbWJwcz01MCZkb3dubWJwcz04MCZhbHBuPWgzJm1wb3J0PTE3NTQ5Jm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI1VuaXRlZCBTdGF0ZXNfaHlfOQphSFIwY0hNNkx5OWtiMjVuZEdGcGQyRnVaeTVqYjIwNlpHOXVaM1JoYVhkaGJtY3VZMjl0UUc1aGFYWmxNak11WTJaalpHNHpMbmg1ZWpvME5ETT0KYUhSMGNITTZMeTlrYjI1bmRHRnBkMkZ1Wnk1amIyMDZaRzl1WjNSaGFYZGhibWN1WTI5dFFHNWhhWFpsTWpRdVkyWmpaRzR6TG5oNWVqbzBORE09Cmh5c3RlcmlhOi8vMTg1LjIyLjE1NS43MToxMDgwMz9wZWVyPWFwcGxlLmNvbSZhdXRoPWRvbmd0YWl3YW5nLmNvbSZpbnNlY3VyZT0xJnVwbWJwcz0xMSZkb3dubWJwcz01NSZhbHBuPWgzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI1J1c3NpYV9oeXN0ZXJpYV8wCmh5c3RlcmlhOi8vMTg1LjIyLjE1NS43MToxMDgwMz9wZWVyPWFwcGxlLmNvbSZhdXRoPWRvbmd0YWl3YW5nLmNvbSZpbnNlY3VyZT0xJnVwbWJwcz0xMSZkb3dubWJwcz01NSZhbHBuPWgzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI1J1c3NpYV9oeXN0ZXJpYV8xCmh5c3RlcmlhOi8vMTg1LjIyLjE1NS43MToxMDgwMz9wZWVyPWFwcGxlLmNvbSZhdXRoPWRvbmd0YWl3YW5nLmNvbSZpbnNlY3VyZT0xJnVwbWJwcz0xMSZkb3dubWJwcz01NSZhbHBuPWgzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI1J1c3NpYV9oeXN0ZXJpYV8yCmh5c3RlcmlhOi8vMTg1LjIyLjE1NS43MToxMDgwMz9wZWVyPWFwcGxlLmNvbSZhdXRoPWRvbmd0YWl3YW5nLmNvbSZpbnNlY3VyZT0xJnVwbWJwcz0xMSZkb3dubWJwcz01NSZhbHBuPWgzJm9iZnM9JnByb3RvY29sPXVkcCZmYXN0b3Blbj0xI1J1c3NpYV9oeXN0ZXJpYV8zCmh5c3RlcmlhMjovL2Rvbmd0YWl3YW5nLmNvbUA0NS4xMjkuMi4xMDg6MzAwMzM/aW5zZWN1cmU9MSZzbmk9d3d3LmJpbmcuY29tI1J1c3NpYV9oeXN0ZXJpYTJfMApoeXN0ZXJpYTI6Ly9kb25ndGFpd2FuZy5jb21ANDYuMTcuNDEuMjE3OjMwMDMzP2luc2VjdXJlPTEmc25pPXd3dy5iaW5nLmNvbSNSdXNzaWFfaHlzdGVyaWEyXzEKaHlzdGVyaWEyOi8vZG9uZ3RhaXdhbmcuY29tQDQ2LjI5LjE2My4xNzE6MzAwMzM/aW5zZWN1cmU9MSZzbmk9d3d3LmJpbmcuY29tI1J1c3NpYV9oeXN0ZXJpYTJfMgpoeXN0ZXJpYTI6Ly9kb25ndGFpd2FuZy5jb21ANDYuMjkuMTYzLjE3MTozMDAzMz9pbnNlY3VyZT0xJnNuaT13d3cuYmluZy5jb20jUnVzc2lhX2h5c3RlcmlhMl8zCnZsZXNzOi8vZWMzMDJkZTQtNmIzZC00ZjAzLWEyMjgtM2M2ZDMwM2VkMzcwQDEuMTYyLjUxLjEwNjozNzg5OD9zZWN1cml0eT1yZWFsaXR5JmFsbG93SW5zZWN1cmU9MCZmbG93PXh0bHMtcnByeC12aXNpb24mdHlwZT10Y3AmZnA9Y2hyb21lJnBiaz12NnVXSkptVkdGUGQwSzA0MFFLM1BKSENiUGM3NGtYRm9RbUFocHUzMGpRJnNpZD1lMTJkN2ZkYiZzbmk9d3d3LnlhaG9vLmNvbSZzZXJ2aWNlTmFtZT0mcGF0aD0maG9zdD0jVGFpd2FuX3ZsZXNzXzAKdmxlc3M6Ly9lYzMwMmRlNC02YjNkLTRmMDMtYTIyOC0zYzZkMzAzZWQzNzBAMS4xNjIuNTEuMTA2OjM3ODk4P3NlY3VyaXR5PXJlYWxpdHkmYWxsb3dJbnNlY3VyZT0wJmZsb3c9eHRscy1ycHJ4LXZpc2lvbiZ0eXBlPXRjcCZmcD1jaHJvbWUmcGJrPXY2dVdKSm1WR0ZQZDBLMDQwUUszUEpIQ2JQYzc0a1hGb1FtQWhwdTMwalEmc2lkPWUxMmQ3ZmRiJnNuaT13d3cueWFob28uY29tJnNlcnZpY2VOYW1lPSZwYXRoPSZob3N0PSNUYWl3YW5fdmxlc3NfMQp2bGVzczovL2VjMzAyZGU0LTZiM2QtNGYwMy1hMjI4LTNjNmQzMDNlZDM3MEAxLjE2Mi41MS4xMDY6Mzc4OTg/c2VjdXJpdHk9cmVhbGl0eSZhbGxvd0luc2VjdXJlPTAmZmxvdz14dGxzLXJwcngtdmlzaW9uJnR5cGU9dGNwJmZwPWNocm9tZSZwYms9djZ1V0pKbVZHRlBkMEswNDBRSzNQSkhDYlBjNzRrWEZvUW1BaHB1MzBqUSZzaWQ9ZTEyZDdmZGImc25pPXd3dy55YWhvby5jb20mc2VydmljZU5hbWU9JnBhdGg9Jmhvc3Q9I1RhaXdhbl92bGVzc18yCnZsZXNzOi8vZWMzMDJkZTQtNmIzZC00ZjAzLWEyMjgtM2M2ZDMwM2VkMzcwQDEuMTYyLjUxLjEwNjozNzg5OD9zZWN1cml0eT1yZWFsaXR5JmFsbG93SW5zZWN1cmU9MCZmbG93PXh0bHMtcnByeC12aXNpb24mdHlwZT10Y3AmZnA9Y2hyb21lJnBiaz12NnVXSkptVkdGUGQwSzA0MFFLM1BKSENiUGM3NGtYRm9RbUFocHUzMGpRJnNpZD1lMTJkN2ZkYiZzbmk9d3d3LnlhaG9vLmNvbSZzZXJ2aWNlTmFtZT0mcGF0aD0maG9zdD0jVGFpd2FuX3ZsZXNzXzM=
--------------------------------------------------------------------------------
/ChromeGo_Merge/templates/clash_template.yaml:
--------------------------------------------------------------------------------
1 | port: 7890
2 | allow-lan: true
3 | mode: rule
4 | log-level: info
5 | unified-delay: true
6 | global-client-fingerprint: chrome
7 | dns:
8 | enable: true
9 | listen: :53
10 | ipv6: true
11 | enhanced-mode: fake-ip
12 | fake-ip-range: 198.18.0.1/16
13 | default-nameserver:
14 | - 223.5.5.5
15 | - 8.8.8.8
16 | nameserver:
17 | - https://dns.alidns.com/dns-query
18 | - https://doh.pub/dns-query
19 | fallback:
20 | - https://1.0.0.1/dns-query
21 | - tls://dns.google
22 | fallback-filter:
23 | geoip: true
24 | geoip-code: CN
25 | ipcidr:
26 | - 240.0.0.0/4
27 | proxies:
28 |
29 | proxy-groups:
30 | - name: 节点选择
31 | type: select
32 | proxies:
33 | - 自动选择
34 | - DIRECT
35 |
36 | - name: 自动选择
37 | type: url-test
38 | url: http://www.gstatic.com/generate_204
39 | interval: 300
40 | tolerance: 50
41 | proxies:
42 |
43 |
44 | rules:
45 | - DOMAIN,clash.razord.top,DIRECT
46 | - DOMAIN,yacd.haishan.me,DIRECT
47 | - GEOIP,LAN,DIRECT
48 | - GEOIP,CN,DIRECT
49 | - MATCH,节点选择
--------------------------------------------------------------------------------
/ChromeGo_Merge/templates/clash_warp_template.yaml:
--------------------------------------------------------------------------------
1 | port: 7890
2 | allow-lan: true
3 | mode: rule
4 | log-level: info
5 | unified-delay: true
6 | global-client-fingerprint: chrome
7 | dns:
8 | enable: true
9 | listen: :53
10 | ipv6: true
11 | enhanced-mode: fake-ip
12 | fake-ip-range: 198.18.0.1/16
13 | default-nameserver:
14 | - 223.5.5.5
15 | - 8.8.8.8
16 | nameserver:
17 | - https://dns.alidns.com/dns-query
18 | - https://doh.pub/dns-query
19 | fallback:
20 | - https://1.0.0.1/dns-query
21 | - tls://dns.google
22 | fallback-filter:
23 | geoip: true
24 | geoip-code: CN
25 | ipcidr:
26 | - 240.0.0.0/4
27 | proxies:
28 |
29 | - name: WARP
30 | type: wireguard
31 | server: 162.159.192.1
32 | port: 2408
33 | ip: 172.16.0.2
34 | ipv6: 2606:4700:110:87ad:b400:91:eadb:887f
35 | private-key: wIC19yRRSJkhVJcE09Qo9bE3P3PIwS3yyqyUnjwNO34=
36 | public-key: bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
37 | udp: true
38 | ip-version: ipv6-prefer
39 | reserved: XiBe
40 | remote-dns-resolve: true
41 | dns: [ 1.1.1.1, 8.8.8.8 ]
42 | dialer-proxy: "WARP前置节点"
43 |
44 | proxy-groups:
45 | - name: 节点选择
46 | type: select
47 | proxies:
48 | - WARP
49 | - 自动选择
50 | - 负载均衡
51 | - 手动选择
52 | - DIRECT
53 | - name: WARP前置节点
54 | type: select
55 | proxies:
56 | - 自动选择
57 | - 负载均衡
58 | - 手动选择
59 |
60 | - name: 自动选择
61 | type: url-test
62 | url: http://www.gstatic.com/generate_204
63 | interval: 300
64 | tolerance: 50
65 | proxies:
66 |
67 |
68 | - name: 手动选择
69 | type: select
70 | proxies:
71 |
72 |
73 | - name: 负载均衡
74 | type: load-balance #负载均衡
75 | proxies:
76 |
77 | url: 'http://www.gstatic.com/generate_204'
78 | interval: 300
79 | #lazy: true
80 | #disable-udp: true
81 | strategy: round-robin #作为前置节点⽤这个⽐较好
82 |
83 |
84 | rules:
85 | - DOMAIN,clash.razord.top,DIRECT
86 | - DOMAIN,yacd.haishan.me,DIRECT
87 | - GEOIP,LAN,DIRECT
88 | - GEOIP,CN,DIRECT
89 | - MATCH,节点选择
90 |
--------------------------------------------------------------------------------
/ChromeGo_Merge/urls/clash_urls.txt:
--------------------------------------------------------------------------------
1 | https://raw.githubusercontent.com/Alvin9999/pac2/master/clash.meta2/1/config.yaml
2 | https://raw.githubusercontent.com/Alvin9999/pac2/master/clash.meta2/config.yaml
3 | https://raw.githubusercontent.com/Alvin9999/pac2/master/clash.meta2/13/config.yaml
4 | https://raw.githubusercontent.com/Alvin9999/pac2/master/clash.meta2/15/config.yaml
5 | https://raw.githubusercontent.com/Alvin9999/pac2/master/clash.meta2/2/config.yaml
6 | https://raw.githubusercontent.com/Alvin9999/pac2/master/clash.meta2/3/config.yaml
7 | https://raw.githubusercontent.com/Alvin9999/pac2/master/quick/4/config.yaml
8 | https://raw.githubusercontent.com/Alvin9999/pac2/master/quick/1/config.yaml
9 | https://raw.githubusercontent.com/Alvin9999/pac2/master/quick/config.yaml
10 | https://raw.githubusercontent.com/Alvin9999/pac2/master/quick/3/config.yaml
11 |
--------------------------------------------------------------------------------
/ChromeGo_Merge/urls/hysteria2_urls.txt:
--------------------------------------------------------------------------------
1 | https://raw.githubusercontent.com/Alvin9999/pac2/master/hysteria2/config.json
2 | https://raw.githubusercontent.com/Alvin9999/pac2/master/hysteria2/1/config.json
3 | https://raw.githubusercontent.com/Alvin9999/pac2/master/hysteria2/2/config.json
4 | https://raw.githubusercontent.com/Alvin9999/pac2/master/hysteria2/13/config.json
--------------------------------------------------------------------------------
/ChromeGo_Merge/urls/hysteria_urls.txt:
--------------------------------------------------------------------------------
1 | https://raw.githubusercontent.com/Alvin9999/pac2/master/hysteria/1/config.json
2 | https://raw.githubusercontent.com/Alvin9999/pac2/master/hysteria/13/config.json
3 | https://raw.githubusercontent.com/Alvin9999/pac2/master/hysteria/2/config.json
4 | https://raw.githubusercontent.com/Alvin9999/pac2/master/hysteria/config.json
--------------------------------------------------------------------------------
/ChromeGo_Merge/urls/naiverproxy_urls.txt:
--------------------------------------------------------------------------------
1 | https://raw.githubusercontent.com/Alvin9999/PAC/master/naiveproxy/1/config.json
2 | https://raw.githubusercontent.com/Alvin9999/PAC/master/naiveproxy/config.json
--------------------------------------------------------------------------------
/ChromeGo_Merge/urls/sb_urls.txt:
--------------------------------------------------------------------------------
1 | https://raw.githubusercontent.com/Alvin9999/pac2/master/singbox/1/config.json
2 | https://raw.githubusercontent.com/Alvin9999/pac2/master/singbox/config.json
--------------------------------------------------------------------------------
/ChromeGo_Merge/urls/ss_urls.txt:
--------------------------------------------------------------------------------
1 | https://raw.githubusercontent.com/Alvin9999/pac2/master/ssr-wj/ssconfig.txt
2 | https://raw.githubusercontent.com/Alvin9999/pac2/master/ssr-wj/1/ssconfig.txt
--------------------------------------------------------------------------------
/ChromeGo_Merge/urls/xray_urls.txt:
--------------------------------------------------------------------------------
1 | https://raw.githubusercontent.com/Alvin9999/pac2/master/xray/1/config.json
2 | https://raw.githubusercontent.com/Alvin9999/pac2/master/xray/2/config.json
3 | https://raw.githubusercontent.com/Alvin9999/pac2/master/xray/3/config.json
4 | https://raw.githubusercontent.com/Alvin9999/pac2/master/xray/config.json
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 lgf4591
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/main.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 3,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "from subprocess import getoutput\n",
10 | "import os"
11 | ]
12 | },
13 | {
14 | "cell_type": "code",
15 | "execution_count": null,
16 | "metadata": {},
17 | "outputs": [],
18 | "source": [
19 | "# https://github.com/bannedbook/fanqiang/releases/download/ChromeGo-latest/ChromeGo.7z\n",
20 | "# https://github.com/bannedbook/fanqiang/releases/download/ChromeGo-latest/ChromeGoMac.tar.gz\n",
21 | "# https://github.com/bannedbook/fanqiang/releases/download/ChromeGo-latest/EdgeGo.7z\n",
22 | "# https://github.com/bannedbook/fanqiang/releases/download/ChromeGo-latest/FirefoxFQ.7z\n",
23 | "# https://github.com/bannedbook/fanqiang/releases/download/ChromeGo-latest/FirefoxFqLinux.tar.gz\n",
24 | "\n",
25 | "\n",
26 | "\n",
27 | "\n"
28 | ]
29 | },
30 | {
31 | "cell_type": "code",
32 | "execution_count": 4,
33 | "metadata": {},
34 | "outputs": [
35 | {
36 | "name": "stdout",
37 | "output_type": "stream",
38 | "text": [
39 | " % Total % Received % Xferd Average Speed Time Time Time Current\n",
40 | " Dload Upload Total Spent Left Speed\n",
41 | "\n",
42 | " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n",
43 | " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n",
44 | " 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0\n",
45 | " 0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0\n",
46 | " 0 0 0 0 0 0 0 0 --:--:-- 0:00:04 --:--:-- 0\n",
47 | "100 445 100 445 0 0 87 0 0:00:05 0:00:05 --:--:-- 87\n",
48 | "\n",
49 | "{\n",
50 | " \"server\": \"108.181.22.155:56091\",\n",
51 | " \"auth\": \"dongtaiwang.com\",\n",
52 | " \"tls\": {\n",
53 | " \"sni\": \"www.bing.com\",\n",
54 | " \"insecure\": true\n",
55 | " },\n",
56 | " \"quic\": {\n",
57 | " \"initStreamReceiveWindow\": 16777216,\n",
58 | " \"maxStreamReceiveWindow\": 16777216,\n",
59 | " \"initConnReceiveWindow\": 33554432,\n",
60 | " \"maxConnReceiveWindow\": 33554432\n",
61 | " },\n",
62 | " \"fastOpen\": true,\n",
63 | " \"socks5\": {\n",
64 | " \"listen\": \"127.0.0.1:1080\"\n",
65 | " },\n",
66 | " \"transport\": {\n",
67 | " \"udp\": {\n",
68 | " \"hopInterval\": \"30s\"\n",
69 | " }\n",
70 | " }\n",
71 | "}\n"
72 | ]
73 | }
74 | ],
75 | "source": [
76 | "hysteria2_1=getoutput('curl https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria2/1/config.json',encoding='utf-8')\n",
77 | "print(hysteria2_1)"
78 | ]
79 | },
80 | {
81 | "cell_type": "code",
82 | "execution_count": 3,
83 | "metadata": {},
84 | "outputs": [],
85 | "source": [
86 | "import urllib.request\n",
87 | "import json\n",
88 | "\n",
89 | "def curl(url):\n",
90 | " try:\n",
91 | " response = urllib.request.urlopen(url)\n",
92 | " if response.status == 200:\n",
93 | " # 响应状态码为200表示请求成功\n",
94 | " data = response.read().decode('utf-8')\n",
95 | " # json_data = json.loads(data)\n",
96 | " # print(json_data)\n",
97 | " return data\n",
98 | " else:\n",
99 | " print(f'Error: {response.status} {response.reason}')\n",
100 | " except urllib.error.URLError as e:\n",
101 | " print(f'Error: {e.reason}')\n",
102 | "\n",
103 | "# 使用curl函数发送GET请求并解析JSON数据\n",
104 | "# curl('https://api.example.com/data')\n",
105 | "\n",
106 | "# 使用curl函数发送POST请求并处理错误状态码\n",
107 | "# data = {'key1': 'value1', 'key2': 'value2'}\n",
108 | "# curl('https://api.example.com/data', data=data)\n",
109 | "\n",
110 | "# result = curl('https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria2/1/config.json')\n",
111 | "# print(result)\n"
112 | ]
113 | },
114 | {
115 | "cell_type": "code",
116 | "execution_count": 5,
117 | "metadata": {},
118 | "outputs": [
119 | {
120 | "data": {
121 | "text/plain": [
122 | "['https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria/1/config.json',\n",
123 | " 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria/config.json']"
124 | ]
125 | },
126 | "execution_count": 5,
127 | "metadata": {},
128 | "output_type": "execute_result"
129 | }
130 | ],
131 | "source": [
132 | "hysteria1_address = ['https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria/1/config.json','https://www.githubip.xyz/Alvin9999/pac2/master/hysteria/config.json']\n",
133 | "\n",
134 | "hysteria1_address\n"
135 | ]
136 | },
137 | {
138 | "cell_type": "code",
139 | "execution_count": 9,
140 | "metadata": {},
141 | "outputs": [
142 | {
143 | "data": {
144 | "text/plain": [
145 | "['{\\n\"server\": \"108.181.22.239:17727\",\\n\"protocol\": \"udp\",\\n\"up_mbps\": 11,\\n\"down_mbps\": 55,\\n\"http\": {\\n\"listen\": \"127.0.0.1:1081\",\\n\"timeout\" : 250,\\n\"disable_udp\": false\\n},\\n\"socks5\": {\\n\"listen\": \"127.0.0.1:1080\",\\n\"timeout\": 250,\\n\"disable_udp\": false\\n},\\n\"obfs\": \"\",\\n\"auth_str\": \"7YxfKsXdTnB226S8j4OjaA9M0nLcXATvgnXhVJbCRG7e9KKU7i\",\\n\"alpn\": \"h3\",\\n\"server_name\": \"youku.com\",\\n\"insecure\": true,\\n\"recv_window_conn\": 5767168,\\n\"recv_window\": 23068672,\\n\"disable_mtu_discovery\": true,\\n\"resolver\": \"https://223.5.5.5/dns-query\",\\n\"retry\": 3,\\n\"retry_interval\": 3,\\n\"quit_on_disconnect\": false,\\n\"handshake_timeout\": 15,\\n\"idle_timeout\": 30,\\n\"fast_open\": true,\\n\"hop_interval\": 120\\n}\\n',\n",
146 | " '{\\n\"server\": \"51.158.54.46:11926\",\\n\"protocol\": \"udp\",\\n\"up_mbps\": 11,\\n\"down_mbps\": 55,\\n\"http\": {\\n\"listen\": \"127.0.0.1:1081\",\\n\"timeout\" : 300,\\n\"disable_udp\": false\\n},\\n\"socks5\": {\\n\"listen\": \"127.0.0.1:1080\",\\n\"timeout\": 300,\\n\"disable_udp\": false\\n},\\n\"obfs\": \"\",\\n\"auth_str\": \"Trz2alKwzCImRAXI3nXfpo1ylpHfqOL8s1vageWKoyjjvWeMVs\",\\n\"alpn\": \"h3\",\\n\"server_name\": \"youku.com\",\\n\"insecure\": true,\\n\"recv_window_conn\": 5767168,\\n\"recv_window\": 23068672,\\n\"disable_mtu_discovery\": true,\\n\"resolver\": \"https://223.5.5.5/dns-query\",\\n\"retry\": 3,\\n\"retry_interval\": 3,\\n\"quit_on_disconnect\": false,\\n\"handshake_timeout\": 15,\\n\"idle_timeout\": 30,\\n\"fast_open\": true,\\n\"hop_interval\": 120\\n}\\n']"
147 | ]
148 | },
149 | "execution_count": 9,
150 | "metadata": {},
151 | "output_type": "execute_result"
152 | }
153 | ],
154 | "source": [
155 | "hysteria1_config = list(map(curl,hysteria1_address))\n",
156 | "hysteria1_config"
157 | ]
158 | },
159 | {
160 | "cell_type": "code",
161 | "execution_count": 12,
162 | "metadata": {},
163 | "outputs": [],
164 | "source": [
165 | "hysteria1_urls = [\n",
166 | " 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria/1/config.json',\n",
167 | " 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria/config.json',\n",
168 | " 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria/13/config.json',\n",
169 | " 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria/2/config.json'\n",
170 | " ]\n",
171 | "hysteria2_urls = [\n",
172 | " 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria2/1/config.json',\n",
173 | " 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria2/config.json',\n",
174 | " 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria2/13/config.json',\n",
175 | " 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria2/2/config.json'\n",
176 | "]\n",
177 | "naiveproxy_urls = [\n",
178 | " 'https://www.gitlabip.xyz/Alvin9999/PAC/master/naiveproxy/1/config.json',\n",
179 | " 'https://www.githubip.xyz/Alvin9999/PAC/master/naiveproxy/config.json'\n",
180 | "]\n",
181 | "singbox_urls = [\n",
182 | " 'https://www.gitlabip.xyz/Alvin9999/pac2/master/singbox/1/config.json',\n",
183 | " 'https://www.githubip.xyz/Alvin9999/pac2/master/singbox/config.json'\n",
184 | "]\n",
185 | "\n",
186 | "hysteria1_configs = list(map(curl, hysteria1_urls))\n",
187 | "hysteria2_configs = list(map(curl, hysteria2_urls))\n",
188 | "naiveproxy_configs = list(map(curl, naiveproxy_urls))\n",
189 | "singbox_configs = list(map(curl, singbox_urls))\n",
190 | " \n"
191 | ]
192 | },
193 | {
194 | "cell_type": "code",
195 | "execution_count": 14,
196 | "metadata": {},
197 | "outputs": [],
198 | "source": [
199 | "for (index,config) in enumerate(hysteria1_configs):\n",
200 | " with open(f\"./ChromeGo/hysteria1/ip_{index}.json\", \"w\",encoding=\"utf-8\") as config_file:\n",
201 | " config_file.write(config)"
202 | ]
203 | },
204 | {
205 | "cell_type": "code",
206 | "execution_count": 16,
207 | "metadata": {},
208 | "outputs": [
209 | {
210 | "name": "stdout",
211 | "output_type": "stream",
212 | "text": [
213 | "Error: Forbidden\n"
214 | ]
215 | }
216 | ],
217 | "source": [
218 | "vless_node = curl('https://vless-node.lgf4591.workers.dev/0d9163eb-b54f-4144-b7a2-96efda0f4ee7')\n",
219 | "vless_node\n",
220 | "\n"
221 | ]
222 | },
223 | {
224 | "cell_type": "code",
225 | "execution_count": 15,
226 | "metadata": {},
227 | "outputs": [
228 | {
229 | "data": {
230 | "text/plain": [
231 | "['{\\n \"listen\": \"socks://127.0.0.1:1080\",\\n \"proxy\": \"https://dongtaiwang.com:dongtaiwang.com@www.dtku48.xyz:443\"\\n}\\n',\n",
232 | " '\\n{\\n \"listen\": \"socks://127.0.0.1:1080\",\\n \"proxy\": \"https://dongtaiwang.com:dongtaiwang.com@naive16.cfcdn3.xyz:443\"\\n}\\n']"
233 | ]
234 | },
235 | "execution_count": 15,
236 | "metadata": {},
237 | "output_type": "execute_result"
238 | }
239 | ],
240 | "source": [
241 | "naiveproxy_configs"
242 | ]
243 | },
244 | {
245 | "cell_type": "code",
246 | "execution_count": 11,
247 | "metadata": {},
248 | "outputs": [
249 | {
250 | "name": "stdout",
251 | "output_type": "stream",
252 | "text": [
253 | "{\n",
254 | "\"server\": \"108.181.22.239:17727\",\n",
255 | "\"protocol\": \"udp\",\n",
256 | "\"up_mbps\": 11,\n",
257 | "\"down_mbps\": 55,\n",
258 | "\"http\": {\n",
259 | "\"listen\": \"127.0.0.1:1081\",\n",
260 | "\"timeout\" : 250,\n",
261 | "\"disable_udp\": false\n",
262 | "},\n",
263 | "\"socks5\": {\n",
264 | "\"listen\": \"127.0.0.1:1080\",\n",
265 | "\"timeout\": 250,\n",
266 | "\"disable_udp\": false\n",
267 | "},\n",
268 | "\"obfs\": \"\",\n",
269 | "\"auth_str\": \"7YxfKsXdTnB226S8j4OjaA9M0nLcXATvgnXhVJbCRG7e9KKU7i\",\n",
270 | "\"alpn\": \"h3\",\n",
271 | "\"server_name\": \"youku.com\",\n",
272 | "\"insecure\": true,\n",
273 | "\"recv_window_conn\": 5767168,\n",
274 | "\"recv_window\": 23068672,\n",
275 | "\"disable_mtu_discovery\": true,\n",
276 | "\"resolver\": \"https://223.5.5.5/dns-query\",\n",
277 | "\"retry\": 3,\n",
278 | "\"retry_interval\": 3,\n",
279 | "\"quit_on_disconnect\": false,\n",
280 | "\"handshake_timeout\": 15,\n",
281 | "\"idle_timeout\": 30,\n",
282 | "\"fast_open\": true,\n",
283 | "\"hop_interval\": 120\n",
284 | "}\n",
285 | "\n"
286 | ]
287 | }
288 | ],
289 | "source": [
290 | "print(hysteria1_config[0])"
291 | ]
292 | },
293 | {
294 | "cell_type": "code",
295 | "execution_count": null,
296 | "metadata": {},
297 | "outputs": [],
298 | "source": []
299 | },
300 | {
301 | "cell_type": "code",
302 | "execution_count": 2,
303 | "metadata": {},
304 | "outputs": [
305 | {
306 | "data": {
307 | "text/plain": [
308 | "'电信172.64.135.119\\n电信172.67.107.111\\n电信172.67.31.30\\n\\n联通198.41.209.80\\n联通172.67.72.167\\n联通172.67.132.80\\n\\n移动172.67.68.222\\n移动172.64.138.59\\n移动172.64.202.80\\n'"
309 | ]
310 | },
311 | "execution_count": 2,
312 | "metadata": {},
313 | "output_type": "execute_result"
314 | }
315 | ],
316 | "source": [
317 | "cf_ips = curl('https://raw.githubusercontent.com/Alvin9999/new-pac/master/CloudFlare%E4%BC%98%E8%B4%A8IP')\n",
318 | "cf_ips"
319 | ]
320 | },
321 | {
322 | "cell_type": "code",
323 | "execution_count": null,
324 | "metadata": {},
325 | "outputs": [],
326 | "source": []
327 | },
328 | {
329 | "cell_type": "code",
330 | "execution_count": null,
331 | "metadata": {},
332 | "outputs": [],
333 | "source": []
334 | },
335 | {
336 | "cell_type": "code",
337 | "execution_count": null,
338 | "metadata": {},
339 | "outputs": [],
340 | "source": []
341 | },
342 | {
343 | "cell_type": "code",
344 | "execution_count": null,
345 | "metadata": {},
346 | "outputs": [],
347 | "source": []
348 | },
349 | {
350 | "cell_type": "code",
351 | "execution_count": null,
352 | "metadata": {},
353 | "outputs": [],
354 | "source": []
355 | },
356 | {
357 | "cell_type": "code",
358 | "execution_count": null,
359 | "metadata": {},
360 | "outputs": [],
361 | "source": []
362 | },
363 | {
364 | "cell_type": "code",
365 | "execution_count": null,
366 | "metadata": {},
367 | "outputs": [],
368 | "source": []
369 | },
370 | {
371 | "cell_type": "code",
372 | "execution_count": null,
373 | "metadata": {},
374 | "outputs": [],
375 | "source": []
376 | },
377 | {
378 | "cell_type": "code",
379 | "execution_count": null,
380 | "metadata": {},
381 | "outputs": [],
382 | "source": []
383 | },
384 | {
385 | "cell_type": "code",
386 | "execution_count": null,
387 | "metadata": {},
388 | "outputs": [],
389 | "source": []
390 | },
391 | {
392 | "cell_type": "code",
393 | "execution_count": null,
394 | "metadata": {},
395 | "outputs": [],
396 | "source": []
397 | }
398 | ],
399 | "metadata": {
400 | "kernelspec": {
401 | "display_name": "Python 3",
402 | "language": "python",
403 | "name": "python3"
404 | },
405 | "language_info": {
406 | "codemirror_mode": {
407 | "name": "ipython",
408 | "version": 3
409 | },
410 | "file_extension": ".py",
411 | "mimetype": "text/x-python",
412 | "name": "python",
413 | "nbconvert_exporter": "python",
414 | "pygments_lexer": "ipython3",
415 | "version": "3.11.6"
416 | }
417 | },
418 | "nbformat": 4,
419 | "nbformat_minor": 2
420 | }
421 |
--------------------------------------------------------------------------------
/main.ps1:
--------------------------------------------------------------------------------
1 |
2 | python main.py
3 |
4 | python markdown_to_html.py
5 |
6 |
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 |
2 | from subprocess import getoutput
3 | import os
4 | import time
5 | import urllib.request
6 | import json
7 |
8 |
9 | def curl(url):
10 | try:
11 | response = urllib.request.urlopen(url)
12 | if response.status == 200:
13 | # 响应状态码为200表示请求成功
14 | data = response.read().decode('utf-8')
15 | # json_data = json.loads(data)
16 | # print(json_data)
17 | return data
18 | else:
19 | print(f'Error: {response.status} {response.reason}')
20 | except urllib.error.URLError as e:
21 | print(f'Error: {e.reason}')
22 |
23 | # 使用curl函数发送GET请求并解析JSON数据
24 | # curl('https://api.example.com/data')
25 |
26 | # 使用curl函数发送POST请求并处理错误状态码
27 | # data = {'key1': 'value1', 'key2': 'value2'}
28 | # curl('https://api.example.com/data', data=data)
29 | # xx=os.popen('curl www.baidu.com').readlines() # BUG 中文乱码
30 |
31 |
32 | # better_cf_ips = getoutput('curl https://raw.githubusercontent.com/Alvin9999/new-pac/master/CloudFlare%E4%BC%98%E8%B4%A8IP',encoding='utf-8')
33 | # freefq_doc = getoutput('curl https://raw.githubusercontent.com/freefq/free/master/README.md',encoding='utf-8')
34 |
35 | better_cf_ips = curl('https://raw.githubusercontent.com/Alvin9999/new-pac/master/CloudFlare%E4%BC%98%E8%B4%A8IP')
36 | freefq_doc = curl('https://raw.githubusercontent.com/freefq/free/master/README.md')
37 | vless_node = curl('https://vless-node.lgf4591.workers.dev/0d9163eb-b54f-4144-b7a2-96efda0f4ee7')
38 |
39 | update_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
40 |
41 | hysteria1_urls = [
42 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria/1/config.json',
43 | 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria/config.json',
44 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria/13/config.json',
45 | 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria/2/config.json'
46 | ]
47 | hysteria2_urls = [
48 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria2/1/config.json',
49 | 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria2/config.json',
50 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/hysteria2/13/config.json',
51 | 'https://www.githubip.xyz/Alvin9999/pac2/master/hysteria2/2/config.json'
52 | ]
53 | naiveproxy_urls = [
54 | 'https://www.gitlabip.xyz/Alvin9999/PAC/master/naiveproxy/1/config.json',
55 | 'https://www.githubip.xyz/Alvin9999/PAC/master/naiveproxy/config.json'
56 | ]
57 | singbox_urls = [
58 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/singbox/1/config.json',
59 | 'https://www.githubip.xyz/Alvin9999/pac2/master/singbox/config.json'
60 | ]
61 | xray_urls = [
62 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/xray/1/config.json',
63 | 'https://www.githubip.xyz/Alvin9999/pac2/master/xray/config.json',
64 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/xray/3/config.json',
65 | 'https://www.githubip.xyz/Alvin9999/pac2/master/xray/2/config.json'
66 | ]
67 | clashMeta_urls = [
68 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/clash.meta/1/config.yaml',
69 | 'https://www.githubip.xyz/Alvin9999/pac2/master/clash.meta/config.yaml',
70 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/clash.meta/13/config.yaml',
71 | 'https://www.githubip.xyz/Alvin9999/pac2/master/clash.meta/2/config.yaml',
72 | 'https://www.gitlabip.xyz/Alvin9999/pac2/master/clash.meta/15/config.yaml',
73 | 'https://www.githubip.xyz/Alvin9999/pac2/master/clash.meta/3/config.yaml'
74 | ]
75 | psiphon_urls = [
76 | ''
77 | ]
78 |
79 |
80 | hysteria1_configs = list(map(curl, hysteria1_urls))
81 | hysteria2_configs = list(map(curl, hysteria2_urls))
82 | naiveproxy_configs = list(map(curl, naiveproxy_urls))
83 | singbox_configs = list(map(curl, singbox_urls))
84 | xray_configs = list(map(curl, xray_urls))
85 | clashMeta_configs = list(map(curl, clashMeta_urls))
86 |
87 | for (index,config) in enumerate(hysteria1_configs):
88 | with open(f"./ChromeGo/hysteria1/ip_{index}.json", "w",encoding="utf-8") as config_file:
89 | config_file.write(config)
90 |
91 | for (index,config) in enumerate(hysteria2_configs):
92 | with open(f"./ChromeGo/hysteria2/ip_{index}.json", "w",encoding="utf-8") as config_file:
93 | config_file.write(config)
94 |
95 | for (index,config) in enumerate(naiveproxy_configs):
96 | with open(f"./ChromeGo/naiveproxy/ip_{index}.json", "w",encoding="utf-8") as config_file:
97 | config_file.write(config)
98 |
99 | for (index,config) in enumerate(singbox_configs):
100 | with open(f"./ChromeGo/singbox/ip_{index}.json", "w",encoding="utf-8") as config_file:
101 | config_file.write(config)
102 |
103 | for (index,config) in enumerate(xray_configs):
104 | with open(f"./ChromeGo/xray/ip_{index}.json", "w",encoding="utf-8") as config_file:
105 | config_file.write(config)
106 |
107 | for (index,config) in enumerate(clashMeta_configs):
108 | with open(f"./ChromeGo/clashMeta/ip_{index}.yaml", "w",encoding="utf-8") as config_file:
109 | config_file.write(config)
110 |
111 |
112 | readme_doc = """
113 |
114 | ================================= Last Update Time: {} =============================================
115 |
116 | # cloudflare-pages-vpn
117 |
118 | ##### https://replit.com/@lgf4591/WarpKey
119 | ##### [wireguad-config-generator](https://github.com/lgf4591/wireguad-config-generator)
120 | ##### [fanqiang](https://github.com/bannedbook/fanqiang)
121 | ##### [chromego_merge](https://github.com/vveg26/chromego_merge)
122 |
123 | ```
124 | need install packages:
125 |
126 | sudo apt update && sudo apt upgrade -y
127 | sudo apt install -y qrencode
128 |
129 | cp -r /mnt/c/Users/lgf/.ssh ~
130 | cd ~/.ssh
131 | chmod 600 *id_rsa
132 | chmod 644 *id_rsa.pub
133 | ssh -T git@github.com
134 |
135 | git clone git@github.com:lgf4591/cloudflare-pages-vpn.git
136 | git config --global user.name "lgf4591"
137 | git config --global user.email "lgf4591@outlook.com"
138 | git pull origin main
139 |
140 | ```
141 |
142 | ## [cloudfare免费代理节点: v2ray-nodes](https://v2ray-nodes.lgf4591.workers.dev/b58a6cd1-43da-4506-aaec-308045412f2d)
143 |
144 | ## [cloudfare免费vless节点: vless-node](https://vless-node.lgf4591.workers.dev/0d9163eb-b54f-4144-b7a2-96efda0f4ee7)
145 | ```
146 |
147 | {}
148 |
149 | ```
150 |
151 |
152 | ## 免费的ChormeGo节点汇总 (test)
153 |
154 | ### [clashmeta-全平台通用](https://github.com/vveg26/chromego_merge/tree/main#%E4%B8%8D%E5%A5%97warp%E7%89%88%E6%9C%ACclashmeta-%E5%85%A8%E5%B9%B3%E5%8F%B0%E9%80%9A%E7%94%A8-%E8%8A%82%E7%82%B9%E6%9C%80%E5%85%A8)
155 |
156 | #### 所有ChromeGo代理节点订阅地址(不可以访问一些敏感资源)
157 |
158 | ```
159 |
160 | https://cloudflare-pages-vpn.pages.dev/ChromeGo/all_merged_proxies.yaml
161 | https://cloudflare-pages-vpn.pages.dev/ChromeGo_Merge/sub/merged_proxies_new.yaml (推荐用这个)
162 |
163 | ```
164 |
165 | #### 套warp的所有ChromeGo代理节点订阅地址(可以访问一些敏感资源)
166 |
167 | ```
168 |
169 | https://cloudflare-pages-vpn.pages.dev/ChromeGo/all_merged_proxies_with_warp.yaml
170 | https://cloudflare-pages-vpn.pages.dev/ChromeGo_Merge/sub/merged_warp_proxies_new.yaml (推荐用这个)
171 |
172 | ```
173 |
174 |
175 | ### [通用链接 shadowrocket-nekoray](https://github.com/vveg26/chromego_merge/tree/main#%E9%80%9A%E7%94%A8%E9%93%BE%E6%8E%A5-shadowrocket-nekoray)
176 |
177 | ```
178 |
179 | https://cloudflare-pages-vpn.pages.dev/ChromeGo/all_merged_proxies_shadowrocket_nekoray.txt
180 | https://cloudflare-pages-vpn.pages.dev/ChromeGo_Merge/sub/shadowrocket_base64.txt (推荐用这个)
181 |
182 | ```
183 |
184 | # CloudFlare优质IP
185 | ```
186 | {}
187 | ```
188 |
189 | # [freefq](https://github.com/freefq/free)
190 |
191 | {}
192 |
193 |
194 | # [ChromeGo Config](https://github.com/bannedbook/fanqiang/releases/tag/ChromeGo-latest)
195 |
196 | ## hysteria1 config json
197 | ### [hysteria1 ip_1]({})
198 | ```
199 | {}
200 | ```
201 |
202 | ### [hysteria1 ip_2]({})
203 | ```
204 | {}
205 | ```
206 |
207 | ### [hysteria1 ip_3]({})
208 | ```
209 | {}
210 | ```
211 |
212 | ### [hysteria1 ip_4]({})
213 | ```
214 | {}
215 | ```
216 |
217 | ## hysteria2 config json
218 | ### [hysteria2 ip_1]({})
219 | ```
220 | {}
221 | ```
222 |
223 | ### [hysteria2 ip_2]({})
224 | ```
225 | {}
226 | ```
227 |
228 | ### [hysteria2 ip_3]({})
229 | ```
230 | {}
231 | ```
232 |
233 | ### [hysteria2 ip_4]({})
234 | ```
235 | {}
236 | ```
237 |
238 |
239 | ## naiveproxy config json
240 |
241 | ### [naiveproxy ip_1]({})
242 | ```
243 | {}
244 | ```
245 |
246 | ### [naiveproxy ip_2]({})
247 | ```
248 | {}
249 | ```
250 |
251 |
252 | ## singbox config json
253 |
254 | ### [singbox ip_1]({})
255 | ```
256 | {}
257 | ```
258 |
259 | ### [singbox ip_2]({})
260 | ```
261 | {}
262 | ```
263 |
264 |
265 | ## xray config json
266 |
267 | ### [xray ip_1]({})
268 | ```
269 | {}
270 | ```
271 |
272 | ### [xray ip_2]({})
273 | ```
274 | {}
275 | ```
276 |
277 |
278 |
279 | ## clashMeta config yaml
280 |
281 | ### [clashMeta ip_1]({})
282 | ```
283 | {}
284 | ```
285 |
286 | ### [clashMeta ip_2]({})
287 | ```
288 | {}
289 | ```
290 |
291 | ### [clashMeta ip_3]({})
292 | ```
293 | {}
294 | ```
295 |
296 | ### [clashMeta ip_4]({})
297 | ```
298 | {}
299 | ```
300 |
301 | ### [clashMeta ip_5]({})
302 | ```
303 | {}
304 | ```
305 |
306 | ### [clashMeta ip_6]({})
307 | ```
308 | {}
309 | ```
310 |
311 | """
312 |
313 | markdown_doc = readme_doc.format(update_time,vless_node,better_cf_ips,freefq_doc,hysteria1_urls[0],hysteria1_configs[0],hysteria1_urls[1],hysteria1_configs[1],hysteria1_urls[2],hysteria1_configs[2],hysteria1_urls[3],hysteria1_configs[3],hysteria2_urls[0],hysteria2_configs[0],hysteria2_urls[1],hysteria2_configs[1],hysteria2_urls[2],hysteria2_configs[2],hysteria2_urls[3],hysteria2_configs[3],naiveproxy_urls[0],naiveproxy_configs[0],naiveproxy_urls[1],naiveproxy_configs[1],singbox_urls[0],singbox_configs[0],singbox_urls[1],singbox_configs[1],xray_urls[0],xray_configs[0],xray_urls[1],xray_configs[1],clashMeta_urls[0],clashMeta_configs[0],clashMeta_urls[1],clashMeta_configs[1],clashMeta_urls[2],clashMeta_configs[2],clashMeta_urls[3],clashMeta_configs[3],clashMeta_urls[4],clashMeta_configs[4],clashMeta_urls[5],clashMeta_configs[5])
314 |
315 | try:
316 | with open("./README.md", "w",encoding="utf-8") as readme_file:
317 | readme_file.write(markdown_doc)
318 |
319 | print("Content successfully encoded and written to README.md file.")
320 | except Exception as e:
321 | print(f"Error encoding file content: {e}")
322 |
323 |
--------------------------------------------------------------------------------
/main.sh:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 | cd ./ChromeGo && sh get_all_proxies.sh && cd ..
3 |
4 | wget -c https://github.com/ViRb3/wgcf/releases/download/v2.2.19/wgcf_2.2.19_windows_amd64.exe -O ./warp/windows/wgcf.exe
5 | wget -c https://github.com/ViRb3/wgcf/releases/download/v2.2.19/wgcf_2.2.19_linux_amd64 -O ./warp/linux/wgcf
6 | wget -c https://github.com/ViRb3/wgcf/releases/download/v2.2.19/wgcf_2.2.19_darwin_amd64 -O ./warp/macos/wgcf
7 | wget -c https://github.com/ViRb3/wgcf/releases/download/v2.2.19/wgcf_2.2.19_freebsd_amd64 -O ./warp/unix/wgcf-freebsd
8 |
9 | python main.py
10 |
11 | python markdown_to_html.py
12 |
13 | cd ChromeGo_Merge
14 |
15 | # print("Install dependencies") # BUG: 在cloudfare部署时出现这个错误 -> main.sh: 15: Syntax error: word unexpected (expecting ")")
16 | pip install -r requirements.txt
17 |
18 | # print("Run merge script")
19 | python meta_merge.py
20 |
21 | # print("Run shadowrocket merge script")
22 | python merge.py
23 |
24 | # print("Run sb script")
25 | python sb.py
26 |
27 | # print("finished!!!")
28 |
--------------------------------------------------------------------------------
/markdown_to_html copy.py:
--------------------------------------------------------------------------------
1 |
2 | # https://www.cnblogs.com/bpf-1024/p/14118167.html
3 |
4 |
5 | import os
6 | try:
7 | from markdown import markdown
8 | except ModuleNotFoundError as e:
9 | os.system("pip install markdown")
10 | os.system("pip install python-markdown-math")
11 | os.system("pip install markdown_checklist")
12 | from markdown import markdown
13 |
14 | try:
15 | from pymdownx import superfences
16 | except ModuleNotFoundError as e:
17 | os.system("pip install pymdown-extensions")
18 | from pymdownx import superfences
19 |
20 | class mdtox:
21 | def __init__(self, md_filename, encoding='utf-8'):
22 | self.md_filename = md_filename
23 | self.encoding = encoding
24 | self.__args()
25 |
26 | def __args(self):
27 | self.html = '''
28 |
29 |
30 |
31 |
32 | {}
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | {}
47 |
48 |
49 |