OpenSSL 版本问题导致 SSH 服务无法正常启动的修复方法
故障如上图所示,启动 ssh 服务时抛出如下错误 OpenSSL version mismatch build against xxxxx you have xxxxxx 这是因为 OpenSSL 与 OpenSSH 服务的版本号不匹配导致的此类问题,经检查 OpenSSL 版本高于 OpenSSH 所需要的版本。 解决方案 升级OpenSSH服务 检查并安装相关依赖以及编译工具1sudo apt install build-essential checkinstall zlib1g-dev libpam0g-dev 编译安装 OpenSSH下载 OpenSSH 源码包并解压 1234wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gztar -zxvf openssh-9.9p1.tar.gzcd openssh-9.9p1mkdir build 使用 configure 脚本配置 OpenSSH 1./configure...
iptables替代品 nftables
iptables替代品 nftables 我们在管理 linux上的防火墙规则时基本一直都在用的是iptables吧,最近发现了一位 ”新警长“ nftables ,从linux kernel 3.15版本开始 nftables优先级高于iptables,成为了默认的防护墙规则管理工具,比iptables更灵活,更高效,nftables与iptables都用于实现netfilter提供的钩子函数,用于真正处理网络数据包。 下方表是目前不同操作系统版本以及默认的防火墙软件 系统名称 版本 默认防火墙软件 备注 Ubuntu 20.04 iptables 默认使用 iptables Ubuntu 22.04 nftables 默认使用 nftables RHEL/CentOS 7 iptables 默认使用 iptables 不支持 nftables RHEL/CentOS 8-9 nftables 默认使用 nftables 可以通过安装 iptables 来兼容旧规则 簇...
Containerd 常用命令以及Docker与Containerd的区别
最近尝试用 Containerd 去部署k8s集群,现在contailerd已经成为k8s推荐的容器运行时之一,这篇文章总结了一些 Containerd 常用的管理命令,先来看一下 Docker 与 Containerd 的区别,(内容来自https://cloud.tencent.com/developer/article/2327654) 在 Kubernetes 提出 CRI 操作规范时,Docker刚拆出 containerd,并不支持 CRI 标准。由于当时Docker是容器技术最主流也是最权威的存在,Kuberentes虽然提出了CRI接口规范,但仍然需要去适配CRI与Docker的对接,因此它需要一个中间层或 shim 来对接 Kubelet 和 Docker 的 contianer runtime。 于是 kubelet 中加入了 Dockershim (shim为临时、兼容的意思)。使用 docker 作为 runtime 时,实际启动一个容器的过程是: 在这个阶段 dockershim组件在Kubelet...
你的NAS真的安全吗? 如何确保NAS的安全性
前言 前几年因为某些网盘的一些问题让一个名叫 NAS 的东西得到了广泛的普及,这种个人存储设备除了在家里使用外有不少用户使用各种方法实现在家外同样可以访问家中的存储设备,例如群晖的QC,飞牛的FN Connect等等,这些用起来确实很方便,但是也有很大的安全隐私风险,尤其是拥有公网Ip的用户,很多用户直接使用 DMZ 将内网NAS暴露到公网中,很多黑客会对某个Ip段的一些高危端口进行扫描攻击,密码穷举,例如 SMB的445端口,NFS的2049/111端口等,这些都是比较常见的高危端口,SMB协议曾因永恒之蓝漏洞被“WannaCry”勒索病毒利用,导致全球范围的大规模攻击。而NFS的111端口是RPC远程过程调用服务的默认端口,2049端口是NFS服务的默认端口,攻击者可通过这些端口获取NFS共享信息,进而进行未经授权的数据访问、信息泄露或未受监控的文件传输,还有 SSH,RDP端口,搭建过网站或者用过云服务器的大概都知道,只要你的主机开着22端口 3389端口,很大的几率会别人扫到并且对你进行弱密码攻击,,,更不用说 SMB...
自建Bitwarden密码管理器
相信大家都用过很多密码管理器,例如使用 Google Edge 浏览器登录了某个网站,提示是否保存密码,方便下次登陆,如果您点击保存密码他会将您的账号保存到 Google,或者 Microsoft账号中,但是这仅限于浏览器中,而且数据不在自己手中,现在我给大家推荐一个可以私有化部署,全平台自动同步的密码管理软件,Bitwarden,下面是详细搭建教程 环境准备首先需要安装 Docker,如果不会安装请参考:Docker安装教程 搭建这里使用的是 Rust 编写的非官方 Bitwarden 兼容服务器,以前称为 bitwarden_rs GitHub:https://github.com/dani-garcia/vaultwarden 使用Docker进行安装 12345docker run --detach --name vaultwarden \ --volume /data/vaultwarden/:/data/ \ --restart unless-stopped \ --publish 81:80 \ ...
Hexo Deploy 使用 GitHub WebHook 更新文章
最近“心血来潮” 将博客网站迁移到了 Hexo,但是 Hexo 部署到 服务器后,由于我是多服务器+Vercel的环境,为了方便,就想了一个办法,实现了与Vercel一样的功能,使用 GitHub WebHook ,下面介绍一下实现过程 1. 先介绍一下什么是什么是 WebhookWebhook 是一种基于 HTTP 回调的机制,允许应用在特定事件发生时向指定 URL 发送 POST 请求,从而触发后续操作。例如,GitHub Webhook 可在代码推送时触发,这里我设置了一台主服务器,通知服务器通过脚本拉取最新代码完成部署,然后同步到其他服务器中 2. Webhook 服务器配置这里为了方便使用 Express写了个 Webhook 服务器,监听 GitHub 推送事件,并执行部署脚本。 2.1 安装 Node.js 环境可以参考我的另一篇文章: https://www.wanghaoyu.com.cn/archives/linux-nodejs-deploy.html? 2.2 创建 Webhook 服务器在你的hexo目录下安装express以及相关依赖 1pnpm...
本地部署 DeepSeek-R1 模型全攻略
DeepSeek-R1 作为一款性能卓越的开源推理模型,凭借其在数学、代码和逻辑推理任务上的出色表现,吸引了众多开发者的关注,这篇文章带大家使用 Ollama 部署 DeepSeek-R1 本地模型 目录[TOC] 首先 我们需要了解一下,什么是 Ollama ? Ollama 简介 Ollama 是一个快速、轻量且易于使用的开源 AI 代理框架,由 Facebook 开发,可以用来托管和运行各种语言模型(LLM),可以实现在您的硬件设备快速部署各种本地大模型,并且提供了一个简单命令行界面,方便用户快速部署。 既然现在已经了解了 Ollama是干嘛的,那么接下来就是在你的操作系统中安装 Ollama了 安装OllamaWindows访问 Ollama官网 下载Windows版本安装即可 Linux 操作系统在你的终端中执行如下命令 1curl -fsSL https://ollama.com/install.sh | sh Docker安装在 Linux操作系统中也可以通过 Docker进行安装 Ollama如果您需要配置 Ollama...
Helm 部署 nfs-subdir-external-provisioner
在 Kubernetes 集群中,可以通过 Helm 部署 nfs-subdir-external-provisioner 来动态管理持久卷,这是一个存储资源自动调配器,可以将现有的 NFS 服务器通过持久卷声明来支持 持久卷的动态分配 前置条件: NFS服务器正常运行并且能够与集群通信 安装 Helm 集群正常运行 添加仓库将 nfs-subdir-external-provisioner 的 Helm 仓库添加到本地 12helm repo add nfs-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisionerhelm repo update 部署下载nfs-subdir-external-provisioner的 chart 到本地 1helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --untar 编辑其目录中的 values.yaml...
PVE删除Local-lvm存储空间并合并到local中
1、合并存储删除local-lvm存储空间首先,需要删除local-lvm存储空间中的逻辑卷 1lvremove pve/data 将释放出来的空间合并到pve/root逻辑卷中 1lvextend -l +100%FREE -r pve/root 这样会将所有空闲的空间(+100%FREE)扩展到pve/root逻辑卷中,-r`参数会自动调整文件系统的大小,以匹配逻辑卷的新大小。 web界面删除local-lvm数据中心-存储-删除local-lvm 编辑local,内容里添加 磁盘映像和容器就可以了 注意:在执行删除以及合并操作之前务必先检查 local-lvm 中是否存在现有虚拟机,一旦删除数据无法恢复,如果物理磁盘较小可以将虚拟机的镜像文件copy出来然后在执行操作
解决Bash 脚本换行符问题
最近写了一个shell脚本,,是在Windows系统下写的,编写完成后复制到Linux系统中执行时报错了,大概是这样,,, 12345678build.sh: line 3: $'\r': command not found: invalid option set: -set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]build.sh: line 6: $'\r': command not foundbuild.sh: line 11: $'\r': command not foundbuild.sh: line 18: $'\r': command not foundbuild.sh: line 20: syntax error near unexpected token `$'{\r'''ild.sh: line 20: `setup_install()...