|
经过几次某会,某事,封的情况来看,影响最小的还是这个协议,不能说没有,但是从自己使用情况来看,还是挺稳定的,毕竟从特征来看,确实和真实的一样了。
00:以下部署成功环境由Ubuntu22.04 LTS Server+root管理员用户权限测试通过 ebian家族系的应该都通用,一键安装好docker:curl -sSL https://get.daocloud.io/docker | sh
01:下载镜像:docker pull pocat/naiveproxy
02: 运行镜像的容器前,提前创建目录:mkdir -p /etc/naiveproxy /var/www/html /var/log/caddy
03:运行镜像的容器前,提前创建和修改Caddyfile Web服务器的配置文件如下(推荐配置):
cat > /etc/naiveproxy/Caddyfile <<EOF
{
admin off
log {
output file /var/log/caddy/access.log
level INFO
}
servers :443 {
protocols h1 h2 h3
}
}
:80 {
redir https://{host}{uri} permanent
}
:443, hostloc.com#修改为您的域名
tls ajeef@hostloc.com#修改到您的电子邮件地址
route {
forward_proxy {
basic_auth user_name ajeef#修改为你的用户名
hide_ip
hide_via
probe_resistance hostloc-ajeef-password#修改为秘密域,如:密码
}
file_server {
root /var/www/html
}
}
EOF
04:使用Caddyfile的文件来启动一个容器命令如下(因为使用host的网络模式所以VPS内有IPV6也一并支持):
docker run --network host --name naiveproxy -v /etc/naiveproxy:/etc/naiveproxy -v /var/www/html:/var/www/html -v /var/log/caddy:/var/log/caddy -e PATH=/etc/naiveproxy/Caddyfile --restart=always -d pocat/naiveproxy
05:一般容器启动了,会有提示一串哈希值例如:b4e0e3293394b09ccf4d0b752c747a4f1d3f0feb1549f0beb7e6ae88fdf09ee,除了用docker ps -a来查看刚才启动的容器,因为是host网络模式所以VPS系统本身的80和443肯定是被这个容器占用的,所以也可以用apt install net-tools -y先安装组件,再用netstat -tln和netstat -tln | grep 80或netstat -tln | grep 443来查看这2个端口是否被占用,State状态栏里80和443显示LISTEN就是已经占用并监听了,容器也就是成功了。
06:用一台VPS只运行一个科学上网协议,太浪费了,因为Caddy本身就是一个Web服务器,naive协议也只是修改了官方文件的一个模块使其更像是Web服务器本身的内核模块发出的协议包,所以它并不影响Web本身的功能,部署动态网站可能VPS配置低的不行,静态网站的还是搓搓有余的,毕竟Caddy和Nginx一样都是Go写的,在静态模式下速度是一致的,大差不差,所以像hexo和hugo等这些程序编译出来的html css静态资源可以直接放在/var/www/html里运行,还能起到伪装的作用,如果要同步静态资源自己git或者ftp都行。
07:当然还有一种是用naiveproxy本身的config.json配置文件来启动容器的方法,但是考虑到naiveproxy未来可能协议要升级,会更改配置里的信息,不一定向下兼容(职业病有这顾虑),所以这里就不例举了,直接用Caddy的官方配置方法更方便。
08:不建议用H3,H1.H2都可以,我自己用H2,H3其实走的是UDP不是TCP,虽然广播形式更快,没握手,但是国内对UDP的限制是死的,如果你一定要用,下载镜像是改成:pocat/naiveproxy:latest-uot
客户端,我就测试了
路由器:openwrt-passwallssplus;
Windows:V2rayN;
Android:SagerNet+SagerNet-naiveproxy插件
家境贫寒:没有MacOS和Iphone,但是MacOS应该支持 v2ray和Nekoray的,IOS也应该支持Shadowrocket |
|