Ubuntu 22.04 最小化安装和20项必做常见优化配置,深度优化与安全加固完全指南
1. Ubuntu 22.04 最小化安装步骤1.1 准备工作下载镜像从 Ubuntu 官网下载 Ubuntu 22.04 LTS Server 镜像ISO 文件。制作启动盘使用 RufusWindows、balenaEtcher跨平台或dd命令Linux/macOS制作 USB 启动盘。服务器硬件检查确保服务器满足最低要求2核 CPU、4GB RAM、25GB 磁盘空间。1.2 安装过程启动安装从 USB 启动选择 “Install Ubuntu Server”。语言与键盘选择 English或中文配置键盘布局。网络配置使用 DHCP 自动获取 IP或手动配置静态 IP生产环境推荐。设置主机名如ubuntu-server。镜像源选择默认或国内镜像源如阿里云、清华源加速下载。磁盘分区最小化安装关键选择 “Custom storage layout”。删除所有现有分区创建新分区表GPT。分区方案建议/boot1GBext4引导分区/剩余空间的 70%ext4根分区/var剩余空间的 20%ext4日志与变量数据swap内存的 1-2 倍如 8GB 内存则分配 8-16GB swap用户设置创建管理员用户避免直接使用 root。设置强密码并勾选 “Install OpenSSH server” 以便远程管理。软件选择最小化安装核心取消所有预选软件如 Docker, Kubernetes, LAMP 等仅保留 “Standard system utilities”。确保选中 “OpenSSH server”。完成安装等待安装完成重启并移除安装介质。1.3 首次登录与验证# 使用创建的用户登录sshyour_userserver_ip# 检查系统版本lsb_release-a# 检查磁盘分区df-hlsblk# 检查网络ipaddr showping-c48.8.8.82. 20 项必做常见优化配置2.1 系统更新与基础工具更新源与系统sudoaptupdatesudoaptupgrade-ysudoaptinstall-ycurlwgetvimnet-toolshtopiftop iotop配置时区与时间同步sudotimedatectl set-timezone Asia/Shanghaisudosystemctlenable--nowsystemd-timesyncd timedatectl status配置国内镜像源加速sudocp/etc/apt/sources.list /etc/apt/sources.list.baksudosed-is/archive.ubuntu.com/mirrors.aliyun.com/g/etc/apt/sources.listsudosed-is/security.ubuntu.com/mirrors.aliyun.com/g/etc/apt/sources.listsudoaptupdate2.2 性能与资源优化调整 swappiness减少 swap 使用echovm.swappiness10|sudotee-a/etc/sysctl.confsudosysctl-p增加文件描述符限制echo* soft nofile 65535|sudotee-a/etc/security/limits.confecho* hard nofile 65535|sudotee-a/etc/security/limits.conf禁用 IPv6如无需使用sudovim/etc/sysctl.d/99-disable-ipv6.conf# 添加以下内容net.ipv6.conf.all.disable_ipv61net.ipv6.conf.default.disable_ipv61net.ipv6.conf.lo.disable_ipv61sudosysctl-p/etc/sysctl.d/99-disable-ipv6.conf调整内核参数网络优化sudovim/etc/sysctl.d/99-network-optimization.conf# 添加以下内容net.core.rmem_max134217728net.core.wmem_max134217728net.ipv4.tcp_rmem409687380134217728net.ipv4.tcp_wmem409665536134217728net.ipv4.tcp_congestion_controlbbrsudosysctl-p/etc/sysctl.d/99-network-optimization.conf2.3 日志与历史命令优化配置日志轮转防止磁盘占满sudovim/etc/logrotate.d/custom# 添加以下内容/var/log/*.log{daily missingok rotate7compress delaycompress notifempty create 0640 root adm}历史命令带时间戳echoexport HISTTIMEFORMAT%Y-%m-%d %H:%M:%S ~/.bashrcechoexport HISTSIZE10000~/.bashrcechoexport HISTFILESIZE20000~/.bashrcsource~/.bashrc配置命令别名echoalias llls -alhF~/.bashrcechoalias grepgrep --colorauto~/.bashrcsource~/.bashrc2.4 服务与进程管理禁用不必要的服务sudosystemctl disable bluetooth.servicesudosystemctl disable cups.servicesudosystemctl disable avahi-daemon.service配置 journald 日志限制sudovim/etc/systemd/journald.conf# 修改以下行SystemMaxUse500MRuntimeMaxUse200Msudosystemctl restart systemd-journald2.5 磁盘与文件系统启用 TRIMSSD 优化sudosystemctlenablefstrim.timersudosystemctl start fstrim.timer调整文件系统挂载参数sudovim/etc/fstab# 在 ext4 分区选项中加入 noatime,nodiratime# 例如UUIDxxx / ext4 defaults,noatime,nodiratime 0 1sudomount-oremount /安装并配置 fail2ban防暴力破解sudoaptinstall-yfail2bansudocp/etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudosystemctlenable--nowfail2ban2.6 网络优化优化 TCP 连接回收echonet.ipv4.tcp_tw_reuse 1|sudotee-a/etc/sysctl.confechonet.ipv4.tcp_fin_timeout 30|sudotee-a/etc/sysctl.confsudosysctl-p调整连接跟踪表大小echonet.netfilter.nf_conntrack_max 524288|sudotee-a/etc/sysctl.confsudosysctl-p2.7 系统监控安装并配置 netdata实时监控bash(curl-Sshttps://my-netdata.io/kickstart.sh)--non-interactive# 访问 http://your_server_ip:19999配置 logrotate 监控日志sudovim/etc/logrotate.d/syslog-monitor# 监控关键日志/var/log/syslog{daily rotate7compress postrotate /usr/lib/rsyslog/rsyslog-rotate endscript}设置定时清理临时文件sudocrontab-e# 添加以下行每天凌晨 3 点清理03* * *find/tmp-typef-atime7-delete3. 高级配置网卡 Bonding 与 Docker 优化3.1 网卡 Bonding模式 4802.3ad LACP安装必要工具sudoaptinstall-yifenslave net-tools加载 bonding 内核模块echobonding|sudotee-a/etc/modules-load.d/bonding.confsudomodprobe bonding配置网络接口sudovim/etc/netplan/01-netcfg.yaml添加以下配置假设两个物理网卡为 enp3s0 和 enp4s0network:version:2renderer:networkdethernets:enp3s0:dhcp4:nooptional:trueenp4s0:dhcp4:nooptional:truebonds:bond0:interfaces:[enp3s0,enp4s0]addresses:[192.168.1.100/24]gateway4:192.168.1.1nameservers:addresses:[8.8.8.8,8.8.4.4]parameters:mode:802.3adlacp-rate:fastmii-monitor-interval:100transmit-hash-policy:layer34应用配置并验证sudonetplan applyiplinkshow bond0cat/proc/net/bonding/bond03.2 Docker 安装与内核参数优化安装 Dockersudoaptinstall-yca-certificatescurlgnupgsudoinstall-m0755-d/etc/apt/keyringscurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudogpg--dearmor-o/etc/apt/keyrings/docker.gpgechodeb [arch$(dpkg --print-architecture)signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu$(lsb_release-cs)stable|sudotee/etc/apt/sources.list.d/docker.list/dev/nullsudoaptupdatesudoaptinstall-ydocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin优化内核参数/etc/sysctl.d/99-docker-optimization.confsudovim/etc/sysctl.d/99-docker-optimization.conf添加以下内容# 网络优化net.ipv4.ip_forward1net.bridge.bridge-nf-call-iptables1net.bridge.bridge-nf-call-ip6tables1# 内存与进程vm.max_map_count262144fs.file-max2097152fs.inotify.max_user_watches524288# 容器专用kernel.panic10kernel.panic_on_oops1sudosysctl-p/etc/sysctl.d/99-docker-optimization.conf优化 Docker 配置sudomkdir-p/etc/dockersudovim/etc/docker/daemon.json添加以下配置{log-driver:json-file,log-opts:{max-size:10m,max-file:3},storage-driver:overlay2,data-root:/var/lib/docker,iptables:true,live-restore:true,default-ulimits:{nofile:{Name:nofile,Hard:65535,Soft:65535}}}sudosystemctl restartdocker3.3 磁盘 I/O 优化针对 Docker使用 XFS 或 ext4 带nodiratime选项调整 I/O 调度器SSD 推荐 noneHDD 推荐 mq-deadline# 查看当前调度器cat/sys/block/sda/queue/scheduler# 永久修改SSD 示例echoACTIONadd|change, KERNELsd*, ATTR{queue/scheduler}none|sudotee/etc/udev/rules.d/60-ioscheduler.rulessudoudevadm control --reload-rules4. 安全加固最后执行4.1 账户与认证安全禁用 root 远程登录sudosed-is/^PermitRootLogin.*/PermitRootLogin no//etc/ssh/sshd_configsudosystemctl restart sshd使用 SSH 密钥登录# 本地生成密钥ssh-keygen-ted25519# 上传公钥到服务器ssh-copy-id your_userserver_ip# 禁用密码登录确认密钥登录正常后sudosed-is/^#PasswordAuthentication yes/PasswordAuthentication no//etc/ssh/sshd_configsudosystemctl restart sshd修改 SSH 端口sudovim/etc/ssh/sshd_config# 修改 Port 22 为其他端口如 2222sudosystemctl restart sshd# 注意防火墙需放行新端口4.2 防火墙配置安装并配置 UFWsudoaptinstall-yufwsudoufw default deny incomingsudoufw default allow outgoingsudoufw allow22/tcp# SSH 原端口sudoufw allow2222/tcp# SSH 新端口如已修改sudoufw allow80/tcp# HTTPsudoufw allow443/tcp# HTTPSsudoufwenablesudoufw status verbose4.3 系统安全增强配置 sudo 超时echoDefaults env_reset,timestamp_timeout5|sudotee-a/etc/sudoers安装并配置 unattended-upgradessudoaptinstall-yunattended-upgradessudodpkg-reconfigure--prioritylow unattended-upgrades# 选择自动安装安全更新配置审计日志sudoaptinstall-yauditdsudosystemctlenable--nowauditd限制 su 命令使用sudodpkg-statoverride--update--addrootsudo4750/bin/su5. 验证与注意事项5.1 配置验证清单网络验证# Bonding 状态cat/proc/net/bonding/bond0# 网络连通性ping-c48.8.8.8curl-Ihttps://www.baidu.com# 端口监听sudoss-tulnp|grep-E:22|:80|:443性能验证# 内核参数sysctl-a|grep-Eswappiness|max_map_count|file-max# 磁盘 I/Osudoiostat-dx15# 内存与 swapfree-hDocker 验证# Docker 服务状态sudosystemctl statusdocker# 运行测试容器sudodockerrun--rmhello-world# 检查存储驱动dockerinfo|grep-istorage安全验证# SSH 配置sudosshd-T|grep-Epermitrootlogin|passwordauthentication# 防火墙规则sudoufw status numbered# 失败登录尝试sudogrepFailed password/var/log/auth.log|tail-55.2 重要注意事项操作顺序严格按照「安装 → 优化 → 网络绑定与 Docker 调优 → 安全加固」的顺序执行。安全加固如修改 SSH 端口、禁用密码登录务必在最后进行避免因配置错误导致无法远程连接。备份先行在进行任何关键配置修改如网络 Bonding、内核参数、安全策略前务必对相关配置文件进行备份并确保有物理或带外Out-of-Band管理访问方式。环境差异本文配置基于 Ubuntu 22.04 LTS Server 最小化安装。若使用其他版本或桌面版部分命令、文件路径或服务名称可能不同请根据实际情况调整。网络配置配置网卡 Bonding 或静态 IP 时请确保 IP 地址、网关、子网掩码与您的网络环境匹配。应用netplan配置前建议先使用netplan try命令测试避免网络中断。内核参数生效修改/etc/sysctl.conf或/etc/sysctl.d/下的文件后需执行sudo sysctl -p [配置文件]使更改立即生效并重启相关服务或直接重启系统以确保永久生效。Docker 存储驱动默认使用overlay2。如果使用旧版内核或特定文件系统如 ZFS、btrfs可能需要调整storage-driver。安装后可通过docker info确认。安全与便利的权衡禁用密码登录、修改 SSH 端口能提升安全性但操作失误会导致自己被锁在服务器外。务必在操作前配置好 SSH 密钥并测试登录成功且确保防火墙已放行新端口。生产环境测试所有优化和加固步骤建议先在测试环境中验证确认系统稳定、服务正常后再应用于生产服务器。定期维护设置unattended-upgrades自动安装安全更新后仍需定期检查更新日志 (/var/log/unattended-upgrades/) 和系统状态并手动执行apt update apt upgrade以获取非安全更新。监控与日志启用 netdata 或类似监控工具后注意其资源消耗。定期检查/var/log/下的各类日志利用配置的logrotate规则防止磁盘被日志占满。

