搭建NaiveProxy及使用记录(续)

在 Ubuntu 环境下,使用 v2rayA 配合本地运行的 naive 核心是一种非常高级且稳健的方案。这种架构下,naive 负责最底层的流量伪装,而 v2rayA 负责流量的分流(分流国内外)、透明代理(让终端和全局都通)以及图形化管理。

以下是实现这一”上游分发”模式的详细配置流程:

1. 核心架构逻辑

在这种模式中,流量的路径如下:

应用程序 -> v2rayA (分流/透明代理) -> 本地 naive 核心 (127.0.0.1:1080) -> VPS 服务端 (Caddy)

2. 准备:确保本地 NaiveProxy 正在运行

你需要确保你本地的 naive 正在后台监听一个端口。假设你的 config.json 配置如下:

{
  "listen": "socks://127.0.0.1:1080",
  "proxy": "https://user:pass@xxx.com"
}
  • 确保运行:可以通过 ps aux | grep naive 确认进程是否存在。

3. 在 v2rayA 中配置”上游服务器”

  1. 打开 v2rayA 面板:通常是 http://127.0.0.1:2017

  2. 点击”创建 (Create)”

    • 协议 (Protocol):选择 Socks5(或者你在 naive 中设置的协议)。

    • 地址 (Address):填写 127.0.0.1

    • 端口 (Port):填写 1080(必须与 naive 的 listen 端口一致)。

    • 别名 (Alias):可以随意,比如Naive-Local-Upstream

  3. 保存

此时,v2rayA 就把运行在你电脑本地的 naive 进程当作了一个普通的”服务器”。

4. 开启分流与系统代理

  1. 选择服务器:在列表中点击你刚刚创建的 Naive-Local-Upstream

  2. 点击左上角的”就绪 (Ready)” 按钮使其变蓝。

  3. 设置分流规则(点击右上角”设置”):

    • 透明代理 / 系统代理:选择”开启”。

    • 规则设置

      • 绕过局域网和大陆 (Bypass LAN and Mainland):这是最推荐的模式,可以保证国内流量直连,国外流量走 NaiveProxy。
  4. 点击”保存并应用 (Save and Apply)“

5. 注意事项与排查

  • 端口冲突:确保 v2rayA 自身的运行端口(如 20172, 20171 等)不要与 naive 的 1080 端口冲突。

  • 启动顺序:建议先启动 naive 核心,再在 v2rayA 中点击”连接”,否则 v2rayA 会因为找不到上游代理而报错。

  • 权限问题:v2rayA 开启透明代理需要 root 权限,在 Ubuntu 上请确保 v2rayA 服务是以 sudo 权限运行的。

6. 创建自动化启动脚本

在本地 Ubuntu 电脑上创建一个脚本文件(例如 start_naive.sh):

nano ~/start_naive.sh

粘贴以下内容(请根据你的实际路径修改):

#!/bin/bash

## --- 配置区域 ---
## NaiveProxy 程序和配置文件的绝对路径
NAIVE_BIN="$HOME/naiveproxy/naive"
NAIVE_CONFIG="$HOME/naiveproxy/config.json"
## 检查 Naive 监听的端口 (需与 config.json 一致)
LOCAL_PORT=1080
## --- --- --- ---

## 1. 检查 naive 是否已经在运行
if pgrep -x "naive" > /dev/null
then
    echo "[+] NaiveProxy 已经在运行中。"
else
    echo "[!] NaiveProxy 未启动,正在尝试后台启动..."
    # 使用 nohup 在后台运行,并将日志记录到 naive.log
    nohup $NAIVE_BIN $NAIVE_CONFIG > ~/naive.log 2>&1 &
    sleep 2
    if pgrep -x "naive" > /dev/null
    then
        echo "[+ ] NaiveProxy 成功启动!(PID: $(pgrep -x "naive"))"
    else
        echo "[-] 启动失败,请检查 ~/naive.log 中的报错信息。"
        exit 1
    fi
fi

## 2. 提示 v2rayA 对接信息
echo "-------------------------------------------------------"
echo "本地代理已就绪:SOCKS5://127.0.0.1:$LOCAL_PORT"
echo "现在请前往 v2rayA 面板 (http://127.0.0.1:2017):"
echo "1. 点击 'Import' 或 '新建'。"
echo "2. 添加一个 Socks5 类型服务器,地址 127.0.0.1,端口 $LOCAL_PORT。"
echo "3. 在 v2rayA 中连接该服务器并开启 '透明代理'。"
echo "-------------------------------------------------------"

赋予执行权限:

chmod +x ~/start_naive.sh

7. 彻底清理建议

如果你以后想停止这个方案:

  • 停止代理:在 v2rayA 界面点击”停止”。

  • 杀死后台核心:运行 pkill naive