参考 使用docker快速部署shadowsocks-libev+v2ray-plugin 和 V2Ray拒绝减速CDN,自选香港日本CDN节点两位的方法, 结合秋水提供的 ss-libev 和 v2ray 两个 dockers 用起来非常爽,全走CDN,不再阻断,速度尚可。总结一下
废话,可以不看
垃圾小鸡如何拯救(剁手党如何回本)?雪嫩的小白,如何有工程师的感觉? 经济不景气如何提振?看这里就对了
折腾了两天,基本实现想要的效果:docker 配置 ss+v2ray+emby ws+http+tls+CDN
。为了掩饰,我在aws的lightsail开了一个爱尔兰节点的小鸡,512内存,基本匹配市面垃圾小鸡。
Docker的有点就是一旦搭建好以后,可以随便折腾,配置文件保存到本地,换机分分钟
caddy 的优势是及其轻量,同时可以自动申请并续期证书,方便到家
但是现在有一个坑卡住了,就是caddy自动申请脚本,还是要到dns去添加txt记录,而教程里面是要到阿里云的dns去添加txt。所以不能自动。以本白现在的水平,搞不定了,期待高手出现。。。
除了这篇手动教程,还有很多选择,比如这篇面板教程,也非常方便。还有这篇,是我之前一直在用的一键脚本。在多数新装的vps上面都可以成功。本教程的目的就是一个:折腾
如果你对自己折腾出来的东西感到开心,不怕麻烦,那就继续
当然,自己折腾,把思路整理清楚了,基本上什么环境都可以适用,并且配置文件完全自己驾驭,想改什么都可以。不像用脚本,出了问题,出了换系统,换脚本之外,别无他法,相当无助
当然,教程还需要完善,也有很多错误,需要慢慢改
caddy配置文件里面有3个网站v2,ss,emby
按需使用,增减设置文件,开停相应docker即可
折腾开心哈
注意,教程里面的 邮箱信息 API 信息以及密码 UUID等 需要你自己更改,不要和教程的一毛一样
视频记录
干什么都有第一次,这个视频够简陋的了,打码就废了好长时间。机器也不行,小白难,穷小白难上加难
搞定CDN
##准备工作 lightsail的系统太操蛋,先dd个debian 9 用脚本
apt update
apt install curl screen zip nload nano -y
apt-get install -y xz-utils openssl gawk file
bash <(wget --no-check-certificate -qO- 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh') -d 9 -v 64 -a -firmware
等几分钟就可以root登陆了 密码是 MoeClub.org
直接上CDN,看这个视频,到这个网站添加域名。主域名,二级域名都行. 这里添加3个二级 分别是 sslbv v2ray 和 emby 记下CNAME,然后去dns服务商出添加cname,比如阿里云免费提供的dns解析 如下添加3个
安装一些必备的东西
apt update
apt install curl screen zip nload nano fuse -y
安装embyserver的部分参见之前的帖子,注意建立本地用户就行了,不需要连接账户登陆。因为我不知掉的原因,用emby账户无法走CDN加速。
安装caddy并申请证书
证书用caddy申请,参照这篇帖子,看到搞定cloudflare的 API KEY 即停。后面的申请不用acme.sh脚本。 在ssh里面执行 export的环境设置
export CLOUDFLARE_EMAIL="[email protected]"
export CLOUDFLARE_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
安装caddy
curl https://getcaddy.com | bash -s personal tls.dns.cloudflare
caddy申请证书
建目录,放文件
mkdir /root/caddy
cd /root/caddy
nano /root/caddy/Caddyfile
把下面内容添加到Caddyfile
sslbv.madelonely.ml {
gzip
tls {
dns cloudflare
}
log /root/caddy/caddy.s.log
proxy / https://baidu.com
proxy /dxz 127.0.0.1:9999 {
websocket
header_upstream -Origin
}
}
v2ray.madelonely.ml {
gzip
tls {
dns cloudflare
}
log /root/caddy/caddy.v.log
proxy /dxz 127.0.0.1:8888 {
websocket
header_upstream -Origin
}
}
emby.madelonely.ml {
gzip
tls {
dns cloudflare
}
log /root/caddy/caddy.e.log
proxy / 127.0.0.1:8096 {
header_upstream -Origin
websocket
}
}
然后执行
caddy -conf /root/caddy/Caddyfile
这时候回提示输入邮箱,随便写,回车之后开始验证dns,不要紧,继续操作。 回车后到之前 CF Parterner 网页,刷新一下,找到如下的新记录 将两行文字复制到dns解析的地方,添加txt记录 完成验证 ssh这边已经验证完毕,并正常运行caddy服务 接着按照视频教程走可以指定CDN节点,最后效果是这样。当然,也可以全部搞定再慢慢调整 把申请好的sslbv的证书复制到/root/caddy/ssplugin/
mkdir /root/caddy/ssplugin/
cp /root/.caddy/acme/acme-v02.api.letsencrypt.org/sites/sslbv.madelonely.ml/sslbv.madelonely.ml.crt /root/caddy/ssplugin/plugin.crt
cp /root/.caddy/acme/acme-v02.api.letsencrypt.org/sites/sslbv.madelonely.ml/sslbv.madelonely.ml.key /root/caddy/ssplugin/plugin.key
至此,tls搞定。
挂载给emby读取00盘
curl https://rclone.org/install.sh | bash
mkdir /root/rclone/
mkdir /root/rclone/00
先执行rclone config
然后q退出
nano /root/.config/rclone/rclone.conf
把正常使用的rclone.conf文件内容粘贴到rclone.conf里面,不用重新配置rclone了 添加到开机启动
nano /etc/crontab
最下面加入
@reboot root rclone mount TD00: /root/rclone/00 --buffer-size 1G --vfs-read-chunk-size 256M --vfs-read-chunk-size-limit 2G --allow-non-empty --allow-other --dir-cache-time 12h >/dev/null 2>&1 &
也可以把证书更新后copy给ss docker用的加到crontab里面,真正实现证书全自动续期,不用再管了 (注意一下,如果按照本片教程指定CDN是无法全自动,如果直接cf指定节点,也就是有cf而不是像我由阿里云解析dns,那是可以做到全自动的)
0 0 0 * * root cp /root/.caddy/acme/acme-v02.api.letsencrypt.org/sites/sslbv.madelonely.ml/sslbv.madelonely.ml.crt /root/caddy/ssplugin/plugin.crt
0 0 0 * * root cp /root/.caddy/acme/acme-v02.api.letsencrypt.org/sites/sslbv.madelonely.ml/sslbv.madelonely.ml.key /root/caddy/ssplugin/plugin.key
为了避免错误,先增加虚拟内存,2-3g
wget https://www.moerats.com/usr/shell/swap.sh && bash swap.sh
按1再写1000-2000
挂载
可先把后台参数 >/dev/null 2>&1 &
去掉 加上 -vvv
参数 等没问题在加后台参数 >/dev/null 2>&1 &
rclone mount TD00: /root/rclone/00 --buffer-size 1G --vfs-read-chunk-size 256M --vfs-read-chunk-size-limit 2G --allow-non-empty --allow-other --dir-cache-time 12h >/dev/null 2>&1 &
docker镜像
v2ray
在 /root/caddy/v2ray下新建文件config.json
mkdir /root/caddy/v2ray
nano /root/caddy/v2ray/config.json
将如下内容填入config.json文件(相应位置自己改)
{
"log" : {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"inbounds":[{
"port": 8888,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "ae2a6c5e-11d7-11ea-8d71-362b9e155667",
"level": 1,
"alterId": 88
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/dxz"
}
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
}]
}
这个配置文件是否可用,自己可以到这个网站自查。 这个网站可以生成自己的uuid
ss-lbev
创建ss-libev配置文件
mkdir /root/caddy/ssplugin
nano /root/caddy/ssplugin/config.json
写入如下内容
{
"server":"127.0.0.1",
"server_port":9999,
"method":"aes-128-gcm",
"timeout":300,
"password":"dxz",
"fast_open":false,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp",
"plugin":"v2ray-plugin",
"plugin_opts":"server;path=/dxz"
}
emby
emby不需要配置文件,一行命令搞定
安装docker
脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
pull docker镜像
docker run -d -p 8888:8888 --name v2 --restart=always -v /root/caddy/v2ray:/etc/v2ray teddysun/v2ray
docker run -d --name ss --restart always --net host -v /root/caddy/ssplugin:/etc/shadowsocks-libev teddysun/shadowsocks-libev
docker run --name=emby -d -v /root/emby/config:/config -v /root/rclone/00:/00 --net host -e UID=1000 -e GID=100 -e GIDLIST=100 --restart unless-stopped emby/embyserver:latest
再次添加 api
export CLOUDFLARE_EMAIL="[email protected]"
export CLOUDFLARE_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxx"
执行caddy,启动3个docker的cdn连接
caddy -conf /root/caddy/Caddyfile
这时候可以看提示,有错误就看看哪儿的问题,解决一下。没有问题就下一步
开机启动脚本
新建启动文件
nano /root/caddy/caddystart
写入下列内容
#!/bin/bash
CLOUDFLARE_EMAIL="[email protected]" \
CLOUDFLARE_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxx" \
caddy -conf /root/caddy/Caddyfile >/dev/null 2>&1 &
利用crontab自启动
nano /etc/crontab
最下一行写入
@reboot root bash /root/caddy/caddystart
这样每次重启就自动运行三个网站,并自动开启CDN。
更新证书还是没有解决,因为指定CDN的原因,必须手动复制txt到dns解析服务。
但是如果不指定DNS,那么这个脚本就真正做到完全自动化了
一点点遗憾
据最新“美颜社”消息,指定cdn时候验证的txt不再是随机字符,而是固定格式(截屏)
格式如下:
也就意味着,添加一次txt,以后每次开机,caddy会帮你自动更新或申请证书。
更新证书无需验证
自此,完全自动化达成•真香
VOILA
补充
–
1. 我这里开cf 白天看00盘里的4k电影很轻松,remux 4k 有难度。可能是CDN的IP选的不好,以后慢慢找
2. 晚上速度待测,昨天速度只有10Mb/s,比较差,符合垃圾小鸡的水平,但是比直连要快
3. 晚上高峰结果,40m码率无压力
4. 爱尔兰小鸡直连和CDN对比
5. 如果都搭建好了,发现不走CDN,试试去cloudflare改下SLL/TLS设置
6. docker的用途还有很多,比如折腾久了,想记录一下,写个记录之类的,比如这个博客就是用docker搞定的改Hugo了,也挺香。typecho wordpress hexo 都可以,简单几步,5分钟,以后会出教程。
7. 添加特洛伊 trojan
申请证书
只需在/root/caddy/Caddyfile
添加一个记录,就可以申请 证书
trojan.trumptheidiot.tk {
gzip
tls {
dns cloudflare
}
log /root/caddy/caddy.s.log
proxy / https://baidu.com
proxy /dxz 127.0.0.1:9999 {
websocket
header_upstream -Origin
}
}
运行 caddy -conf /root/caddy/Caddyfile
就可以自动开始申请证书,添加TXT记录方法同上
证书申请完后,记得先删/root/caddy/Caddyfile
文件内刚刚添加的用于申请证书的内容,否则就套了CDN,trojan的效果大打折扣。
新建目录,写配置
mkdir /root/trojan
nano /root/trojan/config.json
密码dxz,改成你想要的
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"dxz"
],
"log_level": 1,
"ssl": {
"cert": "/config/certificate.crt",
"key": "/config/private.key",
"key_password": "",
"cipher": "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256",
"prefer_server_cipher": true,
"alpn": [
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"session_timeout": 600,
"plain_http_response": "",
"curves": "",
"dhparam": ""
},
"tcp": {
"prefer_ipv4": false,
"no_delay": true,
"keep_alive": true,
"fast_open": false,
"fast_open_qlen": 20
},
"mysql": {
"enabled": false,
"server_addr": "127.0.0.1",
"server_port": 3306,
"database": "trojan",
"username": "trojan",
"password": ""
}
}
启动trojan docker,端口由于我在原有基础上添加,所以不能用443,改成32400,假装是plex服务器。你可以改成443,更真一些。
启动trojan docker
docker run -dt --name trojan -v /root/trojan:/config -p 32400:443 trojangfw/trojan
看启动日志,排错
docker logs -f trojan
客户端
可以安装OpenWRT,一些固件已经自带trojan了 win mac 可以参考这篇文章 文章写的比较早,ios没提到小火箭,亲测小火箭可用,只需要添加相应(子)域名和密码即可。 注意的是,用cloudflare DNS 解析的时候,一定要把 云朵图标熄灭 有疑问或者有能力帮我填坑请(via频道主加群)