相关新闻

【单片机毕业设计】基于 STM32 的智能噪声监测与远程预警系统设计,基于 STM32 单片机的环境噪声采集与物联网监测装置设计(010903)

【单片机毕业设计】基于 STM32 的智能噪声监测与远程预警系统设计,基于 STM32 单片机的环境噪声采集与物联网监测装置设计(010903)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能基础功能核心功能拓展辅助功能技术路线项目演示关于我们项目案例源码获取博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作…

2026/10/16 2:12:11 阅读更多 →
【单片机毕业设计推荐】基于 STM32 或 51 单片机的智能水族养殖自动控制系统设计与实现,基于 STM32 或 51 单片机的鱼池智能投喂与水环境调控装置设计(025202)

【单片机毕业设计推荐】基于 STM32 或 51 单片机的智能水族养殖自动控制系统设计与实现,基于 STM32 或 51 单片机的鱼池智能投喂与水环境调控装置设计(025202)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能技术路线项目演示关于我们项目案例源码获取博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金…

2026/10/15 18:02:27 阅读更多 →
维萨拉 HMD60Y-G1550010 管道露点温湿度变送器全解析|选型、接线、PLC 对接、故障排查

维萨拉 HMD60Y-G1550010 管道露点温湿度变送器全解析|选型、接线、PLC 对接、故障排查

