Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…argo into main
  • Loading branch information
wy580477 committed Jan 17, 2023
2 parents fd534e9 + e97ed44 commit d2ac851
Showing 1 changed file with 71 additions and 13 deletions.
84 changes: 71 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@

## 概述

本项目用于在 PaaS 平台上部署 Vmess WebSocket 和 Trojan Websocket 协议,支持 WS-0RTT 降低延迟,并可以启用 Cloudflare Argo 隧道。支持 CI/CD 和拉取容器镜像两种部署方式。支持直接访问.onion tor 网络域名。
本项目用于在 PaaS 平台上部署 Vmess WebSocket 和 Trojan Websocket 协议,并可以启用 Cloudflared 隧道。

支持 WS-0RTT 降低延迟,Xray 核心客户端在 Websocket 路径后加上 ?ed=2048 即可启用。

支持 CI/CD 和拉取容器镜像两种部署方式。支持直接访问.onion tor 网络域名。

部署完成后,每次容器启动时,xray 和 Loyalsoldier 路由规则文件将始终为最新版本。

Expand All @@ -28,15 +32,32 @@

**请勿使用本仓库直接部署**

**Heroku 部署方法**
<details>
<summary><b>Heroku 部署方法</b></summary>

1. 点击本仓库右上角Fork,再点击Create Fork。
2. 在Fork出来的仓库页面上点击Setting,勾选Template repository。
3. 然后点击Code返回之前的页面,点Setting下面新出现的按钮Use this template,起个随机名字创建新库。
4. 项目名称注意不要包含 `v2ray``heroku` 两个关键字(用户名以 `example` 为例,修改后的项目名以 `demo` 为例)
5. 登陆heroku后,浏览器访问 dashboard.heroku.com/new?template=<https://github.com/example/demo>

</details>

<details>
<summary><b>支持 CI/CD 平台(Render,Northflank,Doprax等)部署方法</b></summary>

1. 点击本仓库右上角Fork,再点击Create Fork。
2. 在Fork出来的仓库页面上点击Setting,勾选Template repository。
3. 然后点击Code返回之前的页面,点Setting下面新出现的按钮Use this template,起个随机名字创建新库。
4. 项目名称注意不要包含 `v2ray``heroku` 两个关键字(用户名以 `example` 为例,修改后的项目名以 `demo` 为例)
5. 登陆heroku后,浏览器访问 dashboard.heroku.com/new?template=<https://github.com/example/demo>
4. 项目名称注意不要包含 `v2ray``xray` 等关键字。
5. 在 PaaS 平台管理面板中连接你新建立的 github 仓库。
6. 按下文变量部分设置所需的变量,如果需要设置内部 HTTP 端口,默认为3000,也可以自行设置 PORT 变量修改。
7. 然后部署即可。

</details>

<details>
<summary><b>支持拉取容器镜像 PaaS 平台部署方法</b></summary>
<summary><b>支持拉取容器镜像 PaaS 平台(Koyeb,Northflank等)部署方法</b></summary>

1. 点击本仓库右上角Fork,再点击Create Fork。
2. 在Fork出来的仓库页面上点击Setting,勾选Template repository。
Expand All @@ -47,6 +68,43 @@
7. 点击页面右侧 Package settings,在页面最下方点击 Change visibility,选择 public 并输入 package 名称以确认。
8. 容器镜像拉取地址在 package 页面 docker pull 命令示例中,其它部署步骤请参阅具体平台文档。需要设置的环境变量见下文,内部监听端口默认为3000,也可自行设置 PORT 环境变量更改。

</details>

<details>
<summary><b>Patr 部署方法</b></summary>

1. 点击本项目网页上部 Code 按钮,再点击 Create codespace on main。

