💡 Clash 配置技巧
为所有节点生成本地 SOCKS5 代理端口
功能说明
通过 Clash 的 JavaScript 预处理脚本,可以将机场的所有节点自动映射为本地的 SOCKS5 代理端口。这样每个节点都有固定的本地端口,方便在 SSH、终端工具或其他应用中直接使用。
使用场景
- 需要为不同的服务指定不同的代理节点
- 在 SSH 配置中为不同主机分配独立的代理端口(参考 SSH 走代理)
- 使用命令行工具时需要指定特定节点的代理
配置脚本
在 Clash 的预处理脚本(Preprocessor Script)中添加以下代码:
function main(config) {
// 1. 初始化 listeners 数组,添加固定端口的自定义节点
config.listeners = [
{
name: "default-111",
type: "mixed", // mixed 类型支持 HTTP 和 SOCKS5
port: 12345,
address: "127.0.0.1",
udp: true,
proxy: "xxx-111" // 绑定到指定的节点名称
},
{
name: "default-777",
type: "mixed",
port: 12346,
address: "127.0.0.1",
udp: true,
proxy: "xxx-777"
}
];
// 2. 设置动态代理节点的起始端口
const startPort = 20000;
// 3. 过滤节点:排除不需要的节点
const filteredProxies = (config.proxies || []).filter(proxy =>
!(proxy.name.includes("免费") ||
proxy.name.includes("xxx") ||
proxy.name.includes("落地") ||
proxy.name.includes("下载"))
);
// 4. 遍历过滤后的节点,为每个节点创建独立的本地代理端口
filteredProxies.forEach((proxy, index) => {
config.listeners.push({
name: `mixed-${proxy.name}`, // 使用前缀避免名称冲突
type: "mixed",
port: startPort + index, // 端口号递增
proxy: proxy.name, // 强制绑定到该节点
address: "127.0.0.1",
udp: true
});
});
// 5. 输出日志信息,便于调试
console.log(`过滤完成:排除了"免费"的节点,共生成 ${filteredProxies.length} 个端口。`);
return config;
}
配置说明
固定节点配置(第 1 步)
- 为特定节点分配固定端口(如 12345、12346)
name: 监听器名称type: 代理类型,mixed同时支持 HTTP 和 SOCKS5port: 本地监听端口proxy: 要绑定的节点名称
动态节点配置(第 2-4 步)
startPort: 动态端口起始值(建议使用 20000 以上避免冲突)- 过滤规则:排除节点名称包含"免费"、“xxx”、“落地”、“下载"的节点
- 每个节点分配一个连续的端口号:20000、20001、20002…
使用方法
配置完成后:
- 重启 Clash 使配置生效
- 查看 Clash 日志确认生成的端口数量
- 在终端或其他应用中使用
127.0.0.1:端口号访问对应节点的代理
示例:
# 使用固定端口的节点
curl --socks5 127.0.0.1:12345 https://ip.sb
# 使用动态端口的节点
curl --socks5 127.0.0.1:20000 https://ip.sb