搭建富强Naive并使用macOS的Qv2ray
富强Naive搭建:
系统环境:Oracle甲骨文云,x86,Ubuntu 22.04.1 LTS
1、放行端口,包括服务面板和SSH里2个地方的端口,见https://xuconnery.github.io/post/r_Ea4zHWp/
2、编译安装caddy和Naive
apt install golang-go
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
~/go/bin/xcaddy build --with github.com/caddyserver/forwardproxy@caddy2=github.com/klzgrad/forwardproxy@naive
如果第二条指令执行出错,可以尝试执行go env -w GO111MODULE=on 再重试,还不行的话请自行搜索升级go版本方法。
倒数第2步是:
2022/12/03 05:37:29 [INFO] exec (timeout=0s): /usr/bin/go build -o /home/ubuntu/caddy -ldflags -w -s -trimpath
这里要等几分钟,不要关闭SSH,然后就会显示:
2022/12/03 05:44:08 [INFO] Build complete: ./caddy
2、Caddyfile配置
进入sftp,会看到编译好的caddy文件:
然后右键新建文件:Caddyfile ,注意大小写不要错,然后右键编辑:
:443, naive.buliang0.tk #你的域名
tls example@example.com #你的邮箱
route {
forward_proxy {
basic_auth user pass #用户名和密码
hide_ip
hide_via
probe_resistance
}
#支持多用户
forward_proxy {
basic_auth user2 pass2 #用户名和密码
hide_ip
hide_via
probe_resistance
}
reverse_proxy https://demo.cloudreve.org { #伪装网址
header_up Host {upstream_hostport}
header_up X-Forwarded-Host {host}
}
}
前台运行caddy,以便于看到证书申请的过程和报错
./caddy run
2022/12/03 05:59:21.754 INFO tls.obtain certificate obtained successfully {"identifier": “dfxxxc.net"}
2022/12/03 05:59:21.754 INFO tls.obtain releasing lock {"identifier": "2dxxxxxc.net"}
2022/12/03 05:59:44.033 ERROR http.handlers.reverse_proxy aborting with incomplete response {"error": "write tcp 10.0.0.218:443->16xxxx.125.219:35334: write: connection reset by peer"}
倒数第3行,会显示certificate obtained successfully,就表示证书OK了,最后报了个错,不用管。这个时候访问自己的域名,会跳转到反代的伪装网站。
然后Ctrl+C退出ssh,此时连上的Naive会立刻断开,表示Naive服务也停了。
重新连上ssh,然后用后台运行的命令,这样关闭ssh就不会关闭咯:
后台运行caddy:
./caddy start
停止caddy:
./caddy stop
重载配置:
./caddy reload
到此,Naive的服务端就OK了。接下来是macOS下的客户端连接。
macOS的Qv2ray连接Naive服务端
1、安装so文件
https://github.com/Qv2ray/QvPlugin-NaiveProxy ,点击“打开本地插件目录”,将so文件放进去,具体地址为/Library/Preferences/qv2ray/plugins
2、安装Naive核心执行文件
https://github.com/klzgrad/naiveproxy ,放到/Applications/qv2ray.app/Contents/MacOSnaiveproxy/文件夹去,
注意,路径里,要加上naive这个核心执行文件,不然“Test Run”会不成功。
问:是否需要更新服务器端版本?
答:naiveproxy对服务端一般没有更新要求,如果对caddy其他功能有要求可以自行评估更新
服务端性能优化
经过搭建后,发现同样VM.Standard.E2.1.Micro(虚拟机, 1 core OCPU, 1 GB memory, 0.48 Gbps network bandwidth),而且ping值还要小的机器,速度比EasyTrojan搭建的,要慢很多。
EasyTrojan搭建的,搭建完就能轻松跑到20w,但是Naive跑到3w都很勉强。
经过如下调校后,速度可以达到15w。
使用 BBR 拥塞控制
bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
sysctl -p
关闭 tcp_slow_start_after_idle
sudo sysctl -w net.ipv4.tcp_slow_start_after_idle=0
(仅限服务器)考虑设置 tcp_notsent_lowat
sudo sysctl -w net.ipv4.tcp_notsent_lowat=16384
参考:
https://bulianglin.com/archives/naive.html
https://www.youtube.com/watch?v=F2VsjS6fybs
https://asiavp.net/guide/mac-os/naiveproxy/
https://github.com/klzgrad/naiveproxy/wiki/Performance-Tuning
https://www.scwcd.cn/archives/37.html