一、前言在洁净厂房、数据中心、实验室、工业烘干、HVAC 风道控湿场景中,露点、温湿度实时稳定采集是工艺达标核心前提。VAISALA 维萨拉 HMD60Y-G1550010 作为经典管道插入式变送器,搭载原厂 HUMICAP 湿敏传感芯片,支持露点、湿球、焓值多参数…

2026/10/16 3:04:41 阅读更多 →

最新新闻

环境变量全攻略:从原理到实战,避开PATH与配置那些坑

环境变量全攻略:从原理到实战,避开PATH与配置那些坑

说实话,我见过太多人在环境变量上栽跟头了。明明代码逻辑一点问题没有,换台机器跑就报错,最后折腾半天发现是环境变量没配对。环境变量这东西,说简单,十分钟就能学会怎么用;说复杂,它能让你在深…

2026/10/17 4:02:00 阅读更多 →
RAG文档预处理实战:从解析到切分的完整链路

RAG文档预处理实战:从解析到切分的完整链路

1. 真正拖垮RAG的,往往是你最不在意的文档预处理环节这两年RAG(检索增强生成)几乎是个人知识库和企业知识中台项目的标配,很多人拿着一堆PDF、Word、Markdown就往向量库里灌。最开始跑demo很兴奋,查询响应快、答案也有…

