jobcher

jobcher

欢迎关注

通知:《打工人日报》迁移到独立板块
通知:《打工人日报》迁移到独立板块
通知:《打工人日报》迁移到独立板块 考虑到近期的一些情况,我决定将《打工人日报》迁移到独立板块,将不在首页展示,后续的更新将在独立板块中进行。不影响原文章的阅读和订阅邮件的推送。感谢各位的支持和关注!!! 访问地址 访问链接 首页点击访问
异常流量分析:图片库服务黑客入侵
异常流量分析:图片库服务黑客入侵
背景 最近这两天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$,但因为前面所说的登陆问题,同步功能的体验可能会受到影响。
Tmux 安装和使用教程
Tmux 安装和使用教程
tmux 是一个终端 multiplexer,它可以让你在一个终端中开启多个会话,并且可以在一个终端中切换多个会话。 安装 tmux 安装很简单,直接在终端中输入以下命令即可: 1# Ubuntu 或 Debian 2sudo apt-get install tmux 3 4# CentOS 或 Fedora 5sudo yum install tmux 6 7# Mac 8brew install tmux 使用 安装完成后,键入tmux命令,就进入了 Tmux 窗口。 1tmux 按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口。 1exit 前缀键 Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效。 举例来说,帮助命令的快捷键是Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。 然后,按下 ESC 键或q键,就可以退出帮助。 快捷键 面板(pane)指令 前缀 指令 描述 Ctrl+b " 当前面板上下一分为二,下侧新建面板 Ctrl+b % 当前面板左右一分为二,右侧新建面板 Ctrl+b x 关闭当前面板(关闭前需输入y or n确认) Ctrl+b z 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增) Ctrl+b ! 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效) Ctrl+b ; 切换到最后一次使用的面板 Ctrl+b q 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板 Ctrl+b { 向前置换当前面板 Ctrl+b } 向后置换当前面板 Ctrl+b Ctrl+o 顺时针旋转当前窗口中的所有面板 Ctrl+b 方向键 移动光标切换面板 Ctrl+b o 选择下一面板 Ctrl+b 空格键 在自带的面板布局中循环切换 Ctrl+b Alt+方向键 以5个单元格为单位调整当前面板边缘 Ctrl+b Ctrl+方向键 以1个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖) Ctrl+b t 显示时钟 系统指令 前缀 指令 描述 Ctrl+b ?
DockerHub 加速镜像部署 - 使用cloudflare 代理
DockerHub 加速镜像部署 - 使用cloudflare 代理
背景 6 月 6 日,上海交大的 Docker Hub 镜像加速器宣布因收到通知要求被下架。声明称:“即时起我们将中止对 dockerhub 仓库的镜像。docker 相关工具默认会自动处理失效镜像的回退,如果对官方源有访问困难问题,建议尝试使用其他仍在服务的镜像源。我们对给您带来的不便表示歉意,感谢您的理解与支持。”Docker Hub 是目前最大的容器镜像社区,去年 5 月起国内用户报告 Docker Hub 官网无法访问,其网址解析返回了错误 IP 地址。 因为不能直接访问国外的镜像仓库,下载国外的docker镜像速度一直很慢, 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。 使用 我这边已经部署好了加速镜像节点,同学们如果不想自己部署,可以使用我的加速节点,但是,不能保证节点长期有效。 1https://dockerhub.jobcher.com 第一步:代理拉取镜像 假如我们下载node镜像,那么我们可以这样写: 1docker pull dockerhub.jobcher.com/library/node:latest 2# 或者 3docker pull dockerhub.jobcher.com/bitnami/node:latest 第二步:重命名镜像 1docker tag dockerhub.jobcher.com/library/node:latest node:latest 2# 或者 3docker tag dockerhub.jobcher.com/bitnami/node:latest node:latest 第三步:删除代理镜像 1docker rmi dockerhub.jobcher.com/library/node:latest 2# 或者 3docker rmi dockerhub.jobcher.com/bitnami/node:latest 或者直接配置到镜像仓库 1sudo mkdir -p /etc/docker 2sudo tee /etc/docker/daemon.json <<-'EOF' 3{ 4 "registry-mirrors": [ 5 "https://dockerhub.
docker的零停机部署
docker的零停机部署
背景 使用 docker compose up 部署新版本的服务会导致停机,因为应用容器在创建新容器之前已停止。如果你的应用程序需要一段时间才能启动,用户可能会注意到这一点。为了保障服务用户无感,可以使用docker rollout 适合没必要用 K8S 轻量级小项目 安装 项目地址 1# 为 Docker cli 插件创建目录 2mkdir -p ~/.docker/cli-plugins 3 4# 下载 docker-rollout 脚本到 Docker cli 插件目录 5curl https://github.jobcher.com/gh/https://raw.githubusercontent.com/wowu/docker-rollout/master/docker-rollout -o ~/.docker/cli-plugins/docker-rollout 6 7# 使脚本可执行 8chmod +x ~/.docker/cli-plugins/docker-rollout 使用 注意事项!!! 服务不能在 docker-compose.yml 中定义 container_name 和 ports ,因为不可能运行具有相同名称或端口映射的多个容器。 需要像 Traefik 或 nginx-proxy 这样的代理来路由流量。 每次部署都会增加容器名称中的索引(例如 project-web-1 -> project-web-2 ) 使用示范 1# 下载代码 2git pull 3# 构建新的应用程序映像 4docker compose build web 5# 运行数据库迁移 6docker compose run web rake db:migrate 7# 部署新版本 8docker rollout web 或者使用docker-compose.
2023-12-21 打工人日报
2023-12-21 打工人日报
微博热搜榜 排名 1.一组数据见证救援力量 排名 2.医生不建议年轻人没问题就推拿 排名 3.店主察觉外卖备注像遗言救下一命 排名 4.2024年三农工作 排名 5.甘肃地震已致135人遇难 排名 6.甘肃积石山县4.1级地震 排名 7.烟台大学 冷流雪 排名 8.六种越吃越胖的伪粗粮 排名 9.女子起诉父母不肯出钱给自己出国留学 排名 10.网传爱尔眼科一医生捶击患者头部 排名 11.爱尔眼科 排名 12.女网红就涉甘肃地震言论道歉并捐款 排名 13.实在受不了冬天 冻死我了 排名 14.进个门微信步数好几万 排名 15.一名医生决定帮病人有尊严地死 排名 16.你关掉的不是水是防冻功能 排名 17.浏览器 杜海涛 排名 18.王家卫拍胡歌 无死角的帅 排名 19.吴世勋入伍 排名 20.笑果脱口秀演员线下开演 GitHub 热门榜单 排名 1:/jmorganca/ollama 简介: 在本地启动并运行Llama 2和其他大型语言模型 URL: https://github.com/jmorganca/ollama 作者: jmorganca 排名 2:/facebookresearch/llama-recipes 简介: Llama 2型号的示例和配方 URL: https://github.com/facebookresearch/llama-recipes 作者: facebookresearch 排名 3:/geekan/MetaGPT 简介: 🌟多Agent框架:给定一行需求,返回PRD、设计、任务、Repo URL: https://github.
2023-12-20 打工人日报
2023-12-20 打工人日报
微博热搜榜 排名 1.习近平对甘肃6.2级地震作出重要指示 排名 2.甘肃地震 最糟糕时间最薄弱地方 排名 3.网友吐槽买了一盒金车厘子583元 排名 4.甘肃加油青海加油 排名 5.奇瑞高端新能源星纪元ES全球上市 排名 6.特朗普被裁决不具备总统选举资格 排名 7.泰国瑞幸向中国瑞幸索赔100亿泰铢 排名 8.地震已致青海海东18人遇难198人受伤 排名 9.这些伪粗粮会让血糖飙升 排名 10.受灾群众如何度过零下14度寒冷冬夜 排名 11.地震已致127人遇难 排名 12.小柴胡汤 排名 13.谢娜说张杰不承认对她一见钟情 排名 14.图书馆有人破防了 排名 15.万柳书院 万元美甲 排名 16.张兰直播间称酸辣粉卖出多少捐多少 排名 17.张婧仪范丞丞 眼神好慌乱 排名 18.武艺半年出来一次 一次被笑半年 排名 19.李佳琦捐赠500万元 排名 20.有没有人在乎何猷君的死活啊 GitHub 热门榜单 排名 1:/damo-vilab/AnyDoor 简介: 论文的正式实现:Anydoor:零样本对象级图像定制 URL: https://github.com/damo-vilab/AnyDoor 作者: damo-vilab 排名 2:/damo-vilab/i2vgen-xl 简介: VGen的官方回购:基于扩散模型的视频生成整体视频生成生态系统 URL: https://github.com/damo-vilab/i2vgen-xl 作者: damo-vilab 排名 4:/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming 简介: 一门6课的课程,教授你需要了解的关于利用GitHub Copilot和人工智能配对编程资源的一切。 URL: https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming 作者: microsoft 排名 5:/anoma/namada 简介: Namada的Rust实现,用于链间资产无关隐私的权益证明L1 URL: https://github.