Sirius
Sirius

目录

naive proxy 服务端搭建

使用了一段时间非常稳定, 记录一下以便于下次安装

部署 NaiveProxy 服务器需要结合 Caddy Web 服务器及其 forwardproxy 模块。NaiveProxy 的核心是利用 Chrome 的网络栈来伪装流量,使其看起来像普通的 HTTPS 流量,从而有效抵抗审查。

以下是部署 NaiveProxy 服务器的一般步骤:

如果之前通过 apt 安装了旧版本的 Go,最好先卸载。

sudo apt remove golang-go
sudo apt autoremove

访问 Go 官方下载页面,找到最新版本的 Linux 二进制包。通常文件名为 goX.Y.Z.linux-amd64.tar.gz

wget https://go.dev/dl/go1.25.3.linux-amd64.tar.gz
# 上述链接要替换为最新版本的链接

将下载的 tarball 文件解压到 /usr/local 目录。这是 Go 语言的推荐安装路径。

sudo tar -C /usr/local -xzf goX.Y.Z.linux-amd64.tar.gz
# 请将文件名替换为实际下载的文件名

解压后,Go 的可执行文件和库文件将位于 /usr/local/go 目录下。


为了在任何位置都能运行 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

添加完成后,保存并关闭文件。


要让配置立即生效,运行以下命令:

  • 全局配置

    source /etc/profile
  • 用户级配置

    source ~/.bashrc

或者,也可以简单地重启终端。


最后,运行以下命令来验证 Go 是否安装成功,并检查版本。

go version

可以看到类似 go version go1.25.3 linux/amd64 的输出.


NaiveProxy 依赖于 Caddy 的一个特殊版本,这个版本需要通过 xcaddy 工具来编译。

# 安装 xcaddy
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

你需要使用 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

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  
       }  
}

  1. 域名和端口test.cn 替换了原有的 example.com,Caddy 会在 443 端口上为该域名提供服务。

  2. TLS 证书tls me@test.cn 这一行让 Caddy 自动为你的域名申请并管理 Let’s Encrypt 证书。你需要将 me@test.cn 替换成你自己的邮箱地址,这是 Let’s Encrypt 证书申请时的联系邮箱。

  3. forward_proxy

    • basic_auth user pass:这是代理的用户名和密码。请务必将 userpass 修改为强度高的自定义用户名和密码。

    • hide_iphide_via:隐藏客户端 IP 和代理信息,增强隐蔽性。

    • probe_resistance:启用探针抵抗,防止被主动探测。

  4. file_server

    • root /var/www/html:这让 Caddy 同时充当一个普通 Web 服务器,当没有代理请求时,它会提供 /var/www/html 目录下的静态网页,这有助于伪装你的服务器。
  5. 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 服务来应用更改。

配置完成后,你可以启动 Caddy 服务,并将其设置为开机自启。

# 直接运行
caddy run -c caddyfile
# 后台运行
caddy start -c caddyfile
# 停止后台
caddy stop

服务器部署完成后,你需要配置客户端来连接你的 NaiveProxy 服务器。客户端的配置通常非常简单,只需填写以下信息:

  • 协议: HTTPS

  • 服务器地址: https://yourUsername:yourStrongPassword@your.domain.com:443

  • 用户名: yourUsername

  • 密码: yourStrongPassword