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
✅ 使用步骤:
- 把上述代码保存为
vmess2clash.py - 运行脚本:
python vmess2clash.py - 输入你的
vmess://链接 - 程序会生成
clash_config.yaml文件,你就可以导入 Clash.Meta For Android 使用了










