GithubHelp home page GithubHelp logo

docker-caddy-v2ray's Introduction

简介

以前部署 ss 的时候,三行命令就可以部署一台 ss server 服务器,超级方便。

现在,喜欢上了 V2ray, V2ray 可以使用 WebSocket + TLS + Web + CDN 的方式,将流量伪装成 HTTPS 流量,同时还能使用 CloudFlare 的免费 CDN,这样就再也不怕自己的 IP 被屏蔽的问题了。

但是配置 V2ray 的 WebSocket + TLS + Web + CDN 步骤太多,而且,稍为不注意还容易出错,所以为了方便搭建,使用 Shell 基于 Docker 做了一个一键部署脚本。

脚本功能

初始化 Server

  1. 设置 Server 的 DNS 为 8.8.8.8 和 8.8.4.4
  2. 安装常用工具: vim mosh dnsutils net-tools mlocate wget
  3. 修改 SSH 端口,禁止密码登陆(可选)
  4. 安装 docker 和 docker-compose
  5. 安装 ufw,配置防火墙端口

注意: 如果有修改 SSH 端口,脚本会自动开放端口,但是最好还是检查一下防火墙。

生成 V2Ray 配置

V2Ray 可以根据提示生成三种连接方式:

1. Shadowsocks(SS)

端口 : 默认 39832
密码 : 随机 24 长度字符串。
加密方式 : chacha20-ietf-poly1305

2. V2Ray tcp 直连

端口 : 默认 37849
UUID : 自动生成

3. V2Ray WebSocket + TLS + Web + CDN(CloudFlare),

域名 : 自行配置
端口 : Caddy 绑定 80 和 443(不能修改)
UUID : 自动生成

依赖环境

Debian 9+ / Ubuntu 16.04 + (测试通过,可用)
CentOS 7+ (没有测试,如果有问题,请提交到 Issue)

准备工作

如果使用 SS 和 tcp 直接, 只需要购买一个 VPS。

如果需要使用 WebSocket + TLS + Web + CDN ,需要购买域名和注册 CloudFlare 账号。

  1. 购买一个域名,找个 xxxx.com ,购买一个自己的域名.
  2. 因为要使用 CloudFlare 的 CDN,去 https://www.cloudflare.com/ 注册一个账号,然后添加自己域名到 CloudFlare。CloudFlare 会列出两个 NameServer 需要配置到自己购买域名. namecheap-set-custom-ns 参考:CloudFlare免费CDN加速使用方法
  3. 登录 CloudFlare, 选中一个域名,然后找到右下角有一个 <Get your API token>, 点击下面的 <Get your API token>,记录下这个值和 CloudFlare 的登录邮箱 Mail。

脚本使用

第一次安装

根据不同的系统执行下面的命令:

# Debian / Ubuntu
apt -y update && apt -y upgrade && apt install -y curl && curl -s -L "https://git.io/JeZQj" > caddy-v2ray-docker.sh && bash caddy-v2ray-docker.sh -i -c

# REHL / CentOS
yum -y update && yum install -y curl && curl -s -L "https://git.io/JeZQj" > caddy-v2ray-docker.sh && bash caddy-v2ray-docker.sh -i -c

说明:

命令会自动下载一个脚本保存为 caddy-v2ray-docker.sh. 脚本接受两个参数:

参数 是否必须 是否有值 说明
-i 是否初始化 Server
-c 是否重新配置 V2Ray

如果不加参数表示不执行相应的操作。

重启

不加参数运行脚本即可

bash caddy-v2ray-docker.sh

查看日志

启动日志

查看容器的启动日志

docker logs v2ray
docker logs caddy

应用日志

应用的日志在当前目录的 log 目录下

备注

1. 为什么需要 CloudFlare Global API Key ?

使用了 CloudFlare 后,Caddy 使用 acme 申请的 HTTPS 证书无法续签。

Caddy 为了保证证书不过期,会隔一段时间撤销之前的证书申请一个新的证书。签发证书的机构 Let's Encrypt 为了验证你对网站的所有权,会验证一下域名指向的 IP 地址和发出申请的 IP 地址是否相同。而 Cloudflare 的 name server 隐藏了你原先的服务器 IP,所以自然是对不上的。

caddy-acme-failed

所以,需要使用 Caddy 的 CloudFlare 插件。

docker-caddy-v2ray's People

Contributors

kidkuti avatar yuanmomo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.