通知:《打工人日报》迁移到独立板块
通知:《打工人日报》迁移到独立板块
通知:《打工人日报》迁移到独立板块 考虑到近期的一些情况,我决定将《打工人日报》迁移到独立板块,将不在首页展示,后续的更新将在独立板块中进行。不影响原文章的阅读和订阅邮件的推送。感谢各位的支持和关注!!! 访问地址 访问链接 首页点击访问
使用TLSv1.3 升级nginx和openssl
使用TLSv1.3 升级nginx和openssl
介绍 TLS v1.3(Transport Layer Security version 1.3)是传输层安全协议的最新正式版本,用于在计算机网络中提供加密通信。它由 IETF(Internet Engineering Task Force) 于 2018 年 8 月正式发布,是对 TLS v1.2 的重大改进。 由于原有老的nginx版本不支持新的TLSv1.3,需要升级nginx和openssl。 🔐 TLS 的用途 TLS 常用于以下场景: HTTPS(浏览器访问网站) 邮件客户端与服务器通信(如 IMAP/SMTP over TLS) VPN、聊天工具等需要安全传输的场合 ✨ 相比 TLS 1.2,TLS 1.3 有哪些主要改进? 特性 TLS 1.2 TLS 1.3 握手轮数 至少 2 次往返 最多 1 次往返,支持 0-RTT 加密套件 多且复杂,包含弱算法 简化,仅支持强加密算法 前向保密 可选 强制启用 加密内容 一部分未加密 握手后所有内容都加密,包括证书 安全性 存在旧漏洞(如 BEAST、POODLE) 移除已知不安全特性 性能 较慢 更快(特别是在移动网络) 🔧 移除的内容(相比 TLS 1.2) RSA 密钥交换(只保留 ECDHE/DHE) 不安全的加密算法(如 RC4、3DES、MD5) 静态密钥协商、不再支持非前向保密 会话恢复机制被简化为基于票据(session tickets) ✅ TLS 1.
Proxmox VE(PVE) 更新到最新版本
Proxmox VE(PVE) 更新到最新版本
背景 由于增加了新的pve机器组了pve集群,这过程中发生很多事情,打算记录一下过程中发生的问题。 如何不使用企业源完成pve更新 修改订阅源 禁用企业源 添加 no-subscription 源 执行命令 到具体的pve机器上执行命令 1apt update 2apt dist-upgrade 3# 查看版本 4pveversion HA 集群无法正常运行 出现lrm pve (old timestamp - dead?)获取不到pve主机状态 查看 lrm 服务状态 1systemctl status pve-ha-lrm 2systemctl status pve-ha-crm 重启 lrm 服务 1# 重启 lrm 服务 2systemctl restart pve-ha-lrm 3# 重启 crm 服务 4systemctl restart pve-ha-crm
kindle 邮件发送失败,错误代码E999
kindle 邮件发送失败,错误代码E999
背景 最近看到了一本电子书《just for fun》 Linux之父:林纳斯的自传。就想上传到kindle上去看这本书,但是之前epub的上传都没有问题,唯独这本一直上传失败。E999 故障。我直接说我对于这个问题的解决办法。 解决方法 将epub转换为mobi格式 将装换好的mobi文件再转换为新的epub文件 上传新的epub文件到kindle 总结 感觉是原本的epub文件格式有损坏导致,amzon无法正确识别epub格式,所有按照这个方式转换一遍,基本上上传就没有问题了。
metallb + ingress-nginx + argocd 本地部署
metallb + ingress-nginx + argocd 本地部署
环境准备(配置代理) proxy_setting.yml 1--- 2- name: 设置全局代理并测试连接 3 hosts: all 4 become: yes 5 vars: 6 proxy_host: "10.10.10.254" 7 proxy_port: "7890" 8 http_proxy: "http://{{ proxy_host }}:{{ proxy_port }}" 9 https_proxy: "http://{{ proxy_host }}:{{ proxy_port }}" 10 no_proxy: "localhost,127.0.0.1" 11 12 environment: 13 http_proxy: "{{ http_proxy }}" 14 https_proxy: "{{ https_proxy }}" 15 no_proxy: "{{ no_proxy }}" 16 17 tasks: 18 - name: 显示代理设置 19 debug: 20 msg: 21 - "HTTP Proxy: {{ http_proxy }}" 22 - "HTTPS Proxy: {{ https_proxy }}" 23 - "NO_PROXY: {{ no_proxy }}" 24 25 - name: 使用 curl 测试外部连接(使用代理) 26 command: curl -I https://www.
iStoreOS(旁路由)使用openclash实现dns劫持
iStoreOS(旁路由)使用openclash实现dns劫持
背景 我主要介绍通过openwrt中的openclash覆写hosts实现dns劫持的方法。 操作 进入openwrt后台,进入openclash,进入覆写设置,进入dns设置 勾选hosts,并写入hosts信息,10.10.10.6是内网nas的ip地址,你可以改成任意的IP 1'nas.com': 10.10.10.6 2'*.nas.com': 10.10.10.6 3. 保存并应用 测试 1ping nas.com 2ping www.nas.com 总结 openclash实现dns劫持的方法非常简单,只需要在openclash中配置hosts即可。
异常流量分析:图片库服务黑客入侵
异常流量分析:图片库服务黑客入侵
背景 最近这两天prometheus一直再对服务器的下行带宽告警,检查告警发现是一台图片服务器,这台图片服务器是很早部署的一台nginx反向代理本地静态文件的服务器,当时没有做任何的安全防护,只是简单做了一个上传接口暴露给外网,导致这台服务器被黑客入侵,上传了大量文件,同时对这些文件有大量的下载请求,导致服务器的带宽被打满,同时也导致了prometheus的告警。 发现 发现这台服务器的带宽被打满了,所以只能先从这台服务器开始排查。先检查nginx所有大量请求的日志 1cd /var/log/nginx 2awk '{print $7}' access.log | sort | uniq -c | sort -nr | head -n 10 这个是一个图片服务器,看起来都是图片的请求,好像没有发现异常的请求。但是这个图片为什么有那么高的流量呢?检查这个图片,发现图片无法打开,所以我换二进制的方式打开图片 发现图片的二进制头部是 FFmpeg, 所以这是一个伪装成图片的视频文件 解决 检查nginx的配置文件,上传接口拒绝所有外部请求 server{ location /upload { proxy_pass http://192.168.1.1:8080; # 拒绝所有外部请求 allow 192.168.1.0/24; deny all; } } 查找最早上传的文件,创建python文件,并在图片服务器执行 import os # 查找最早包含 FFmpeg 的 JPG 文件 def find_earliest_jpg_with_ffmpeg(directory): earliest_file = None earliest_timestamp = float('inf') for root, dirs, files in os.walk(directory): for file in files: if file.
搭建ip地址检索服务
搭建ip地址检索服务
背景 很多时候,我们需要查询一个IP地址,都得通过百度,谷歌,或者其他搜索引擎,非常麻烦。教大家一个使用cloudflare worker搭建一个只属于我们自己的ip地址检索服务。 条件 需要一个cloudflare账号(自行注册,必选) 域名(自行购买,可选) 步骤 1. 注册cloudflare账号,并登录。 2. 在cloudflare的dashboard中,点击workers,点击create a worker。 3. 创建一个worker 4. 复制代码并粘贴到worker.js中。 1addEventListener('fetch', event => { 2 event.respondWith(handleRequest(event.request)); 3}); 4 5/** 6 * Handle the incoming request and return formatted IP information 7 * @param {Request} request 8 */ 9async function handleRequest(request) { 10 const url = new URL(request.url); 11 const queryIp = url.searchParams.get('ip'); 12 const clientIp = queryIp || request.headers.get('cf-connecting-ip'); 13 const path = url.
Kubernetes — k8s 手动安装 1.17.9
Kubernetes — k8s 手动安装 1.17.9
背景 已经2024年了, k8s已经更新到 1.30.x的版本了,但是还有很多公司还在使用1.17.9版本,那么我们今天就来手动安装一下1.17.9版本的k8s。 安装 我们在测试centos服务器192.168.40.1安装单节点 Kubernetes 集群(Master 节点)使用 kubeadm 是一个相对直接的过程。 前提条件 确保主机满足以下要求: 操作系统:CentOS 7.x 或更高版本 内存:至少 2 GB 内存 磁盘空间:至少 20 GB 磁盘空间 网络:至少 2 个网络接口 配置主机名和 IP 1sudo hostnamectl set-hostname k8s 2echo "192.168.40.1 k8s" | sudo tee -a /etc/hosts 更新系统 切换镜像源 1bash <(curl -sSL https://www.jobcher.com/ChangeMirrors.sh) 更新系统 1sudo yum update -y 禁用 SELinux 1sudo setenforce 0 2sudo sed -i --follow-symlinks 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config 禁用 Swap 1sudo swapoff -a 2sudo sed -i '/swap/d' /etc/fstab 修改 /etc/sysctl.
SELinux 问题:导致端口无法创建,无法访问
SELinux 问题:导致端口无法创建,无法访问
背景 今天有同事在使用nginx部署一个服务,部署完成后发现无法访问,nginx创建端口无法创建,无法访问 nginx: [emerg] bind() to 0.0.0.0:8081 failed (13: Permission denied) 解决方法 查看日志发现是SELinux导致的,SELinux是Linux系统的安全机制,它会限制进程访问文件和网络端口等资源。 查看SELinux状态 1sudo getenforce 当 SELinux 处于 enforcing 模式时,会阻止进程访问不允许的资源。有三种方法可以解决 1. 临时关闭SELinux 1sudo setenforce 0 2. 永久关闭SELinux 1sudo vim /etc/selinux/config 2# 修改SELINUX=enforcing 为 SELINUX=disabled 重启服务器 1sudo reboot 3. 设置为宽容模式 1semanage permissive -a http_port_t 这个命令会将 http_port_t 类型的端口设置为宽容模式(permissive mode),使得 semanage 不再对该类型的端口进行访问控制。 总结 SELinux 是 Linux 系统的安全机制,它会限制进程访问文件和网络端口等资源。在使用 SELinux 时,需要根据实际情况选择合适的解决方案。
【福利】免费!本地部署!去除视频中移动的物体
【福利】免费!本地部署!去除视频中移动的物体
分享一款 去除视频中移动的物体。的本地部署软件,完全免费! 效果 物体移除 水印去除 下载地址 国内下载 代码仓库 ProPainter 安装 1git clone https://github.com/sczhou/ProPainter.git 1conda create -n propainter python=3.8 -y 2conda activate propainter 3cd ProPainter 4pip3 install -r requirements.txt 版本要求 CUDA >= 9.2 PyTorch >= 1.7.1 Torchvision >= 0.8.2 开始使用 准备预训练模型 预训练模型从版本 V0.1.0 下载到 weights 文件夹。 https://github.com/sczhou/ProPainter/releases/tag/v0.1.0 1weights 2 |- ProPainter.pth 3 |- recurrent_flow_completion.pth 4 |- raft-things.pth 5 |- i3d_rgb_imagenet.pt (for evaluating VFID metric) 6 |- README.md 快速测试 1# The first example (object removal) 2python inference_propainter.
KyBook 3 | calibre-web - IOS系统最佳图书伴侣
KyBook 3 | calibre-web - IOS系统最佳图书伴侣
背景 calibre-web 支持opds协议,ip+端口/opds就是opds路径,所有支持opds的客户端都可以。安卓下推荐静读天下,ios推荐kybook 3,我这边主要介绍一下,kybook 3。 KyBook 3 支持几乎所有主要的电子书格式,包括: EPub、FictionBook(fb2,fb2.zip)、纯文本和富文本(txt,rtf)、PDF、漫画(CBR,CBZ,CBT)、MobiPocket、Kindle(mobi,azw3)以及有声读物(mp3,m4a,m4b)。 基本上你在网络上找到的书籍资源,都可以用 KyBook 3 打开。 下载 KyBook 3 下载 添加OPDS源 打开KyBook 3 -> 底部目录 -> 添加 添加源地址 https://ip:port/opds 例如 https://192.168.1.1:8080/opds 2. 输入密码 添加书籍 总结 亚马逊 Kindle 一直是受欢迎的电子书阅读器,在我看来,它的巨大优势之一在于亚马逊丰富的线上资源,可以很方便地购买,并在 PC、移动端和实体 Kindle 上同步观看。 KyBooks 3 相比之下,最强大的在于对不同文件格式的支持,以及丰富的阅读自定义设置。 不足 当然,Kybooks 3 也存在一些问题,比如不少人都反馈无法注册,从而影响同步,这应该和 KyBook 的服务器设置有关。还有它仅支持iOS端,平台多少有些单一了。 你可以在 Appstore 免费下载 KyBook 3,它提供了「专业版」与「高级订阅」两个内购的选项:「专业版」包含去广告(不过免费版目前并没有广告)、用户辞典、手写标注、自动滚动等功能,花费 4.99$ 可永久升级,你可以免费体验 14 天以绝对是否购买。 「高级订阅」在解锁了全部「专业版」功能外,还允许用户使用 KyBook 服务器在不同设备间同步数据,年费为 14.99$,但因为前面所说的登陆问题,同步功能的体验可能会受到影响。