2026/10/17 4:01:59 阅读更多 →
零基础上手 Claude Code:从安装到写出第一个本地脚本

零基础上手 Claude Code:从安装到写出第一个本地脚本

如果你和我一样,属于那种“平时不搞专业开发,但是经常有些小脚本、小工具的念头,想让电脑帮自己干点活”的人,那你一定经历过这种场景:脑子里有个特别清晰的功能,打开编辑器盯着屏幕,却一个字都…

2026/10/17 4:01:59 阅读更多 →
gocv图像预处理三要素:阈值分割、反色与边缘提取实战

gocv图像预处理三要素:阈值分割、反色与边缘提取实战

1. 这不是调色,是图像语义的第一次“断句”很多人第一次接触机器视觉项目时,会下意识把“阈值分割”“反色”“边缘提取”当成Photoshop里的滤镜操作——点几下鼠标,图变个样,任务就算完成。但实际在工业检测、医疗影像或自动驾驶…

2026/10/17 4:01:59 阅读更多 →
链表插入操作从原理到实战:头插、尾插、任意位置与哨兵节点

链表插入操作从原理到实战:头插、尾插、任意位置与哨兵节点

链表插入操作:从原理到实战的完整拆解如果你学过数据结构,大概率绕不开链表。链表这玩意儿,说难不难,说简单也不简单,尤其插入操作,无论笔试、面试还是实际项目,几乎场场必考。很多人背了代码就…

2026/10/17 4:01:59 阅读更多 →
ENVI插件实现朱文泉CASA模型植被NPP估算与Python趋势分析

ENVI插件实现朱文泉CASA模型植被NPP估算与Python趋势分析

简介:朱文泉植被NPP程序V2.0是面向遥感与生态研究者的ENVI扩展插件,用于净初级生产力(NPP)估算。相比旧版,它支持直接由日照时数计算太阳辐射、以NDVI的HDF格式生成时序NDVI,并可在模块内完成气象数据插值&…

2026/10/17 4:00:59 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →