Ubuntu服务器配置是企业级应用和个人项目部署的基础,涉及系统初始化、安全加固、服务部署等多个环节,本文将详细讲解从基础环境到核心服务的完整配置流程,帮助用户快速搭建稳定、安全的Ubuntu服务器环境。

系统初始化与基础更新
服务器首次启动后,需先完成系统初始化配置,首先更新软件包列表和已安装的软件包,确保系统组件为最新版本,避免因版本过旧导致的安全漏洞或兼容性问题,执行以下命令:
sudo apt update && sudo apt upgrade -y
更新完成后,清理本地缓存释放磁盘空间:
sudo apt autoremove -y && sudo apt autoclean
接下来设置服务器主机名,便于网络识别和管理:
sudo hostnamectl set-hostname your-server-name
最后检查系统内核版本和硬件信息,确保系统正常运行:
uname -r # 查看内核版本 lscpu # 查看CPU信息 free -h # 查看内存使用情况 df -h # 查看磁盘分区及使用情况
网络配置
服务器网络配置是稳定运行的核心,通常需要设置静态IP地址,避免DHCP动态分配导致的IP变动,以Ubuntu 22.04为例,网络配置文件位于/etc/netplan/目录下,假设配置文件为01-netcfg.yaml如下:
network:
version: 2
ethernets:
eth0: # 根据实际网卡名称修改,如ens33
dhcp4: no
addresses: [192.168.1.100/24] # 静态IP及子网掩码
gateway4: 192.168.1.1 # 网关地址
nameservers:
addresses: [8.8.8.8, 114.114.114.114] # DNS服务器
配置完成后执行sudo netplan apply使配置生效,并通过ip a查看IP地址是否生效,不同Ubuntu版本的netplan配置语法略有差异,以下是常见版本对比:
| Ubuntu版本 | 网络配置文件路径 | 配置语法特点 |
|---|---|---|
| 04 | /etc/netplan/50-cloud-init.yaml | 使用ethernets定义网卡,addresses为CIDR格式 |
| 04/22.04 | /etc/netplan/01-netcfg.yaml | 支持dhcp4: no/off,明确指定gateway4和nameservers |
| 04 LTS | /etc/netplan/00-installer-config.yaml | 新增renderer参数,可选systemd或networkd |
用户与权限管理
为避免直接使用root用户,建议创建新用户并赋予sudo权限,执行以下命令创建用户(例如deploy):

sudo adduser deploy
将用户添加至sudo组(默认已存在sudo组):
sudo usermod -aG sudo deploy
验证sudo权限:切换至新用户su - deploy,执行sudo ls -la /root,输入密码后若能查看root目录内容,则权限配置成功。
若需禁用root SSH登录(提升安全性),修改SSH配置文件/etc/ssh/sshd_config,将PermitRootLogin yes改为PermitRootLogin no,保存后执行sudo systemctl restart sshd重启SSH服务。
SSH安全加固
SSH是远程管理服务器的核心入口,需通过以下配置提升安全性:
- 修改默认端口:避免默认22端口被暴力破解,编辑
/etc/ssh/sshd_config,找到#Port 22,取消注释并修改为Port 2222(自定义端口,建议使用1024-49151之间的高位端口)。 - 禁用密码登录,启用密钥认证:生成SSH密钥对(本地机器执行):
ssh-keygen -t rsa -b 4096 -f ~/.ssh/server_key
将公钥上传至服务器:
ssh-copy-id -i ~/.ssh/server_key.pub deploy@your-server-ip
服务器端修改
/etc/ssh/sshd_config,设置PasswordAuthentication no和PubkeyAuthentication yes,重启SSH服务。 - 限制登录用户:在
/etc/ssh/sshd_config中添加AllowUsers deploy admin(仅允许deploy和admin用户登录),拒绝其他用户访问。
防火墙配置
Ubuntu默认使用UFW(Uncomplicated Firewall)管理防火墙,启用后需开放必要端口(如SSH、HTTP、HTTPS),执行以下命令:
sudo ufw enable # 启用防火墙(默认拒绝所有入站连接) sudo ufw allow 2222/tcp # 允许自定义SSH端口 sudo ufw allow 80/tcp # 允许HTTP sudo ufw allow 443/tcp # 允许HTTPS sudo ufw default deny incoming # 默认拒绝入站 sudo ufw default allow outgoing # 默认允许出站
查看防火墙状态:sudo ufw status,以下是常用端口及服务对应表:

| 端口号 | 服务 | 用途 |
|---|---|---|
| 22/2222 | SSH | 远程服务器管理 |
| 80 | HTTP | 网站访问(HTTP协议) |
| 443 | HTTPS | 加密网站访问(SSL/TLS) |
| 3306 | MySQL | 数据库连接 |
| 6379 | Redis | 缓存服务连接 |
| 8080 | Tomcat/Nginx | Web应用服务端口 |
核心服务部署
安装Web服务器(以Nginx为例)
sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx # 设置开机自启
访问服务器IP地址,若看到Nginx欢迎页面,则安装成功,配置文件位于/etc/nginx/sites-available/,可创建新配置文件(如project.conf)部署网站。
安装数据库(以MySQL为例)
sudo apt install mysql-server -y sudo mysql_secure_installation # 安全配置(设置root密码、移除匿名用户等)
登录MySQL:sudo mysql -u root -p,创建数据库和用户:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
安装PHP(以PHP 8.1为例)
sudo apt install php8.1-fpm php8.1-mysql php8.1-xml php8.1-gd -y sudo systemctl restart nginx # 重启Nginx以加载PHP模块
系统监控与日志管理
安装监控工具
- htop:增强版进程监控工具
sudo apt install htop -y
- nmon:系统资源监控(CPU、内存、磁盘、网络)
sudo apt install nmon -y nmon # 运行后按c查看CPU,m查看内存,d查看磁盘,t查看网络
日志管理
系统日志默认存储在/var/log/目录,关键日志包括:
/var/log/syslog:系统日志/var/log/auth.log:认证日志(SSH登录、sudo操作)/var/log/nginx/error.log:Nginx错误日志
配置日志轮转(自动清理旧日志),编辑/etc/logrotate.conf,添加自定义规则:/var/log/myapp/*.log { daily missingok rotate 7 compress delaycompress notifempty create 644 deploy deploy }
相关问答FAQs
Q1:忘记root密码如何重置?
A:重置root密码需重启服务器进入恢复模式:
- 重启时按住
Shift键(或根据GRUB菜单提示选择高级选项); - 选择“root shell”进入命令行;
- 执行
mount -o rw,remount /重新挂载根分区为可读写; - 使用
passwd root修改root密码,输入两次新密码; - 执行
exec /sbin/init或重启服务器,即可用新密码登录root账户。
Q2:配置静态IP后无法联网,如何排查?
A:按以下步骤排查:
- 检查IP配置是否正确:
cat /etc/netplan/*.yaml确认IP、网关、DNS无误; - 检查网卡状态:
ip a查看网卡是否UP,ip link show eth0(替换为实际网卡名); - 检查网关连通性:
ping 192.168.1.1(替换为实际网关地址),若不通检查网线或网络设备; - 检查DNS解析:
ping 8.8.8.8若通但ping google.com不通,修改DNS为8.8.8.8或1.1.1.1; - 应用配置:
sudo netplan try测试配置,若有错误会提示,修复后执行sudo netplan apply。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/19894.html