v2ray to clash python代码

Python 脚本,可以将 vmess:// 链接一键转换为 Clash (Meta) 的 YAML 配置文件,支持基本常见字段,不上传、不联网,纯本地转换


✅ Python 脚本:一键将 vmess:// 转为 Clash YAML

import base64
import json
import yaml

def decode_vmess_link(vmess_url):
    if not vmess_url.startswith("vmess://"):
        raise ValueError("不是合法的 vmess 链接")

    base64_payload = vmess_url[len("vmess://"):]
    padded_payload = base64_payload + "=" * (-len(base64_payload) % 4)  # 补齐 Base64
    json_data = base64.b64decode(padded_payload).decode('utf-8')
    return json.loads(json_data)

def convert_to_clash(proxy_json):
    clash_proxy = {
        'name': proxy_json.get("ps", "vmess-node"),
        'type': 'vmess',
        'server': proxy_json['add'],
        'port': int(proxy_json['port']),
        'uuid': proxy_json['id'],
        'alterId': int(proxy_json.get('aid', 0)),
        'cipher': 'auto',
        'tls': proxy_json.get('tls', '').lower() == 'tls',
        'skip-cert-verify': True,
        'network': proxy_json.get('net', 'tcp'),
    }

    if clash_proxy['network'] == 'ws':
        clash_proxy['ws-opts'] = {
            'path': proxy_json.get('path', '/'),
        }
        if proxy_json.get('host'):
            clash_proxy['ws-opts']['headers'] = {
                'Host': proxy_json['host']
            }

    return clash_proxy

def generate_yaml(proxy):
    config = {
        'proxies': [proxy],
        'proxy-groups': [
            {
                'name': 'Proxy',
                'type': 'select',
                'proxies': [proxy['name'], 'DIRECT']
            }
        ],
        'rules': [
            'MATCH,Proxy'
        ]
    }
    return yaml.dump(config, allow_unicode=True, sort_keys=False)

if __name__ == "__main__":
    vmess_input = input("请输入 vmess:// 链接:").strip()
    proxy_json = decode_vmess_link(vmess_input)
    clash_proxy = convert_to_clash(proxy_json)
    yaml_output = generate_yaml(clash_proxy)

    output_file = 'clash_config.yaml'
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write(yaml_output)

    print(f"✅ 已生成 Clash 配置文件: {output_file}")

📦 环境要求:

  • Python 3(推荐 3.6+)
  • 安装依赖(如果没有 pyyaml): pip install pyyaml

✅ 使用步骤:

  1. 把上述代码保存为 vmess2clash.py
  2. 运行脚本: python vmess2clash.py
  3. 输入你的 vmess:// 链接
  4. 程序会生成 clash_config.yaml 文件,你就可以导入 Clash.Meta For Android 使用了

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