ZQC's Blog

NaïveProxy 搭建过程

naiveproxy 是非常不错的伪装代理,用来富强是非常好的一个选择,除了现在客户端应用比较少这个缺点以外

项目地址

一、安装 go

wget https://go.dev/dl/go1.19.3.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.3.linux-amd64.tar.gz
# export PATH=$PATH:/usr/local/go/bin
echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
source $HOME/.profile
go version # 查看 go 指令是否能正常运行

二、编译 caddy

mkdir naive && cd naive
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive

三、配置文件

:443, example.com # 修改网址,已经提前指向本机
tls [email protected]
route {

  forward_proxy {
    basic_auth username password # 修改用户名和密码
    hide_ip
    hide_via
    probe_resistance
  }
  reverse_proxy  https://demo.cloudreve.org  { # 伪装网址
   header_up  Host  {upstream_hostport}
   header_up  X-Forwarded-Host  {host}
  }
}

四、配置 systemd 开机自启

参考

chmod +x caddy
mv caddy /usr/bin/
 
mkdir /etc/caddy
mv Caddyfile /etc/caddy/
 
groupadd --system caddy
useradd --system \
    --gid caddy \
    --create-home \
    --home-dir /var/lib/caddy \
    --shell /usr/sbin/nologin \
    --comment "Caddy web server" \
    caddy

五、在 /etc/systemd/system/ 下新增 caddy.service

[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target

[Service]
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

保存文件后,启动服务

systemctl daemon-reload
systemctl enable caddy
systemctl start caddy

检查服务状态

systemctl status caddy

重载配置

systemctl reload caddy

五、客户端配置

下载地址 下载对应的包解压后,修改 config.json 后,运行主程序就行

默认配置地址是 https://user:[email protected]quic://user:[email protected] 是用 quic 协议的写法

iOS 用小火箭直接就可以配置,Windows 也可以用 v2rayN 的客户端,不过 naiveproxy 自定义配置好像有一些 bug 就不折腾这种配置方式了。我的其他设备是由软路由通过 vmess 到电脑 v2rayN 再从 socks5 到 naiveproxy 客户端的,之所以设置软路由走电脑的客户端是为了切换方便,因为软路由是在路由器上的,路由器是 100 多块钱买的红米 AC2100,性能真的不太行,每次打开软路由的页面都非常的慢,体验很差,加之前段时间封地厉害可能需要经常来切换节点,于是换成了电脑来切换节点,当然这台电脑是被排除在软路由的代理之外的。

用 v2rayN 是为了它的分流功能,如果出现了断流问题就重启一下 naiveproxy 服务就好。