搭建NaiveProxy及使用记录

在 Ubuntu 上搭建 NaiveProxy 的核心思路是:在服务端使用带有 forwardproxy 插件的 Caddy 服务器作为前端,在客户端使用 NaiveProxy 核心进行连接。

由于 NaiveProxy 的安全性极高,它要求服务端 Caddy 必须具备特定的补丁,因此我们需要通过 xcaddy 手动编译。

第一阶段:服务端搭建 (VPS)

1. 准备工作

  • 一台 Ubuntu VPS(建议 20.04/22.04/24.04)。

  • 一个域名:将域名的 A 记录解析到你的 VPS IP。

  • 开启 BBR 加速(提升网络性能):

echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

2. 安装 Go 环境与编译 Caddy

NaiveProxy 需要特殊版本的 Caddy,官方仓库的版本不支持,另外安装Go时请最好直接安装最新版本,用以满足后续的编译需求。

## 更新系统
sudo apt update && sudo apt upgrade -y
## 安装 Go 语言
wget https://go.dev/dl/go1.25.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.25.5.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:~/go/bin' >> ~/.bashrc
source ~/.bashrc
## 安装 xcaddy (编译工具)
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
## 开始编译带有 Naive 插件的 Caddy
xcaddy build --with github.com/caddyserver/forwardproxy=github.com/klzgrad/forwardproxy@naive
## 将生成的 caddy 移动到系统路径
sudo cp caddy /usr/bin/
sudo setcap cap_net_bind_service=+ep /usr/bin/caddy

3. 配置 Caddyfile

创建并编辑配置文件:

sudo mkdir /etc/caddy
sudo nano /etc/caddy/Caddyfile

写入以下内容(请修改域名、邮箱、用户名和密码):

{
    order forward_proxy before file_server
}
:443, 你的域名.com {
    tls 你的邮箱@gmail.com
    forward_proxy {
        basic_auth 你的用户名 你的密码
        hide_ip
        hide_via
        probe_resistance
    }
    # 伪装站:当别人直接访问你的域名时显示的内容
    file_server {
        root /var/www/html
    }
}

注:请确保 /var/www/html 目录下有一些简单的 HTML 文件作为伪装站。

4. 设置 Caddy 开机自启

创建 systemd 服务文件:

sudo nano /etc/systemd/system/caddy.service

粘贴以下代码内容:

[Unit]
Description=Caddy
After=network.target network-online.target
Requires=network-online.target

[Service]
User=root
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动服务:

sudo systemctl daemon-reload
sudo systemctl enable --now caddy

第二阶段:本地 Ubuntu 客户端配置

1. 下载 NaiveProxy 核心

在你的本地电脑上执行:

## 访问 GitHub 下载最新 Linux 版 (通常是 linux-x64)
## 假设当前版本为 v131.x
wget https://github.com/klzgrad/naiveproxy/releases/download/v131.0.6778.85-1/naiveproxy-v131.0.6778.85-1-linux-x64.tar.xz
tar -xvf naiveproxy-*.tar.xz
cd naiveproxy-*-linux-x64

2. 创建本地配置文件

在解压出的文件夹中创建 config.json

nano config.json

写入以下配置:

{
  "listen": "socks://127.0.0.1:1080",
  "proxy": "https://用户名:密码@你的域名.com",
  "log": ""
}

3. 运行客户端

./naive config.json

如果终端没有报错,说明客户端已启动,并正在本地 1080 端口监听 SOCKS5 代理。