![image](https://user-images.githubusercontent.com/98247050/212817236-c5a882b1-6b5b-4a6f-b8c1-c702664a9ab1.png)

2. 点击 Patr 管理面板左侧 Docker Repository,建立新 Repo。

![image](https://user-images.githubusercontent.com/98247050/212814426-befa43d4-2e37-4147-95d5-4104f80968b8.png)

3. 点击进入 Patr 新建立的 Repo,页面最下方有三条命令:

![image](https://user-images.githubusercontent.com/98247050/212815117-37089ede-50a7-4c36-9872-bdface591071.png)

4. 在之前打开的 Codespace 网页中,点击终端,执行上图中的三条命令,中间需要输入 Patr 账户密码。

![image](https://user-images.githubusercontent.com/98247050/212815400-843f9fbf-cbac-435e-87df-01b502be3017.png)

5. 回到 Patr 网页,点击 Infrastructure > Deployment > Create Deployment,Name 随意,Image Details 选择刚才建立的 Repo,Region 选择 Singapore。

![image](https://user-images.githubusercontent.com/98247050/212815611-c6fc58b3-9b90-40c3-8234-86e64226f821.png)

6. 点击 NEXT STEP,Ports 设置为 3000,按下文变量部分设置好需设定的变量。

![image](https://user-images.githubusercontent.com/98247050/212816360-0df56cbf-2f05-4bf6-b677-965d699e3e0b.png)

7. 点击 NEXT STEP,将 Horizontal Scale 拉到最左侧,直到价格显示 Free,然后点击 CREATE。

![image](https://user-images.githubusercontent.com/98247050/212816479-3b10d285-8530-4732-945e-a25c0a52648a.png)

8. 点击 Infrastructure > Deployment,点击 START 即启动容器,点击 PUBLIC URL 获得服务域名。

![image](https://user-images.githubusercontent.com/98247050/212816900-7a3c4614-e7c3-41c1-8028-f35539280e2a.png)

</details>

### 变量
Expand All @@ -58,8 +116,8 @@
| `VmessUUID` | `ad2c9acd-3afb-4fae-aff2-954c532020bd` | Vmess 用户 UUID,用于身份验证,务必修改,建议使用UUID生成工具 |
| `SecretPATH` | `/mypath` | Websocket代理路径前缀,务必修改为不常见字符串 |
| `PASSWORD` | `password` | Trojan 协议密码,务必修改为强密码 |
| `ArgoDOMAIN` | | Argo 隧道域名,保持默认空值为禁用 Argo 隧道 |
| `ArgoJSON` | | Argo 隧道 JSON 文件 |
| `ArgoDOMAIN` | | Cloudflared 隧道域名,保持默认空值为禁用 Argo 隧道 |
| `ArgoJSON` | | Cloudflared 隧道 JSON 文件 |

## 客户端相关设置

Expand All @@ -75,7 +133,7 @@
```
4. 使用IP地址连接时,无tls加密配置,需要在 host 项指定域名,tls加密配置,需要在sni(serverName)项中指定域名。
5. Vmess 协议全程加密,安全性更高。Trojan 协议自身无加密,依赖外层tls加密, 数据传输路径中如果 tls 被解密,原始传输数据有可能被获取。
6. Xray 核心的客户端直接在路径后面加?ed=2048即可启用 WS-0RTT,v2fly 核心需要在配置文件中添加如下配置:
6. Xray 核心的客户端直接在路径后面加 ?ed=2048 即可启用 WS-0RTT,v2fly 核心需要在配置文件中添加如下配置:
```
"wsSettings": {
Expand All @@ -102,16 +160,16 @@
以下三种方式均可以将应用接入 CloudFlare,在某些网络环境下配合cloudflare优选ip可以提速。
1. 为应用绑定域名,并将该域名接入 CloudFlare (需要 Heroku 信用卡认证账号)
2. 通过 CloudFlare Workers 反向代理,workers.dev域名被sni阻断,无法使用tls协议链接,可以使用80端口无tls协议连接。
3. 通过 Argo 隧道接入 CloudFlare
1. 为应用绑定 Cloudflare 上托管的域名。
2. 通过 CloudFlare Workers 反向代理,workers.dev域名被sni阻断,无法使用tls协议链接,可以使用80端口无tls协议连接。也可以使用 Workers Routes 功能,绑定自己的域名。
3. 通过 Cloudflared 隧道接入 CloudFlare
### Cloudflare Workers反代
- [设置Cloudflare Workers服务](https://github.com/wy580477/PaaS-Related/blob/main/CF_Workers_Reverse_Proxy_chs.md)
- 代理服务器地址/host域名/sni(serverName)填写上面创建的Workers service域名。
### Argo 隧道配置方式
### Cloudflared 隧道配置方式
1. 前提在 Cloudflare 上有一个托管的域名,以example.com为例
2. 下载 [Cloudflared](https://github.com/cloudflare/cloudflared/releases)
Expand All @@ -120,4 +178,4 @@
5. 运行 cloudflared tunnel route dns 隧道名 argo.example.com, 生成cname记录,可以随意指定二级域名。
6. 重复运行上面两步,可配置多个隧道。
7. 部署时将 JSON 隧道配置文件内容、域名填入对应变量。
8. Heroku Dyno 休眠后,无法通过 Argo 隧道唤醒,保持长期运行建议使用 uptimerobot 之类网站监测服务定时 http ping xxx.herokuapp.com 或者 Cloudflare Workers 反代域名的地址。
8. Heroku Dyno 休眠后,无法通过 Cloudflared 隧道唤醒,保持长期运行建议使用 uptimerobot 之类网站监测服务定时 http ping xxx.herokuapp.com 或者 Cloudflare Workers 反代域名的地址。

0 comments on commit d2ac851

Please sign in to comment.