Skip to content

Commit 1610ae7

Browse files
authored
Merge pull request zizifn#13 from zizifn/cloudflared-tunnel
Cloudflared tunnel
2 parents f343179 + 75cd980 commit 1610ae7

9 files changed

+53
-6
lines changed

.github/workflows/main.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ jobs:
3232
# docker_build_args: |
3333
# HD_UUID
3434
env:
35-
# 这是为了heroku,注意前缀有个HD,这是为了告诉heroku-deploy,这些变量需要传入到container 中。
36-
HD_UUID: ${{ secrets.HEROKU_V2RAY_UUID }} # UUID for v2ray user, 为了安全,一定要放入github action token中
35+
# 这是为了heroku,注意前缀有个HD,这是为了告诉heroku-deploy,这些变量需要传入到 container 中。
36+
HD_UUID: ${{ secrets.HEROKU_V2RAY_UUID }} # UUID for v2ray user, 为了安全,一定要放入 github action token 中
37+
HD_TUNNEL_TOKEN: ${{ secrets.HEROKU_TUNNEL_TOKEN }} # token for cloudflared tunnel
3738
NODE_ENV: production
3839
SECRET_KEY: ${{ secrets.MY_SECRET_KEY }}
3940
stop-start:

Dockerfile

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
FROM v2fly/v2fly-core:latest
22

3+
RUN wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O /root/cloudflared
4+
RUN chmod +x /root/cloudflared
35
ADD startup.sh /startup.sh
46
RUN chmod +x /startup.sh
57

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1818
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1919
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2020
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
21+
SOFTWARE.

README.md

+12-3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
- 利用 Github action 实现 重新部署/停止/启动。
1818
- **支持多app和多账户 重新部署/停止/启动。**
1919
- 利用 cloudflare CDN 进行加速。
20+
- **利用 [cloudflare tunnel](https://www.cloudflare.com/products/tunnel/) 进行加速。**
2021

2122
```text
2223
项目Dockerfile是基于V2fly 官方镜像制作。仅仅增加生产配置文件的脚本。重新部署就可以更新到最新的v2ray。
@@ -38,12 +39,16 @@
3839
| Name | Description |
3940
| ----------------- | ------------------------------------------ |
4041
| APP_NAME | 就是你 heroku 项目的名字 |
41-
| EMAIL | heroku 账户的 email |
42-
| HEROKU_API_KEY | heroku API key, 在 account 设置下可以找到 |
43-
| HEROKU_V2RAY_UUID | V2rayUUID |
42+
| EMAIL | heroku 账户的 email |
43+
| HEROKU_API_KEY | heroku API key,在 account 设置下可以找到 |
44+
| HEROKU_V2RAY_UUID | V2rayUUID |
45+
| HEROKU_TUNNEL_TOKEN | **可选** cloudflare tunnel 的 token |
46+
47+
HEROKU_TUNNEL_TOKEN 是可选项,可以忽略. 详细说明,请查看章节 《建立-cloudflare-tunnel-(可选)》
4448

4549
> 请务必生成新的 UUID。使用已有的 UUID 会使自己 V2ray 暴露在危险之下。
4650
51+
4752
PowerShell:
4853

4954
```powershell
@@ -120,6 +125,10 @@ addEventListener("fetch", (event) => {
120125
为 worker 选择速度更快的 IP。
121126
https://github.com/badafans/better-cloudflare-ip
122127

128+
## 建立 cloudflare tunnel (可选)
129+
130+
项目集成 cloudflare tunnel, 在配置 Secrets `HEROKU_TUNNEL_TOKEN` 之后生效。具体怎么配置,请查看 [cloudflare tunnel](./cloudflared-tunnel.md)
131+
123132
## 使用 Environments 实现 多账户/多app Secrets 管理
124133

125134
文档介绍: https://docs.github.com/en/actions/deployment/using-environments-for-deployment

cloudflared-tunnel.md

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Cloudflare Tunnel
2+
3+
## 申请 Cloudflare, 并且开通 https://dash.teams.cloudflare.com/
4+
5+
虽然免费,但是申请 zero trust 需要绑定信用卡。
6+
7+
需要一个**域名**,并且绑定到 Cloudflare。
8+
9+
## Cloudflare tunnels
10+
11+
![tunnels](./readme-data/tunnels.png)
12+
13+
## 保存 Token
14+
15+
在创建时候,可以在 Tunnels 的页面中找到 Token。
16+
![tunnels-token](./readme-data/tunnel-tokens.png)
17+
18+
## 添加域名
19+
20+
![tunnel-host-name](./readme-data/tunnel-host-name.png)
21+
22+
注意事项,
23+
24+
1. Service 配成自己 heroku 的名字, ***.herokuapp.com
25+
26+
2. HTTP Host Header
27+
把自己 heroku 的名字, ***.herokuapp.com,添加进入,很重要。
28+
29+
然后把 Token 配置到 Github Action `HEROKU_TUNNEL_TOKEN` 就可以。剩下的配置,运行在 herokuapp 的 Cloudflared 会获取。

readme-data/tunnel-host-name.png

94.5 KB
Loading

readme-data/tunnel-tokens.png

54.2 KB
Loading

readme-data/tunnels.png

4.92 KB
Loading

startup.sh

+6
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,10 @@ cat << EOF > /etc/v2ray/config.json
4949
EOF
5050

5151
# Run V2Ray
52+
if [[ $TUNNEL_TOKEN ]]; then
53+
echo 'has tunnel token, run cloudflared tunnel'
54+
/usr/bin/v2ray -config /etc/v2ray/config.json & /root/cloudflared tunnel --no-autoupdate run --token $TUNNEL_TOKEN
55+
else
5256
/usr/bin/v2ray -config /etc/v2ray/config.json
57+
fi
58+

0 commit comments

Comments
 (0)