naive proxy 服务端搭建
使用了一段时间非常稳定, 记录一下以便于下次安装
部署 NaiveProxy 服务器需要结合 Caddy Web 服务器及其 forwardproxy 模块。NaiveProxy 的核心是利用 Chrome 的网络栈来伪装流量,使其看起来像普通的 HTTPS 流量,从而有效抵抗审查。
以下是部署 NaiveProxy 服务器的一般步骤:
0.首先先配置新版本golang
1. 卸载旧版本(可选)
如果之前通过 apt 安装了旧版本的 Go,最好先卸载。
sudo apt remove golang-go
sudo apt autoremove
2. 下载 Go 安装包
访问
Go 官方下载页面,找到最新版本的 Linux 二进制包。通常文件名为 goX.Y.Z.linux-amd64.tar.gz。
wget https://go.dev/dl/go1.25.3.linux-amd64.tar.gz
# 上述链接要替换为最新版本的链接
3. 解压安装包
将下载的 tarball 文件解压到 /usr/local 目录。这是 Go 语言的推荐安装路径。
sudo tar -C /usr/local -xzf goX.Y.Z.linux-amd64.tar.gz
# 请将文件名替换为实际下载的文件名
解压后,Go 的可执行文件和库文件将位于 /usr/local/go 目录下。
4. 配置环境变量
为了在任何位置都能运行 Go 命令,您需要将 Go 的 bin 目录添加到您的 PATH 环境变量中。
永久配置
-
全局配置 (对所有用户生效):编辑
/etc/profile文件。sudo nano /etc/profile -
用户级配置 (仅对当前用户生效):编辑主目录下的
.bashrc或.zshrc文件(取决于使用的 shell)。nano ~/.bashrc
在文件末尾添加以下两行:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
添加完成后,保存并关闭文件。
5. 应用环境变量
要让配置立即生效,运行以下命令:
-
全局配置
source /etc/profile -
用户级配置
source ~/.bashrc
或者,也可以简单地重启终端。
6. 验证安装
最后,运行以下命令来验证 Go 是否安装成功,并检查版本。
go version
可以看到类似 go version go1.25.3 linux/amd64 的输出.
1. 安装 xcaddy
NaiveProxy 依赖于 Caddy 的一个特殊版本,这个版本需要通过 xcaddy 工具来编译。
# 安装 xcaddy
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
2. 编译 Caddy 并添加 forwardproxy 模块
你需要使用 xcaddy 来编译 Caddy,并在编译时将 NaiveProxy 提供的 forwardproxy 模块加入其中。
~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive
这会在你的当前目录下生成一个名为 caddy 的可执行文件。
可选 : 你可以将其移动到系统路径中,以便全局使用。
sudo mv caddy /usr/bin/caddy
3. 配置 Caddyfile
Caddy 的配置文件通常位于 /etc/caddy/Caddyfile。你需要创建或修改这个文件,以配置 NaiveProxy。
当然也可以不放在etc 都在根目录也没问题
请参考以下使用域名 test.cn 修改后的配置示例:
:443, test.cn
tls me@test.cn
route {
forward_proxy {
basic_auth username passwd1234
hide_ip
hide_via
probe_resistance
}
reverse_proxy https://devdocs.io {
header_up Host {upstream_hostport}
}
file_server {
root /var/www/html
}
}
配置说明
-
域名和端口:
test.cn替换了原有的example.com,Caddy 会在 443 端口上为该域名提供服务。 -
TLS 证书:
tls me@test.cn这一行让 Caddy 自动为你的域名申请并管理 Let’s Encrypt 证书。你需要将me@test.cn替换成你自己的邮箱地址,这是 Let’s Encrypt 证书申请时的联系邮箱。 -
forward_proxy:
-
basic_auth user pass:这是代理的用户名和密码。请务必将user和pass修改为强度高的自定义用户名和密码。 -
hide_ip和hide_via:隐藏客户端 IP 和代理信息,增强隐蔽性。 -
probe_resistance:启用探针抵抗,防止被主动探测。
-
-
file_server:
root /var/www/html:这让 Caddy 同时充当一个普通 Web 服务器,当没有代理请求时,它会提供/var/www/html目录下的静态网页,这有助于伪装你的服务器。
-
reverse_proxy
- 反代的页面, 和file_server保留一个即可
配置完成后,请确保你的服务器防火墙已开放 80 和 443 端口,并且域名 test.cn 的 DNS A 记录已正确解析到你的服务器 IP 地址。
如果你是首次使用 Caddy,可以通过运行以下命令来测试配置文件的语法是否正确:
# 格式化配置
caddy fmt caddyfile --overwrite
# 检查配置
caddy validate --config /path/to/your/Caddyfile
如果验证通过,你可以使用 caddy 命令来重新加载配置,或者重启 Caddy 服务来应用更改。
4. 启动 Caddy 服务
配置完成后,你可以启动 Caddy 服务,并将其设置为开机自启。
# 直接运行
caddy run -c caddyfile
# 后台运行
caddy start -c caddyfile
# 停止后台
caddy stop
5.客户端配置
服务器部署完成后,你需要配置客户端来连接你的 NaiveProxy 服务器。客户端的配置通常非常简单,只需填写以下信息:
-
协议: HTTPS
-
服务器地址:
https://yourUsername:yourStrongPassword@your.domain.com:443 -
用户名:
yourUsername -
密码:
yourStrongPassword