proftpd
ProFTPD,首先要理解它的设计哲学:高度模块化和类 Apache 的配置风格。 安装部署 Debian/Ubuntu: 1sudo apt install proftpd-basic CentOS: 1yum install proftpd 一、 ProFTPD 的核心作用ProFTPD (Professional FTP Daemon) 的主要职责是提供安全、可控的文件传输。 多身份验证支持:可以支持系统用户(/etc/passwd)和虚拟用户(不占用系统账号,安全性极高)。 精细权限控制:可以针对特定 IP、特定时间段或特定指令(如禁止删除、禁止下载)进行限制。 沙盒化(Chroot):将用户锁定在指定目录,无法跳出查看系统其他文件。 二、 核心命令与工具链需要熟练操作以下工具: 1. 运行管理 proftpd -t: 配置自检。修改配置后必跑,防止因语法错误导致服务宕机。 proftpd -v: 查看版本及编译时包含的模块。 **proftpd -V (大写)**:显示编译时的详细参数,包括安装了哪些模块(如 mod_lang, mod_auth_fi...
vsftpd
FTP 的工作模式,这是解决后续所有“连接超时”问题的关键。 FTP 的双通道机制: 与 HTTP 不同,FTP 使用两个并行连接: 控制连接(端口 21): 负责发送指令(登录、列出文件)。 数据连接(随机端口): 负责实际的文件传输。 主动模式 (Active) vs. 被动模式 (Passive): 主动模式: 服务器主动连接客户端。在现代互联网(客户端多在防火墙后)环境下经常失效。 被动模式: 客户端请求服务器开放一个随机端口进行连接。这是生产环境的标配,也是后续配置的重点。 vsftpd 的设计哲学: 名字中的 “vs” 代表 Very Secure。它通过进程隔离(Privilege Separation)和最简权限原则,确保即使一个连接被破解,攻击者也无法获得系统 root 权限。 vsftpd 实战全手册一、 基础安装与环境准备1. 安装根据不同的 Linux 发行版选择对应的包管理器: Ubuntu/Debian: sudo apt update && sudo apt install vsftpd db-util Ce...
bash之jq处理json
一、 核心基础:精准定位 (Selectors)与 JSON 交互的起点,解决“数据在哪”的问题。 **. (Identity)**:最基础的过滤器,输出原始 JSON 且自动格式化(Pretty-print)。 **.field (Object Access)**:通过键名获取值。如果键名包含特殊字符(如横线),需使用引号:."user-name"。 **.parent.child (Chaining)**:通过点号链接,深度进入嵌套结构。 **.[] (Array/Object Iterator)**: 用于数组时:将数组拆解为一个个独立的元素流。 用于对象时:返回对象所有属性的值流(不含键名)。 **.[index] (Index Access)**:获取数组特定位置元素,支持负数索引(如 .[-1] 获取末尾元素)。 **.[start:end] (Slicing)**:对数组或字符串进行切片,遵循左闭右开原则。 假设有一个名为 data.json 的文件: 12345{ "user": "b...
RHEL7系列软件包管理
RHEL 7 系列,其主流管理工具是 RPM 和 YUM(而在较新的 CentOS 8/Stream 或 Rocky Linux 中,YUM 已被 DNF 取代)。 RPM 是 Linux 下最底层的包管理工具,直接处理 .rpm 后缀的安装包文件。它像是一个“安装执行员”,负责把文件放到正确的位置。YUM 是基于 RPM 的前端管理工具。它像是一个“智能管家”,通过读取远程或本地的软件仓库(Repository)来管理软件。 RPM 命令详解rpm 是最底层的包管理工具,通常在离线安装、安全审计、软件包打包及故障排查场景下使用它。 1. 核心操作模式 (Main Modes) **-i (install)**:安装软件包。 **-U (upgrade)**:升级软件包。如果软件包不存在,则执行安装;如果已存在旧版本,则更新。 **-F (freshen)**:仅在软件包已安装的情况下进行升级。 **-e (erase)**:卸载软件包。 **-q (query)**:查询软件包信息。 **-V (verify)**:验证已安装软件包的完整性。 2. 通用辅助参数 ...
服务软件上线必备清单
软件上线必备清单 (Checklist)作为一名架构师,软件“能跑起来”只是开始,“稳健运行”才是核心。以下是我梳理的生产环境上线标准: 1. 环境与资源 (Environment) 资源对标: 评估 CPU/内存/磁盘 IO 是否满足业务峰值需求。 系统调优: 优化 sysctl 内核参数、提高 ulimit 文件描述符限制。 依赖管理: 规范安装源(如 Harbor、私有 Repo),统一软件主版本号。 2. 安全加固 (Security) 权限收敛: 严禁 root 运行,创建专用 nologin 系统用户。 边界管控: 最小化防火墙策略,仅开放业务必须端口。 配置加密: 生产环境强制开启 TLS/SSL,对敏感配置进行脱敏或加密存储。 3. 可观测性 (Observability) 日志治理: 配置 Logrotate 轮转,日志接入中心化平台(ELK/Graylog)。 监控埋点: 接入 Prometheus/Zabbix,配置核心指标(QPS、延迟、错误率)告警。 健康检查: 提供 /health 接口,配合负载均...
小主机捣鼓记
123456789101112# 1. 设置代理(指向你的 Mac IP,这里假设是 192.168.0.105)export http_proxy=http://192.168.0.105:7897export https_proxy=http://192.168.0.105:7897# 2. 导入 ELRepo 仓库公钥rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 3. 安装 ELRepo 源yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm# 4. 安装 6.x 稳定版内核yum --enablerepo=elrepo-kernel install -y kernel-ml
我的云主机ssh登录问题
在远程登录我的云主机时,除了开通相应端口,要在控制台设置ssh登录。 在os management中,Console connection – Create local connection – 有3个选项: Generate a key pair for me Upload public key file (.pub) Paste public key 然后 create console connection 云主机生成的密钥对,下载下来时可能权限过高,要更改为600权限,生成的公钥在云主机的控制台网关上,并没有在系统内~/.ssh/authorized_keys , 所以只能通过”串口控制台”登录。在生成的公钥指纹右侧,选择Copy serial console connection for Linux/Mac 123# ssh -i 指定下载的私钥, 及复制的一长串内容:-o ProxyCommand= .....ssh -i ~/.ssh/srv1.key -o ProxyCommand='ssh -i ~/.ssh/srv1.key ...' .....
IP 连接 (IP Connectivity)
IP 连接 (IP Connectivity)1. 路由器的工作原理 (Router Operation)路由器工作在 OSI 模型的网络层(第三层),其核心功能是转发数据包,并在不同的网络(或称子网)之间进行寻址。 a. 转发决策的依据路由器不依赖 MAC 地址表,而是基于数据包的 目的 IP 地址 来进行转发决策。 数据包进入: 路由器接口收到一个数据包。 解封装: 路由器移除第二层(以太网)头部,检查第三层(IP)头部。 查找路由表: 路由器检查数据包的目的 IP 地址,并将其与路由表中的所有条目进行匹配。 最长前缀匹配 (Longest Prefix Match): 路由器选择与目的 IP 地址匹配度最高的条目,即子网掩码(或前缀长度)最长的路由条目。这是路由器的核心决策原则。 转发: 根据选定的路由条目,路由器确定下一跳 IP 地址和出接口。 重新封装: 路由器使用出接口的 MAC 地址作为源 MAC 地址,并使用下一跳设备的 MAC 地址作为目的 MAC 地址,重新封装数据包(将 IP 数据包封装到新的二层帧中)。 发送: 路由器通过出接口发送新的二层帧。 b. ...
交换机技术和局域网接入
💻 网络接入 (Network Access)1. 交换机技术和工作原理 (Switching Technology)交换机在 OSI 模型的数据链路层(第二层)工作,其主要功能是根据数据帧中的 MAC 地址进行转发决策。 **MAC 地址学习 (MAC Address Learning)**: 交换机初始化时,它的 MAC 地址表 (MAC Address Table) 是空的。 当交换机接收到一个数据帧时,它会检查数据帧的源 MAC 地址。 交换机将该源 MAC 地址与其进入的端口进行关联,并记录在 MAC 地址表中。 示例: 如果数据帧从 Gi0/1 端口进入,源 MAC 地址是 AA:AA:AA:AA:AAAA,交换机就记录:AA:AA:AA:AA:AAAA 对应 Gi0/1。 **转发决策 (Forwarding Decision)**: 交换机检查数据帧的目的 MAC 地址。 查找 MAC 地址表: 命中 (Match): 如果目的 MAC 地址在 MAC 地址表中,交换机将数据帧单播 (Unicast) 转发到对应的出端口。 未知 (Unknown...
ipv6
🌐 IPv6 基础:地址表示方法 (Address Representation)IPv6 地址长 128 位 (bits),这与 IPv4 的 32 位形成了巨大的差异,也是其地址空间庞大的根本原因。 1. 基本格式 (The Basics) 十六进制表示: IPv6 地址使用十六进制(Hexadecimal)表示,而不是像 IPv4 那样使用十进制。 分段 (Segments): 128 位地址被分成 8 个 16 位的段(或称为 Block/Group)。 分隔符: 每个 16 位的段之间用冒号 (colon, : ) 分隔。 示例: 2001:0DB8:3C4D:0015:0000:0000:1A2B:0500 在这个例子中: 地址由 8 个 16 位的十六进制段组成。 每个段可以包含 4 个十六进制数字 (4 * 4 bits = 16 bits)。 2. 地址简化规则 (Address Simplification Rules)由于 IPv6 地址很长,Cisco 和 IETF 定义了两条规则来简化地址的书写。 规则一:省略前导零 (Omi...
