Ubuntu服务器作为全球最受欢迎的开源服务器操作系统之一,凭借其稳定性、安全性、强大的社区支持以及丰富的软件资源,被广泛应用于Web托管、云服务、大数据处理、DevOps等多种场景,本文将详细介绍Ubuntu服务器的核心配置、管理实践、安全加固及常见应用部署,帮助用户高效搭建和维护服务器环境。
Ubuntu服务器安装与初始化配置
Ubuntu服务器通常提供LTS(长期支持)版本,如22.04 LTS,支持5年免费安全维护,适合生产环境,安装时需注意以下关键步骤:
- 镜像下载与启动盘制作:从Ubuntu官网下载服务器版ISO镜像,使用Rufus或balenaEtcher制作启动盘。
- 安装选项选择:启动后选择“Install Ubuntu Server”,语言、键盘布局按需设置;特别注意磁盘分区建议使用LVM(逻辑卷管理),便于后续动态调整存储空间;安装过程中可勾选“OpenSSH server”,实现远程管理。
- 初始化配置:安装完成后,通过SSH登录(默认端口22),首先更新系统:
sudo apt update && sudo apt upgrade -y
配置静态IP地址(避免重启后IP变化),编辑
/etc/netplan/01-netcfg.yaml
(文件名可能因版本略有不同):network: version: 2 ethernets: ens33: # 网卡名称,需通过ip a确认 dhcp4: no addresses: [192.168.1.100/24] # 静态IP gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]
执行
sudo netplan apply
使配置生效,并设置主机名(sudo hostnamectl set-hostname server-name
)及时区(sudo timedatectl set-timezone Asia/Shanghai
)。
系统管理与日常运维
Ubuntu服务器的管理核心在于命令行工具,以下是常用操作及命令总结:
用户与权限管理
- 创建用户:
sudo adduser username
,设置密码并分配sudo权限(默认将用户加入sudo组)。 - 禁用root登录:编辑
/etc/ssh/sshd_config
,将PermitRootLogin yes
改为no
,重启SSH服务(sudo systemctl restart ssh
)。 - 文件权限:使用
chmod
(修改权限)、chown
(修改所有者),如sudo chmod 755 /var/www
(所有者读写执行,组和其他用户读执行)。
进程与服务管理
- 进程监控:
ps aux
查看所有进程,top
/htop
实时监控资源占用(htop
需安装:sudo apt install htop
)。 - 服务控制:通过
systemctl
管理服务,如sudo systemctl start nginx
(启动)、sudo systemctl enable nginx
(开机自启)、sudo systemctl status nginx
(查看状态)。
软件包管理
Ubuntu基于Debian,使用apt
包管理工具,常用命令如下:
功能 | 命令示例 | 说明 |
---|---|---|
更新软件包列表 | sudo apt update |
从源获取最新包信息 |
升级已安装包 | sudo apt upgrade |
升级所有可升级包 |
安装软件包 | sudo apt install nginx |
安装Nginx |
卸载软件包 | sudo apt remove nginx |
卸载Nginx(保留配置文件) |
清理缓存 | sudo apt autoremove && sudo apt clean |
删除无用依赖和缓存 |
安全加固实践
服务器安全是运维的重中之重,Ubuntu服务器需从以下方面加固:
- 防火墙配置:使用
ufw
(Uncomplicated Firewall),默认允许SSH:sudo ufw enable sudo ufw allow 22/tcp # 允许SSH sudo ufw allow 80/tcp # 允许HTTP(如部署Web服务) sudo ufw deny 443/tcp # 禁用HTTPS(如未使用)
- SSH安全增强:
- 禁用密码登录,改用密钥认证:编辑
/etc/ssh/sshd_config
,设置PasswordAuthentication no
,将公钥(~/.ssh/id_rsa.pub
)添加到~/.ssh/authorized_keys
。 - 修改默认SSH端口(如2222),减少暴力破解风险。
- 禁用密码登录,改用密钥认证:编辑
- 定期更新与漏洞扫描:
- 设置自动更新:安装
unattended-upgrades
(sudo apt install unattended-upgrades
),配置/etc/apt/apt.conf.d/50unattended-upgrades
启用安全更新。 - 漏洞扫描:使用
lynis
(sudo apt install lynis
),执行sudo lynis audit system
生成安全报告。
- 设置自动更新:安装
- 日志监控:通过
journalctl -u ssh
查看SSH登录日志,结合fail2ban
防暴力破解(安装sudo apt install fail2ban
,配置/etc/fail2ban/jail.local
)。
常见服务部署示例
Web服务器(Nginx + PHP)
# 安装Nginx和PHP sudo apt install nginx php-fpm php-mysql -y # 启动Nginx并设置开机自启 sudo systemctl start nginx && sudo systemctl enable nginx # 测试PHP:创建测试文件 echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php # 访问http://服务器IP/info.php验证
数据库服务器(MySQL)
# 安装MySQL服务器 sudo apt install mysql-server -y # 安全配置(设置root密码、移除匿名用户等) sudo mysql_secure_installation # 登录MySQL并创建用户 sudo mysql -u root -p CREATE DATABASE 'mydb' DEFAULT 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;
容器化部署(Docker)
# 安装Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # 将用户加入docker组(避免sudo) sudo usermod -aG docker $USER # 重启后生效,验证安装 docker run hello-world
性能优化与维护
- 资源监控:使用
htop
监控CPU/内存,df -h
查看磁盘使用率,iotop
监控磁盘I/O。 - 磁盘优化:
- 文件系统选择:XFS适合大文件,ext4通用性强,可通过
mkfs.xfs /dev/sdb1
格式化新磁盘。 - Swap调整:若内存不足,可创建Swap文件(
sudo fallocate -l 2G /swapfile
,sudo chmod 600 /swapfile
,sudo mkswap /swapfile
,sudo swapon /swapfile
,并添加到/etc/fstab
)。
- 文件系统选择:XFS适合大文件,ext4通用性强,可通过
- 备份策略:使用
rsync
增量备份,例如每日备份/var/www
到/backup
:sudo rsync -avz --delete /var/www/ /backup/www/
定期备份重要数据(数据库、配置文件),并异地存储。
相关问答FAQs
Q1:Ubuntu服务器如何设置自动更新?
A1:可通过安装unattended-upgrades
实现安全更新自动安装,步骤如下:
- 安装软件包:
sudo apt install unattended-upgrades
。 - 配置自动更新:编辑
/etc/apt/apt.conf.d/50unattended-upgrades
,取消注释Unattended-Upgrade::Origins-Pattern
部分,确保包含"${distro_id}:${distro_codename}-security"
(仅安全更新)或全部更新。 - 启用定时任务:编辑
/etc/apt/apt.conf.d/10periodic
,设置APT::Periodic::Unattended-Upgrade "1";
(每日检查)。 - 重启服务:
sudo systemctl restart unattended-upgrades
。
Q2:如何监控Ubuntu服务器的磁盘使用情况?
A2:可通过多种工具监控磁盘使用情况:
- df命令:查看文件系统整体使用率,
df -h
以人类可读格式显示(如G、M)。 - du命令:查看目录/文件占用空间,
du -sh /var/www
显示/var/www
总大小,du -sh *
查看子目录大小。 - ncdu工具:交互式磁盘分析器,安装
sudo apt install ncdu
,执行ncdu /var/www
进入可视化界面,可按大小排序并删除无用文件。 - 监控告警:结合
logrotate
或自定义脚本,当磁盘使用率超过阈值(如80%)时发送邮件告警。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/40048.html