Hello World - 教程
type: channel
link: https://blog.d1d1.de/index.php/tag/tutorial/
items: 从 0 搭建 Mailu 邮件服务器：Docker Compose 部署 + DNS 记录 + 证书/反向代理要点
items: Linux 常用命令大全：文件、进程、网络、磁盘、日志速查

从 0 搭建 Mailu 邮件服务器：Docker Compose 部署 + DNS 记录 + 证书/反向代理要点
type: item
date: 2026-02-25T14:51:56+00:00
description: Mailu 是一个“全家桶”式的邮件服务器方案：SMTP/IMAP、反垃圾、Webmail、管理后台都给你打包好了。本文用 Docker Compose 从 0 在一台 VPS 上搭建可用的 Mailu，并把 DNS 记录、证书、端口/反向代理冲突、投递成功率（PTR/反向解析） 这些容易踩坑的点一次讲清。0. 前置准备（别跳过） 一台干净的 VPS（建议 Debian 12/13 / Ubuntu 22.04+）。 一个域名：*你的主域名*（示例：example.com）。 一个邮件主机名（MX 指向它）：*你的邮件主机名*（示例：mx.example.com）。 服务器公网 IP：*你的服务器公网IP*。 重要：最好能设置 PTR（反向解析）把 IP 指回 *你的邮件主机名*，否则很多收件方会降权甚至拒收。 1. 规划：端口、主机名、证书模式1.1 邮件常用端口（建议全部开放） 25/tcp：SMTP（服务器间投递） 465/tcp：SMTPS（客户端提交，隐式 TLS） 587/tcp：SMTP Submission（客户端提交，STARTTLS） 143/tcp：IMAP（STARTTLS） 993/tcp：IMAPS（隐式 TLS） 4190/tcp：Sieve（邮件过滤规则） 80/443：Web 管理后台 / Webmail（以及 Let's Encrypt 校验） 如果你只想给自己用，理论上可以不开放 110/995（POP3），一般也不建议开。1.2 证书（TLS）怎么选 推荐：让 Mailu 自己申请 Let's Encrypt（简单直接）。要求：80/443 能从公网直连到 Mailu 前端容器。 如果你的服务器上已经有 Nginx/Apache 占用 80/443：要么把网站迁到反代到 Mailu（或改端口），要么改用“外置证书”模式（见后文“端口冲突/反向代理”）。 2. 安装 Docker 与 Docker Compose下面以 Debian 为例，其他发行版按官方文档调整即可。# 更新系统 sudo apt update sudo apt -y upgrade # 安装 Docker sudo apt -y install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 验证 docker --version docker compose version3. 用 Mailu 向导生成配置Mailu 官方提供配置向导，会输出 docker-compose.yml 和 mailu.env。你可以在浏览器里用向导生成，也可以参考本文直接写。3.1 目录结构（建议）sudo mkdir -p /mailu cd /mailu3.2 核心配置（mailu.env 示例，关键项解释）下面是常用关键项（示例值都请替换为你自己的）。# /mailu/mailu.env DOMAIN=*你的主域名* # 例如 example.com HOSTNAMES=*你的邮件主机名* # 例如 mx.example.com（也可逗号分隔多个） POSTMASTER=*你的postmaster用户名* # 例如 postmaster 或 admin # 让 Mailu 自己申请 Let's Encrypt TLS_FLAVOR=letsencrypt # Web 路径（默认就挺好） WEB_ADMIN=/admin WEB_WEBMAI…

Linux 常用命令大全：文件、进程、网络、磁盘、日志速查
type: item
date: 2026-02-25T13:39:17+00:00
description: Linux 常用命令很多，但日常高频其实就那一批：看目录、找文件、查进程、看端口、压缩传输、看日志、排查磁盘/内存。本文按场景整理一份常用命令清单，配最常见的例子，适合收藏备用。说明：示例以常见发行版（Debian/Ubuntu/CentOS/RHEL 系）通用命令为主；需要管理员权限时用 sudo。目录（按场景速查） 文件与目录：ls / cd / cp / mv / rm / mkdir 内容查看：less / head / tail -f 搜索：find / grep / rg 权限：chmod / chown / sudo 进程性能：ps / top / kill 网络端口：ip / ss / curl 磁盘：df / du / lsblk systemd 日志：systemctl / journalctl 压缩：tar / zip 远程：ssh / scp / rsync 1）目录与文件查看与切换pwd # 当前路径 ls # 列出文件 ls -lah # 人类可读 + 显示隐藏文件 + 详细信息 cd /path/to/dir # 进入目录 cd .. # 返回上级创建/复制/移动/删除mkdir -p a/b/c # 递归创建目录 cp a.txt b.txt # 复制 cp -r dir1 dir2 # 复制目录 mv old new # 移动/重命名 rm file # 删除文件 rm -r dir # 删除目录（谨慎）查看文件内容cat file # 直接输出（小文件） less file # 分页查看（推荐） head -n 50 file # 看前 50 行 tail -n 50 file # 看后 50 行 tail -f app.log # 实时追踪日志2）搜索：找文件、找内容找文件（按名字/类型/大小/时间）find /var/log -name "*.log" find . -type f -maxdepth 2 find . -type f -size +100M find . -type f -mtime -1 # 1 天内修改在文件中找内容（grep）grep "keyword" file grep -R "keyword" /etc # 递归搜索目录 grep -RIn "keyword" . # 显示行号、忽略大小写更快的替代（如果已安装）rg "keyword" . # ripgrep3）权限与用户ls -l chmod 644 file chmod 755 script.sh chmod -R 755 dir chown user:group file chown -R user:group dir sudo command4）进程与性能ps aux | head ps aux | grep nginx top # 经典交互 htop # 更友好（需安装） kill PID kill -9 PID # 强制（谨慎） pkill nginx # 按进程名杀 uptime # load average free -h # 内存 vmstat 1 # 每秒刷新（需安装 procps 等）5）网络与端口ip a # 网卡与 IP ip r # 路由表 cat /etc/resolv.conf # DNS ss -lntp # 监听的 TCP 端口 + 进程 ss -lnup # 监听的 UDP 端口 ping -c 4 8.8.8.8 curl -I https://example.com curl -sS https://example.com | head wget -O- https://example.com | head6）磁盘与文件系统df -h du -sh * | sort -h # 当前目录下各项占用（可能较慢） du -sh /var/log/* | sort -h lsblk mount | head7）压缩与解压# tar.gz（最常见） tar -czf backup.tar.gz dir/ tar -xzf backup.tar.gz # zip zip -r archive.zip dir/ unzip archive.zip8）日志与排错（systemd）systemctl status nginx systemctl restart nginx systemctl enable nginx journalctl -u nginx --no-pager -n 200 journalctl -u nginx -f journalctl --since "1 hour ago"9）包管理# Debian / Ubuntu（apt） apt update apt …