开源】你们要的一键脚本部署naiveproxy

基于docker的naiveproxy一键部署脚本

GitHub: https://github.com/RayWangQvQ/naiveproxy-docker

AMD/Debian我自己测试通过,回复里有朋友反馈ARM也是测试通过的。

- [1. 说明](#1-说明)
- [2. 预备工作](#2-预备工作)
- [3. 部署服务端](#3-部署服务端)
- [4. 客户端](#4-客户端)
- [5. 自定义配置](#5-自定义配置)
- [6. 版本变更](#6-版本变更)
- [7. 常见问题](#7-常见问题)
- [7.1. 端口可以自定义吗](#71-端口可以自定义吗)

## 1. 说明

镜像使用官方代码生成,利用`GitHub Actions`构建并上传到`DockerHub`。

Dockerfile:[Dockerfile](Dockerfile)
DockerHub: https://hub.docker.com/repository/docker/zai7lou/naiveproxy-docker/general

## 2. 预备工作

  • 一个域名
  • 域名已DNS到当前服务器ip
  • 服务器安装好docker环境

没有docker的可以使用下面命令进行安装:

curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

不需要自己生成https证书,caddy会自动生成。

## 3. 部署服务端

一键安装脚本:

# create a dir
mkdir -p ./naive && cd ./naive

# install
bash <(curl -sSL https://raw.githubusercontent.com/RayWangQvQ/naiveproxy-docker/main/install.sh)

当不指定参数时,该脚本是互动式的,运行后会提示输入相关配置信息,输入后回车即可。

当然,你也可以像下面那样,直接将参数拼接好后立即执行:

# create a dir
mkdir -p ./naive && cd ./naive 

# install
curl -sSL -f -o ./install.sh https://raw.githubusercontent.com/RayWangQvQ/naiveproxy-docker/main/install.sh && chmod +x ./install.sh && ./install.sh -t demo.test.tk -m zhangsan@qq.com -u zhangsan -p 1qaz@wsx --verbose

参数说明:

    • - `-t`:host,你的域名,如`demo.test.tk`
      - `-o`: cert-mode,证书模式,1为Caddy自动颁发,2为自己指定现有证书
      - `-c`: cert-file,证书文件绝对路径,如`/certs/test2.zai7lou.ml.crt`
      - `-k`, cert-key-file,证书key文件绝对路径,如`/certs/test2.zai7lou.ml.key`
      • - `-m`:mail,你的邮箱,用于自动颁发证书,如`

    zhangsan@qq.com

      - `-w`: http-port,http端口,默认80
      - `-s`: https-port,https端口,默认443
      - `-u`:user,proxy的用户名
      - `-p`:pwd,proxy的密码
      - `-f`:fakeHost,伪装域名,默认`https://demo.cloudreve.org`
      - `--verbose`,输出详细日志
      - `-h`:help,查看参数信息

容器run成功后,可以通过以下语句查看容器运行日志:

docker logs -f naiveproxy

`Ctrl + C` 可以退出日志追踪。

第一次运行会自动颁发证书,日志可能会先ERROR飘红,别慌,等一会。

如果最后日志出现`certificate obtained successfully`字样,就是颁发成功了,可以去部署客户端了。

如果颁发证书一直不成功,请检查80端口和443端口是否开放、是否被占用。

部署成功后,浏览器访问域名,会展示伪装站点:

## 4. 客户端

很多教程,就不说了。

|  平台   | 客户端  |
| :----:  | :----: |
|  Win    | V2RayN/Nekoray |
| Linux   | Nekoray |
| MacOS   | Nekoray |
| Android | SagerNet |
| iOS     | Shadowrocket |

## 5. 自定义配置

Caddy的配置文件`Caddyfile`已被挂载到宿主机的[./data/Caddyfile](data/Caddyfile),想要自定义配置,比如:

- 添加多用户
- 修改proxy的用户名和密码
- 更改端口
- 修改伪装站点的host

等等,都可以直接在宿主机修改该文件:

vim ./data/Caddyfile

修改完成并保存成功后,让Caddy热加载配置就可以了:

docker exec -it naiveproxy /app/caddy reload --config /data/Caddyfile

举个栗子,多用户可以直接添加`forward_proxy`,像这样:

:443, demo.test.tk #你的域名
tls zhangsan@qq.com #你的邮箱
route {
        forward_proxy {
                basic_auth zhangsan 1qaz@wsx #用户名和密码
                hide_ip
                hide_via
                probe_resistance
        }
        forward_proxy {
                basic_auth lisi 1234 #用户名和密码
                hide_ip
                hide_via
                probe_resistance
        }
        reverse_proxy you.want.com {
                #伪装网址
                header_up Host {upstream_hostport}
        }
}

详细的配置语法可以参考Caddy的官方文档:https://caddyserver.com/docs/

P.S.我发现naiveproxy插件版地caddy,Caddyfile里不支持`demo.test.tk:443`的格式,必须像上面那样端口在域名前面,否则会报错。应该是适配有问题,需要注意下。

## 6. 版本变更

[CHANGELOG](CHANGELOG.md)

## 7. 常见问题
### 7.1. 端口可以自定义吗

如果使用现有证书,可以自定义;如果要Caddy自动颁发,必须占有80端口。

Caddy默认会占用80和443端口,用来管理证书,当前官方镜像并不支持更改默认端口,也就是一定需要占用80端口。

安装脚本可以选择证书模式,选择2使用现有证书,就可以不占用80和443端口了。


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据