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