搭建富强Naive并使用macOS的Qv2ray

2022-12-03 Views 技术857字4 min read

富强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

EOF