惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
L
Lohrmann on Cybersecurity
aimingoo的专栏
aimingoo的专栏
V
V2EX
S
Security Affairs
T
Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
IT之家
IT之家
J
Java Code Geeks
The Register - Security
The Register - Security
U
Unit 42
C
CERT Recently Published Vulnerability Notes
月光博客
月光博客
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
Cisco Talos Blog
Cisco Talos Blog
Project Zero
Project Zero
S
Schneier on Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
DataBreaches.Net
博客园 - 司徒正美
V
Vulnerabilities – Threatpost
T
Tor Project blog
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
小众软件
小众软件
L
LangChain Blog
Attack and Defense Labs
Attack and Defense Labs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
A
Arctic Wolf
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 叶小钗
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 最新话题
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog
H
Hacker News: Front Page
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta

专栏 on 打工人日志

日报 k8s入门系列 web服务 日常系列 福利系列 基础知识系列 docker进阶系列 stable diffusion github 测试 k8s系列 git入门系列 IOS 开发 人工智能系列 运维监控系列 web服务入门系列 周报系列 oracle系列 Mac系列 web3.0 旅行系列 美食家常菜系列 go系列 docker入门系列 mysql系列 打赏
问题库系列
2025-12-03 · via 专栏 on 打工人日志
jobcher

2025年12月3日 1 分钟阅读 博客

k8s master 节点 Unauthorized

故障 多master集群的k8s其中一台master 出现 You must be logged in to the server (Unauthorized),说明当前节点上的 kubectl 无法认证到 apiserver。 共有三台master: master1 正常 master2 异常 master3 异常 排查问题 用 admin 证书直接用 curl 测试认证 1curl --cert /etc/kubernetes/pki/admin.crt --key /etc/kubernetes/pki/admin.key -k https://10.10.10.68:6443/healthz 结果 HTTP/1.1 200 OK → TLS + 认证成功(client cert 被接受)。 若返回 401/403 → TLS 成功但授权失败(RBAC 或 client cert 虽被接受但没有权限)。把完整返回贴来。 若 curl 报 TLS 错误 → client cert/CA 有问题(贴错误信息)。 把 kubeconfig 中的 client cert/key 解码到临时文件并检查它们(确认 kubectl 用的是这个证书、并检查证书 Subject/CN/到期日) 1# 解码证书与私钥 2awk '/client-certificate-data/ {print $2}' ~/.

jobcher

2025年7月10日 1 分钟阅读 博客

kindle 邮件发送失败,错误代码E999

背景 最近看到了一本电子书《just for fun》 Linux之父:林纳斯的自传。就想上传到kindle上去看这本书,但是之前epub的上传都没有问题,唯独这本一直上传失败。E999 故障。我直接说我对于这个问题的解决办法。 解决方法 将epub转换为mobi格式 将装换好的mobi文件再转换为新的epub文件 上传新的epub文件到kindle 总结 感觉是原本的epub文件格式有损坏导致,amzon无法正确识别epub格式,所有按照这个方式转换一遍,基本上上传就没有问题了。

jobcher

2024年8月2日 1 分钟阅读 博客

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 时,需要根据实际情况选择合适的解决方案。

jobcher

2023年11月7日 1 分钟阅读 博客

linux服务器进程打开文件过多导致服务异常

