代理链管理服务器

MCP服务器为proxychains-ng提供动态配置和管理工具,通过SSH在远程Linux主机上执行命令,实现网络流量通过代理链路由,适用于隐私保护、安全测试和访问地理限制资源。

  • by schwarztim
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 schwarztim/sec-proxychains-mcp

使用说明

代理链MCP服务器

MCP服务器 证明技术 (proxychains4)-通过SSH将命令通过代理链路由到远程Linux主机(例如Kali Linux)。

概述

此MCP服务器提供了动态管理和使用代理链配置的工具。它通过SSH在安装了proxychains4的远程主机上执行命令,允许AI助手通过代理链路由网络流量,以进行隐私、安全测试或访问受地理限制的资源。

特性

工具 说明
proxychains_run 通过配置的代理链执行命令
proxychains_config 获取、设置或重置完整配置
proxychains_add 向链中添加代理(SOCKS4、SOCKS5、HTTP、RAW)
proxychains_remove 按索引或主机端口删除代理
proxychains_mode 设置链模式(严格、动态、随机、round_robin)
proxychains_dns 配置DNS处理模式
proxychains_test 测试代理链连接和延迟
proxychains_list 列出所有已配置的代理
proxychains_import 从文件或URL导入代理
proxychains_export 以各种格式导出配置

安装

先决条件

  • Node.js 18+
  • SSH访问安装了proxychains4的Linux主机
  • SSH主机应在中配置 ~/.ssh/config 或可通过主机名访问

设置

# Clone the repository
git clone https://github.com/schwarztim/sec-proxychains-mcp.git
cd sec-proxychains-mcp

# Install dependencies
npm install

# Build
npm run build

MCP配置

添加到您的Claude Desktop或MCP客户端配置中:

{
  "mcpServers": {
    "proxychains": {
      "command": "node",
      "args": ["/path/to/sec-proxychains-mcp/dist/index.js"],
      "env": {
        "PROXYCHAINS_KALI_HOST": "kali",
        "PROXYCHAINS_SSH_TIMEOUT": "30000"
      }
    }
  }
}

配置

环境变量

变量 默认值 描述
PROXYCHAINS_KALI_HOST kali 远程主机的SSH主机名
PROXYCHAINS_SSH_TIMEOUT 30000 SSH命令超时(毫秒)
PROXYCHAINS_CONFIG_DIR ~/.proxychains-mcp 本地配置存储目录

链式模式

模式 描述
strict_chain 所有代理必须工作,并按指定顺序使用
dynamic_chain 跳过死代理,至少有一个必须工作
random_chain 为每个连接随机选择代理
round_robin_chain 按顺序旋转代理

代理类型

类型 描述
socks5 SOCKS5代理(推荐)
socks4 SOCKS4代理
http HTTP CONNECT代理
raw 原始TCP转发

DNS模式

模式 描述
proxy_dns 通过代理路由DNS(推荐,防止泄漏)
proxy_dns_old 使用proxyresolv的传统模式
proxy_dns_daemon 基于守护进程的DNS解析
none 无DNS代理(可能泄漏DNS查询)

使用示例

基本设置

// Add a SOCKS5 proxy (e.g., Tor)
proxychains_add({ type: "socks5", host: "127.0.0.1", port: 9050 })

// Add an authenticated HTTP proxy
proxychains_add({
  type: "http",
  host: "proxy.example.com",
  port: 8080,
  user: "admin",
  pass: "secret"
})

// Set dynamic chain mode (skip dead proxies)
proxychains_mode({ mode: "dynamic_chain" })

测试链条

// Test connectivity
proxychains_test({ verbose: true })

// Test against specific target
proxychains_test({ target: "https://api.ipify.org" })

运行命令

// Check your proxied IP
proxychains_run({ command: "curl https://httpbin.org/ip" })

// Run nmap through proxies
proxychains_run({ command: "nmap -sT -Pn target.com" })

// Custom timeout for long operations
proxychains_run({ command: "wget https://example.com/large-file", timeout: 120000 })

导入代理

// Import from URL
proxychains_import({
  source: "https://raw.githubusercontent.com/example/proxies/main/list.txt",
  defaultType: "socks5"
})

// Import from file on remote host
proxychains_import({ source: "/tmp/proxies.txt" })

导出配置

// Export as proxychains.conf format
proxychains_export({ format: "proxychains" })

// Export as JSON
proxychains_export({ format: "json" })

// Export as simple ip:port list
proxychains_export({ format: "ip:port" })

远程主机设置

远程主机(例如Kali Linux)需要安装proxychains4:

# Debian/Ubuntu/Kali
sudo apt update
sudo apt install proxychains4 curl

# Verify installation
proxychains4 --version

确保SSH访问在没有密码提示的情况下正常工作:

# Test SSH connection
ssh kali "echo 'Connection successful'"

安全考虑

  • SSH密钥:使用SSH密钥身份验证而不是密码
  • DNS泄漏:使用 proxy_dns 防止DNS泄漏的模式
  • 代理信任:仅使用受信任的代理;流量对代理操作员可见
  • 认证:代理凭据存储在本地 ~/.proxychains-mcp/config.json

建筑

┌─────────────────┐     SSH      ┌─────────────────┐     Proxies     ┌─────────────┐
│   MCP Client    │─────────────▶│   Remote Host   │────────────────▶│   Target    │
│  (Claude, etc)  │              │   (Kali Linux)  │                 │             │
└─────────────────┘              │   proxychains4  │                 └─────────────┘
                                 └─────────────────┘

贡献

欢迎投稿!请随时提交拉取请求。

  1. 克隆该仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