如何正确使用Cloudflare加速v2ray等代理软件

要使用Cloudflare加速梯子,首先梯子必须是用websocket作为传输方式的,比如v2ray的websocket,gost的websocket隧道,shadowsocks的v2ray-plugin等等,关于这些东西的搭建教程有很多,我就不赘述了,只讲如何使用Cloudflare,并自选ip来达到最好的加速效果,你所需要的只是一个域名

使用Cloudflare Workers反向代理

先创建一个Cloudflare账号,然后在主页面右下角点击Workers,进入创建一个Worker

接着在编辑区域粘贴以下代码

阅读更多

使用Docker部署 Prometheus+Grafana VPS监控系统

本文介绍如何使用Docker部署Prometheus + Grafana VPS监控系统
为了方便容器编排,将使用docker-compose来部署
目录结构:

1
2
3
4
5
6
7
8
9
10
moniter
├── docker-compose.yml
├── grafana
│   └── data
├── prometheus
│ ├── config
│ │   └── prometheus.yml
│ └── data
└── node_exporter
└── node_exporter

部署node_exporter

阅读更多

在Windows上使用代理连接SSH

经常碰到买的一些小鸡到国内的网络很差,SSH非常卡,所以使用代理来连接SSH十分重要

尽管Xshell等一系列GUI工具可以简单地实现代理,但是对于VSCode等依赖OpenSSH的软件来说并不简单

在Linux之类的上经常使用netcat来代理SSH,但是netcat在Windows上的实现比较残缺,少了代理的功能,所以只能用ncat来替代

阅读更多

解决Docker下Shadowsocks NAT类型严格的问题

一直使用自建的Shadowsocks服务进行游戏加速,我也写过文章展示如何用Docker部署(传送门)用起来没什么问题,但是最近玩GTA 5的时候却发现几乎无法与他人联机。使用NatTypeTester显示NAT类型为Symmetric,游戏内显示为严格

推测原因

使用Bridge模式的容器在将内部端口映射到外部时相当于做了一次NAT,而Linux内核默认是没有实现FullCone NAT

阅读更多

shadowsocks+nginx+v2ray-plugin配置以及完善

由于shadowsocks缺乏伪装手段,而v2ray又过于臃肿庞大,便选择了一种折中的方式,shadowsocks+v2ray-plugin。为了方便,使用docker-compose来部署

docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: "3"
services:
nginx:
build: ./nginx
ports:
- 80:80
- 443:443
- 443:443/udp //映射udp端口
volumes:
- ./www:/home/wwwroot
- ./nginx/conf:/etc/nginx
- ./nginx/logs:/home/wwwlogs
restart: always
container_name: nginx
shadowsocks-libev:
build: ./shadowsocks-libev
volumes:
- ./shadowsocks-libev/config:/etc/shadowsocks-libev
restart: always
container_name: shadowsocks-libev
shadowsocks配置文件
1
2
3
4
5
6
7
8
9
10
11
12
{
"server": "0.0.0.0",
"mode": "tcp_and_udp",
"server_port": 10086,
"password": "password",
"method": "aes-256-gcm",
"fast_open": true,
"no_delay": true,
"timeout": 60,
"plugin": "v2ray-plugin",
"plugin_opts": "server;path=/ss"
}
阅读更多

Docker中安装PHP扩展踩坑

Docker中安装扩展坑还是挺多的,各种依赖不全。不像lnmp一键包默认就给你装好了常用的扩展。这里直接给个Dockerfile
这个Dockerfile包含扩展:

  • gd
  • exif
  • mysqli
  • pdo_mysql
  • zip
  • imagick
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    FROM php:7.4.3-fpm-alpine

    ENV TIME_ZONE=Asia/Shanghai

    RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime \
    echo $TIME_ZONE /etc/timezone \
    apk update \
    apk --no-cache add autoconf gcc g++ make ffmpeg graphicsmagick zip zlib-dev libjpeg-turbo-dev libpng-dev freetype-dev imagemagick-dev libzip-dev \
    docker-php-ext-configure gd --with-freetype --with-jpeg \
    docker-php-ext-install gd \
    docker-php-ext-install exif mysqli pdo_mysql zip \
    pecl install imagick \
    docker-php-ext-enable imagick
    需要注意的是gd的安装需要先用--with-freetype --with-jpeg参数configure一遍,不然装完后是不完整的,没有jpeg的支持,像wordpressh5ai就没法正常使用

为Docker中的Nginx启用Brotli压缩算法

由于Brotli属于第三方模块,Nginx的官方Docker镜像并没有集成,所以只能自己添加,好在Nginx可以动态加载模块,无需编译整个Nginx

直接上Dockerfile吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
ARG version=1.17.6

FROM nginx:${version}-alpine AS builder

ARG version

WORKDIR /root/

RUN apk update && apk add --no-cache build-base git pcre-dev openssl-dev zlib-dev \
&& wget http://nginx.org/download/nginx-${version}.tar.gz \
&& tar zxf nginx-${version}.tar.gz \
&& git clone https://github.com/google/ngx_brotli.git \
&& cd ngx_brotli \
&& git submodule update --init --recursive \
&& cd ../nginx-${version} \
&& ./configure \
--add-dynamic-module=../ngx_brotli \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--with-perl_modules_path=/usr/lib/perl5/vendor_perl \
--user=nginx \
--group=nginx \
--with-compat \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-mail \
--with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
&& make modules


FROM nginx:${version}-alpine

ARG version

ENV TIME_ZONE=Asia/Shanghai

RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone

COPY --from=builder /root/nginx-${version}/objs/ngx_http_brotli_filter_module.so /usr/lib/nginx/modules/
COPY --from=builder /root/nginx-${version}/objs/ngx_http_brotli_static_module.so /usr/lib/nginx/modules/
阅读更多

用Python进行网易云和qq音乐歌单对比

由于网易云音乐版权越来越少,歌单里的歌一首首的灰掉,于是就想着换到qq音乐。但是用qq音乐导入网易云的歌单后还是有一部分歌没有匹配到,而qq音乐也没告诉你哪些没匹配到,人工一个个筛选实在不现实,所以就想用代码来解决这个问题。

初步打算根据歌曲名来筛选,首先就要获取到这两家的歌单数据

qq音乐

阅读更多