文件目录:
[3.1 更新系统与基础工具](#3.1 更新系统与基础工具)
[3.2 创建运维用户并配置 sudo](#3.2 创建运维用户并配置 sudo)
[3.3 SSH 安全加固(关键)](#3.3 SSH 安全加固(关键))
[4.1 防火墙配置(UFW)](#4.1 防火墙配置(UFW))
[4.2 时间同步](#4.2 时间同步)
[五、Docker 运行环境搭建(核心)](#五、Docker 运行环境搭建(核心))
[5.1 安装 Docker](#5.1 安装 Docker)
[5.2 Docker 用户权限配置](#5.2 Docker 用户权限配置)
[5.3 Docker 常用基础配置](#5.3 Docker 常用基础配置)
[7.1 脚本结构](#7.1 脚本结构)
[7.2 示例(init.sh)](#7.2 示例(init.sh))
1.[Docker 启动失败](#Docker 启动失败)
2.[SSH 无法连接](#SSH 无法连接)
3.容器无法访问外网
一、前言
在实际工作和副业接单中,经常会遇到这样的问题:
-
新服务器到手,不知道从哪一步开始配置
-
系统能用,但安全性和规范性不足
-
软件装了一堆,但后期维护困难
本文将以 一台全新 Linux 服务器 为例,整理一套 可复用、可自动化、偏生产环境 的 Linux 环境搭建方案,适用于:
-
新服务器上线
-
测试 / 生产环境初始化
-
Docker / 容器环境基础准备
二、环境说明
操作系统:Ubuntu 22.04 LTS
部署方式:云服务器 / 物理机
用途:Docker / Web / 运维测试环境
权限:root
说明:不同发行版命令略有差异,但整体思路通用。
三、系统初始化配置
3.1 更新系统与基础工具
apt update && apt upgrade -y
apt install -y vim curl wget net-tools lsof htop unzip
目的:
-
保证系统安全补丁最新
-
提供基础排错与管理工具
3.2 创建运维用户并配置 sudo
useradd -m devops
passwd devops
usermod -aG sudo devops
验证:
su - devops
sudo ls /
生产环境建议:
-
禁止长期使用 root 直接操作
-
所有运维操作可审计
3.3 SSH 安全加固(关键)
编辑 SSH 配置:
vim /etc/ssh/sshd_config
推荐修改项:
Port 2222
PermitRootLogin no
PasswordAuthentication yes
重启 SSH:
systemctl restart ssh
修改端口前,确保当前会话未断开
四、防火墙与系统基础配置
4.1 防火墙配置(UFW)
apt install -y ufw
ufw allow 2222/tcp
ufw allow 80
ufw allow 443
ufw enable
ufw status
4.2 时间同步
apt install -y chrony
systemctl enable chrony
systemctl start chrony
chronyc sources
五、Docker 运行环境搭建(核心)
5.1 安装 Docker
curl -fsSL https://get.docker.com | bash
启动并设置开机自启:
systemctl start docker
systemctl enable docker
验证:
docker version
5.2 Docker 用户权限配置
usermod -aG docker devops
newgrp docker
验证:
docker ps
5.3 Docker 常用基础配置
mkdir -p /etc/docker
vim /etc/docker/daemon.json
示例:
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
重启 Docker:
systemctl restart docker
六、目录规划与规范(体现工程经验)
推荐目录结构:
/data
├── docker
│ ├── mysql
│ ├── redis
│ └── app
├── logs
│ ├── nginx
│ └── app
└── backup
好处:
-
数据与系统解耦
-
便于迁移和备份
-
多项目共存不混乱
七、一键初始化脚本示例(加分项)
7.1 脚本结构
init.sh
├── base.sh
├── security.sh
└── docker.sh
7.2 示例(init.sh)
#!/bin/bash
echo ">>> 初始化基础环境"
bash base.sh
echo ">>> 安全加固"
bash security.sh
echo ">>> 安装 Docker"
bash docker.sh
echo ">>> 初始化完成"
通过脚本化,可以快速复用到多台服务器,适合企业和外包场景。
八、常见问题与排错思路
Docker 启动失败
-
检查端口占用
-
查看日志:
journalctl -u docker
SSH 无法连接
-
防火墙是否放行
-
端口是否正确
-
SSH 服务状态
容器无法访问外网
-
DNS 配置
-
防火墙策略
-
Docker 网络模式
九、总结
本文整理了一套 从 0 到可用生产环境的 Linux 服务器搭建方案,涵盖:
-
系统初始化
-
安全加固
-
Docker 运行环境
-
目录与工程规范
-
自动化脚本思路
该方案适用于 新服务器部署、测试环境初始化以及企业级基础环境搭建。
如果你在 Linux / Docker 环境搭建、服务器初始化或排错方面有需求,欢迎在评论区交流。