背景 我的logstash是多管道部署结果发现有大量日志丢失的情况查看logstash日志出现了以下报错 [2023-11-07T09:43:38,492][ERROR][logstash.javapipeline ][log] Pipeline worker error, the pipeline will be stopped {:pipeline_id=>“log”, :error=>"/var/lib/logstash/queue/log/checkpoint.head.tmp (Too many open files)", :exception=>Java::JavaIo::FileNotFoundException, :backtrace=>[“java.base/java.io.FileOutputStream.open0(Native Method)”, “java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)”, “java.base/java.io.FileOutputStream.(FileOutputStream.java:237)”, “java.base/java.io.FileOutputStream.(FileOutputStream.java:187)”, “org.logstash.ackedqueue.io.FileCheckpointIO.write(FileCheckpointIO.java:105)”, “org.logstash.ackedqueue.Page.headPageCheckpoint(Page.java:202)”, 这个问题是 Logstash Pipeline 在处理数据时报错,原因是打开文件过多导致"Too many open files" 解决方法 1. 检查操作系统的文件打开数量限制,使用ulimit -n查看。如果太低,可以提高这个限制 打开 /etc/profile 增加ulimit 值 1vim /etc/profile 2## 增加,保存并退出 3ulimit -n 10240 4# 重载配置 5source /etc/profile 2. 适当增大Logstash的heap size,如-Xms和-Xmx设置为2g。 1vim /etc/logstash/jvm.option 2# 修改参数 3-Xms 2g 4-Xmx 2g 5# 重启logstash服务

jobcher

2023年9月20日 1 分钟阅读 博客

解决Elasticsearch索引只读(read-only)

背景 这两天有开发向我反馈说elasticsearch有报错,嘿,我定睛一看,这不是进入只读状态了,看来是存储达到额度,我马上加个新的数据节点,平衡一下存储压力 报错信息: 1Elasticsearch Error {type:cluster_block_exception,reason:”blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];} 新建服务器,安装elasticsearch 为了和之前的服务器一样,我简单写一下我elasticsearch版本和服务器系统版本 软件 版本 centos 7.9 elasticsearch 6.7.2 JDK 1.8.61 内存 32G 安装和配置elasticsearch 使用rpm 安装 1wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.2.rpm 1rpm --install elasticsearch-6.7.2.rpm 配置参数,进入/etc/elasticsearch目录 修改配置vim elasticsearch.yml 1# ======================== Elasticsearch Configuration ========================= 2 3cluster.name: cluster-prod-es # 集群名称 4 5node.name: node-x # 节点名称 6 7path.data: /var/lib/elasticsearch # 数据存储 8 9path.logs: /var/log/elasticsearch # 日志存储 10 11network.host: 192.168.0.170 # 主机IP地址 12 13http.port: 9200 # 端口号 14 15discovery.

jobcher

2023年8月30日 3 分钟阅读 博客

Linux 系统收包流程以及内核参数优化

简介 高并发的系统架构中,任何细微调整,稍有不注意便会引起连锁反应,只有系统地了解整个网络栈,在处理疑难杂症或者系统优化工作中,才能做到手中有粮心中不慌。在本节,我们概览一个 Linux 系统收包的流程,以便了解高并发系统所面临的性能瓶颈问题以及相关的优化策略。 收包过程 网卡 eth0 收到数据包。 网卡通过 DMA 将数据包拷贝到内存的环形缓冲区(Ring Buffer,在网卡中有 RX Ring 和 TX Ring 两种缓冲)。 数据从网卡拷贝到内存后, 网卡产生 IRQ(Interupt ReQuest,硬件中断)告知内核有新的数据包达到。 内核收到中断后, 调用相应中断处理函数,开始唤醒 ksoftirqd 内核线程处理软中断。 内核进行软中断处理,调用 NAPI poll 接口来获取内存环形缓冲区(ring buffer)的数据包,送至更上层处理。 内核中网络协议栈:L2 处理。 内核中网络协议栈:L3 处理。 内核中网络协议栈:L4 处理。 网络协议栈处理数据后,并将其发送到对应应用的 socket 接收缓冲区。 高并发瓶颈 用户进程调用系统调用陷入内核态的开销。 CPU 响应包的硬中断 CPU 开销 ksoftirqd 内核线程的软中断上下文开销。 RX/TX Ring 优化 处理一个数据包会有各类的中断、softirq 等处理,因为分配给 Ring Buffer 的空间是有限的,当收到的数据包速率大于单个 CPU 处理速度的时,Ring Buffer 可能被占满并导致新数据包被自动丢弃。一个 CPU 去处理 Ring Buffer 数据会很低效,这个时候就产生 RSS、RPS 等多核并发机制来提升内核网络包的处理能力。 但是注意,开启多核并发特性,会挤压业务代码的执行时间,如果业务属于 CPU 密集型,会导致业务性能下降。是否开启多核处理,需要根据业务场景考虑,根据笔者的经验来看,例如此类负载均衡服务器、网关、集群核心转发节点等网络I/O 密集型场景可以尝试优化 RSS、RPS 等配置。

jobcher

2023年8月10日 1 分钟阅读 博客

