fail2ban配合cloudflare cdn使用
Cloudflare 是一家全球最著名的 CDN 加速服务商,提供了免费和付费的网站加速和保护服务。即使是免费版,也提供了比较全面和强大的功能,非常不错。 通过使用 Cloudflare CDN 服务提供的全球节点,一方面可以提高网站响应速度和性能,节省源站资源;另一方面也可以保护站点抵御攻击,保证网站长期稳定在线。 fail2ban 是一个开源工具, 它通过分析日志, 将不满足要求的访问 (比如 cc 攻击、对网站进行扫描等) 的 ip 获取到, 通过自带防火墙 (iptables 等) 进行封禁. 问题一: 如何让 fail2ban 获取真实 IP 想要通过 fail2ban 来封禁 ip, 那么先要获取到用户 (或黑客) 的 ip, 如果不进行处理, 那么大概率你获取到的是 cloudflare 请求你用的 ip, 封禁这个 ip 是没有意义的… 我的服务架构是 cloudflare –> nginx –> 后端服务 在 nginx 上面配置 123456789101112131415server { ... # 这里设置一下Real_IP变量,...
制作macOS启动盘和dmg镜像
下载 macOS 安装文件参考苹果官方文档: https://support.apple.com/zh-cn/102662, 使用 App Store 下载即可。下载完成后会显示在应用程序里面 制作dmg磁盘镜像直接写入到u盘或移动硬盘创建一个空白的 dmg 镜像 打开「磁盘工具」,在顶部菜单选择「文件」>「新建映像」>「空白映像」,然后如下图: 「大小」的设置,根据安装镜像大小, 再增加 2GB, 我这里粗略设置为 15 GB;「格式」设置为「Mac OS 扩展(日志式)」;「分区」为设置为「单个分区 - GUID 分区图」;「映像格式」为「读/写」; 挂载这个磁盘镜像, 直接双击即可自动挂载。 数据写入到 dmg 磁盘 参考: https://support.apple.com/zh-cn/101578 12# 根据你的系统版本和磁盘挂载位置自行修改sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume...
macOS常用操作记录
在终端中使用 code 命令启动 vscode先安装 code:打开 VSCode -> 查看 -> 命令面板 -> 输入 shell command –> 点击 Shell Command: Install 'code' command in PATH 然后在终端中可以使用 code 命令打开 vscode 了, 或者 code . 打开当前目录 常用命令 用途 code 打开 vscode code . vscode 打开当前目录 code /Users/iuxt/code 打开指定的目录 防止自动睡眠在显示器 高级里面 打开 使用电源适配器供电且显示器关闭时, 防止自动进入睡眠选项。 提示 程序损坏,需要移动到废纸篓或者提示应用未验证等, 可以到访达里, 找到应用程序, 按下 control 键点击, 选择打开 或者去除苹果的 quarantine 属性 1sudo xattr -r -d com.apple.quarantine...
shell脚本获取自身的信息
写 shell 脚本, 有时候需要获取一些信息, 比如这个脚本的名字,脚本所在的目录,脚本的绝对路径, 这个脚本的 pid, 参数等。 变量 说明 $0 脚本自身的路径(执行的时候调用路径) $1 第一个参数 $? 上一个脚本的返回值,0为正常 $* 所有的参数 $# 参数的个数 $$ 当前脚本的pid $_ 上一条命令的参数 获取脚本的文件名$0 是脚本的路径,这个路径有可能是相对路径,那么可以使用 dirname 和 basename 配合来获取脚本绝对路径 12345# 脚本所在的目录的绝对路径echo "$(cd $(dirname $0); pwd)"# 脚本的文件名echo $(basename $0) 获取脚本的绝对路径12345# 获取脚本的绝对路径DIR=$(cd $(dirname $0); pwd)FILE=$(basename $0)echo "${DIR}/${FILE}" 进入临时目录12# $_...
Linux大文件分割与合并
服务器上有个文件需要下载到本地, 但是文件较大, 我们都是通过 jumpserver 连接的, 通过 jumpserver 下载难免会遇到网络波动等导致下载失败, 我们可以通过分割大文件成一个个小文件, 然后下载后再在本地合并. 用到的命令是 split split 分割大文件1split -b 1024M -d -a 3 2023.tar.gz tmp. 参数说明: 参数 说明 -b 指定每个文件的大小, 支持 K M G -d 指定后缀编码为数字,默认编码为字母 -a 指定后缀长度,3 表示 3 位数, 比如上面的命令, 生成的文件就是 tmp.000 … ./tmp. 这个是生成的文件名前面的部分 如果报错 split: output file suffixes exhausted 说明后缀不够用了, 比如参数 -a 1 支持的后缀为 0 - 9 , 如果文件太大, 超过了 9, 就会报这个错. 使用 cat 合并大文件1cat tmp.* > 2023.tar.gz 合并完成再验证一下 MD5 值,...
Ubuntu 22.04 内核相关操作
文章内容在 Ubuntu 22.04 系统下测试成功, 版本相差过大请自测。 开机显示启动项新版 Ubuntu 好像默认不显示启动项而直接进入系统了,可以通过修改 /etc/default/grub 来实现开机显示启动选项列表 12345# 注释掉这一行# GRUB_TIMEOUT_STYLE=hidden# 这一行是在grub界面等待的时间,单位sGRUB_TIMEOUT=30 修改完成后执行 sudo update-grub 更新 grub 配置 下面两种方式二选一即可。 更换使用的内核版本(通过启动项 uuid 指定方式)查看当前在用的内核版本1uname -r 6.5.0-14-generic 查看系统启动项12345# 查看'Advanced options for Ubuntu'选项的uuidgrep "submenu 'Advanced options for Ubuntu'" /boot/grub/grub.cfg | awk -F\' '{print...
获取Kubernetes的token
获取 admin 的 token如果有这个 secret, 可以直接查看 token 1kubectl -n kube-system get secret admin-token-nwphb -o jsonpath={.data.token} | base64 -d 新版 k8s 命令为选择一个现有的 serviceaccount 1kubectl get serviceaccount 使用这个 serviceaccount 创建一个 token(并设置有效期) 1kubectl create token default --duration 10m 新建一个用户获取 token如果考虑到权限没有合适的,或者没有相关的 secret,可以通过创建一个新的用户来获取 token 12345kubectl create serviceaccount admin-sakubectl create clusterrolebinding admin-sa-binding --clusterrole=cluster-admin...
阿里云ACK中Nginx ingress使用CLB上的Https证书
背景: 我们在客户那里部署了一套服务, 服务运行在客户提供的 ACK 集群, 我们删除了客户 ACK 自带的 nginx ingress, 通过自建的方式部署了两套 ingress, 一套绑定了公网 四层 CLB, 一套绑定了内网 四层 CLB, 也就是说是 CLB 转发到 ingress, 然后通过 ingress 转发到其他服务. 现在需要配置 Https 证书, 客户不同意我们配置证书到 ingress, 客户将证书放在了 CLB 上, 给了一个证书 ID 查询阿里云文档阿里云的文档还是很详细, 通过 google 查询到文档地址: 通过Annotation配置传统型负载均衡CLB 具体可以查看这里 HTTPS 请求会在 CLB 层解密,然后以 HTTP 请求的形式发送给后端的 Pod。 这个在腾讯云的四层负载均衡里叫 TCP SSL 监听器。 配置 LoadBalancer 类型的 Service因为我们的 CLB 是只给 ingress 使用, 所以修改 ingress 的 Service 配置...
Django RestFramework 自定义显示字段
有的时候序列化出来的字段并不是我们想要的, 比如说返回的用户 id,而我们想要返回的是用户名, 这个时候可以用到 django rest framework 的自定义字段功能。 先看一下原始数据1234567891011121314[ { "id": 1, "name": "1", "desc": "sdg", "user": 1 }, { "id": 5, "name": "1", "desc": "sdg", "user": 2 }] 这里 user 显示的是 id, 并不是我们想要的 username 增加一个字段, 显示...
curl常用操作记录
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。 它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。 参考文章: https://www.ruanyifeng.com/blog/2019/09/curl-reference.html 参数-A-A 参数指定客户端的用户代理标头,即 User-Agent。curl 的默认用户代理字符串是 curl/[version]。 12345# 将User-Agent改成 Chrome 浏览器curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com# 移除User-Agentcurl -A '' https://google.com 也可以通过...