Linux 服务器环境搭建实战:从裸机到可用生产环境(含自动化脚本)

文件目录:

一、前言

二、环境说明

三、系统初始化配置

[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 环境搭建、服务器初始化或排错方面有需求,欢迎在评论区交流。

相关推荐
阿钱真强道2 小时前
20 极物智能 knx-主机场景对接
linux·运维·服务器
海棠蚀omo2 小时前
万物互联的起点:走进 Linux 网络的心脏,开启一场从零开始的底层探索之旅
linux·网络
baivfhpwxf20232 小时前
C# 语言 SQL Server 批量更新
服务器·windows·c#
艾莉丝努力练剑2 小时前
【Linux进程(六)】程序地址空间深度实证:从内存布局验证到虚拟化理解的基石
大数据·linux·运维·服务器·人工智能·windows·centos
咕咕嘎嘎10242 小时前
C++仿muduo库onethreadoneloop高并发服务器
服务器·网络·c++
虾..2 小时前
Linux 信号发送和保存
linux·运维·服务器
盛满暮色 风止何安2 小时前
负载均衡的部署模式
运维·服务器·网络·网络安全·负载均衡
CQ_YM2 小时前
网络编程之UDP
linux·c语言·网络·单片机·udp
程序员洲洲2 小时前
2025年远程控制软件排行榜:安全性能哪家强?ToDesk/TeamViewer/向日葵等对比
服务器·安全·远程控制