Vue3 + vite + nginx项目部署后404问题

Vue3 + vite + nginx项目部署后404问题 vue3 + vite + nginx 在服务器上部署后打开首页都没问题,打开其他路径全部 404。 nginx 报错日志:No such file or directory 其实查看 build 后的dist文件夹可以发现,只有一个index.html,当你访问别的路径时nignx查找不到所以就报错了 解决方案 在 nginx.conf 中添加: try_files $uri $uri/ /index.html; server { listen 80; server_name localhost; location / { root /dist; index index.html index.htm; # 在配置文件的此处加上这句话 try_files $uri $uri/ /index.html; } } 总结 其实上述改动就是告诉 nignx 找不到文件的时候就访问 index.html 就可以了。 究其原因其实就是是 vue3 的 router 使用了history模式,该模式与之前hash模式的具体区别可以自行百度一下,不在此赘述。

jobcher

2023年3月30日 2 分钟阅读 博客

JOBCHER BLOG

使用scrapy-redis实现增量爬取 Scrapy-Redis是Scrapy框架的一个插件,可以使用Redis实现Scrapy的分布式爬虫。它使用Redis作为分布式队列,可以轻松地将爬虫分布在多个机器上。同时,它还提供了一些功能,如去重、持久化、增量爬取等。 要使用Scrapy-Redis实现增量爬取,可以采取以下步骤: 在Scrapy项目中安装Scrapy-Redis插件。可以使用pip安装:pip install scrapy-redis 在Scrapy的settings.py中添加如下配置: 1# 使用Redis调度器 2SCHEDULER = "scrapy_redis.scheduler.Scheduler" 3# 使用Redis去重过滤器 4DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" 5# 允许暂停、恢复爬取 6SCHEDULER_PERSIST = True 将Spider的爬取链接放入Redis队列中。可以在Spider中重载start_requests()方法,从Redis队列中获取链接开始爬取。 1import scrapy 2from scrapy_redis.spiders import RedisSpider 3 4class MySpider(RedisSpider): 5 name = 'myspider' 6 redis_key = 'myspider:start_urls' 7 8 def parse(self, response): 9 # 处理响应 10 pass 在Spider中实现增量爬取。可以通过重载Spider中的start_requests()方法或者使用SpiderMiddleware来实现增量爬取。这里提供一种通过修改Redis队列来实现增量爬取的方法。 1import scrapy 2import redis 3from scrapy_redis.spiders import RedisSpider 4from scrapy.utils.project import get_project_settings 5 6class MySpider(RedisSpider): 7 name = 'myspider' 8 redis_key = 'myspider:start_urls' 9 redis_conn = None 10 11 def __init__(self, *args, **kwargs): 12 super(MySpider, self).

jobcher

2022年11月29日 27 分钟阅读 博客

JOBCHER BLOG

背景 在开发 Web 项目当中,浏览器必不可少,而浏览器的启动参数可以帮我们实现很多功能。 常用参数 序号 参数 说明 1 –allow- ted-plugins 不停用过期的插件。 2 –allow-running-insecure-content 默认情况下,https 页面不允许从 http 链接引用 javascript/css/plug-ins。添加这一参数会放行这些内容。 3 –allow-scripting-gallery 允许拓展脚本在官方应用中心生效。默认情况下,出于安全因素考虑这些脚本都会被阻止。 4 –disable-desktop-notifications 禁用桌面通知,在 Windows 中桌面通知默认是启用的。 5 –disable-file-system 停用 FileSystem API。 6 –disable-preconnect 停用 TCP/IP 预连接。 7 –disable-remote-fonts 关闭远程字体支持。SVG 中字体不受此参数影响。 8 –disable-web-security 不遵守同源策略。 9 –disk-cache-dir 将缓存设置在给定的路径。 10 –disk-cache-size 设置缓存大小上限,以字节为单位。 11 –dns-prefetch-disable 停用 DNS 预读。 12 –enable-print-preview 启用打印预览。 13 –extensions-update-frequency 设定拓展自动更新频率,以秒为单位。 14 –incognito 让浏览器直接以隐身模式启动。 15 –keep-alive-for-test 最后一个标签关闭后仍保持浏览器进程。(某种意义上可以提高热启动速度,不过你最好得有充足的内存) 16 –kiosk 启用 kiosk 模式。(一种类似于全屏的浏览模式) 17 –lang 使用指定的语言。 18 –no-displaying-insecure-content 默认情况下,https 页面允许从 http 链接引用图片/字体/框架。添加这一参数会阻止这些内容。 19 –no-referrers 不发送 Http-Referer 头。 20 –no-startup-window 启动时不建立窗口。 21 –proxy-server 使用给定的代理服务器,这个参数只对 http 和 https 有效。 22 –start-maximized 启动时最大化。 23 –single-process 以单进程模式运行 Chromium。(启动时浏览器会给出不安全警告)。 24 –user-agent 使用给定的 User-Agent 字符串。 25 –process-per-tab 每个分页使用单独进程。 26 –process-per-site 每个站点使用单独进程。 27 –in-process-plugins 插件不启用单独进程。 28 –disable-popup-blocking 禁用弹出拦截。 29 –disable-javascript 禁用 JavaScript。 30 –disable-java 禁用 Java。 31 –disable-plugins 禁用插件。 32 –disable-images 禁用图像。 更多参数 由于水平有限,下表为网络翻译,了解跟多可根基参数,查找相关资料。

jobcher

2022年11月25日 3 分钟阅读 博客

JOBCHER BLOG

背景 Jenkins 编译 Android apk,上传 apk 包,生成下载二维码,并推送钉钉 安装 Android 环境 安装 JDK 1# 这里使用的是openjdk 1.8.0版本,有需要的话需要到java官网上进行下载对应的JDK版本。 2$ yum install java -y 3 4# 其他版本JDK的安装方式 5$ mv jdk1.8.0_161 /usr/local/ 6$ ln -s /usr/local/jdk1.8.0_161 /usr/local/jdk 7$ vim /etc/profile #配置JDK的环境变量 8export JAVA_HOME=/usr/local/jdk 9export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH 10export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar 11$ source /etc/profile #重新加载系统环境变量 12$ java -version #查看java版本 Android SDK 安装 1# 下载sdk工具包 2$ wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip 3 4# 创建sdk工具文件夹和解压工具包 5$ mkdir -p /opt/android/sdk 6$ unzip sdk-tools-linux-3859397.zip -d /opt/android/sdk 7 8# 使用sdkmanager工具配置构建工具和平台版本 9$ cd /opt/android/sdk/tools/bin/ 10$ .

jobcher

2022年10月31日 1 分钟阅读 博客

JOBCHER BLOG

Nexus3 docker-compose 安装 创建外部存储 1mkdir -p /data/nexus 2chmod +777 -R /data/nexus 运行 docker-compose 1version: '3' 2services: 3 nexus3: 4 image: sonatype/nexus3:3.42.0 5 container_name: nexus3 6 ports: 7 - 8081:8081 8 - 5000:5000 9 volumes: 10 - /data/nexus:/nexus-data 11 environment: 12 - INSTALL4J_ADD_VM_PARAMS=-Xms1024m -Xmx1024m -XX:MaxDirectMemorySize=1024m -Djava.util.prefs.userRoot=/some-other-dir 13 restart: always 14 # 赋予外部root权限 15 privileged: true docker-compose up -d 运行 docker-compose

jobcher

2022年10月21日 1 分钟阅读 博客

githubAction set-output弃用错误

githubAction set-output 弃用错误 The set-output command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ 原因 如果您有一个使用 设置输出的GitHub Actionsecho ::set-output key=value工作流程,您已经开始看到无用的弃用警告。这是修复它的方法。查看官方链接基本上得不到什么帮助! 修复方法 更新其它人的 action 方法 1将 @actions/core 提升到 1.10.0 修改自己的 aciton 方法 1run: echo "::set-output name=KEY::VALUE" 2## 改为 3run: echo "KEY=VALUE" >>$GITHUB_OUTPUT 建议:使用自己的方法 总结 平台经营者非常肆意妄为的修改自己的代码内容弃用功能,无限的权力滋生傲慢……我相信大部分开发这并没有注意到这个告警,知道流水线服务报错之后才会注意到,希望微软可以对能更加包容不同的开发者,尊重开发者社区。