如何正确搭建Ubuntu服务器?步骤与注意事项

Ubuntu服务器搭建是企业级应用和个人开发中常见的任务,其开源、稳定和丰富的社区支持使其成为众多场景的首选,本文将从准备工作到服务部署,详细讲解Ubuntu服务器的完整搭建流程,帮助读者快速上手。

ubuntu服务器搭建

准备工作

在开始搭建前,需明确服务器用途(如Web服务、数据库、应用部署等)并准备相应资源,硬件方面,建议至少2核CPU、4GB内存、20GB存储(根据实际需求调整);网络需确保公网IP(如为云服务器)或局域网可达,软件方面,推荐使用Ubuntu Server LTS版本(如22.04),其长期支持周期更适合稳定运行。

系统安装

  • 下载Ubuntu Server镜像(官网或阿里云镜像站),通过刻录U盘或云平台控制台启动安装。
  • 安装过程中选择“Minimal”安装(减少不必要组件),分区建议使用LVM(逻辑卷管理),便于后续扩容。
  • 设置时区、键盘布局,创建初始用户(避免直接使用root)。

网络配置

服务器网络通常需静态IP,避免DHCP导致的地址变动,以Ubuntu 22.04为例,编辑/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]  # DNS

保存后执行netplan apply使配置生效,通过ip a验证IP是否生效。

配置项 说明 示例值
dhcp4 是否启用DHCP no
addresses 静态IP及子网掩码 168.1.100/24
gateway4 网关地址 168.1.1
nameservers DNS服务器 8.8.8, 114.114.114.114

服务器初始化设置

更新系统

sudo apt update && sudo apt upgrade -y  # 更新软件包列表并升级系统

配置主机名

sudo hostnamectl set-hostname server01  # 设置主机名,便于管理

创建管理员用户

sudo adduser admin  # 创建新用户(示例用户名:admin)
sudo usermod -aG sudo admin  # 将用户加入sudo组,赋予root权限

SSH安全配置

默认SSH配置允许root远程登录,存在安全风险,需优化:
编辑/etc/ssh/sshd_config

PermitRootLogin no      # 禁止root远程登录
PasswordAuthentication no  # 禁止密码认证,仅允许密钥认证
Port 2222               # 修改默认SSH端口(避免22端口扫描)

保存后重启SSH服务:sudo systemctl restart sshd
生成SSH密钥对(本地执行):ssh-keygen -t rsa -b 4096,将公钥(~/.ssh/id_rsa.pub)上传至服务器:ssh-copy-id -p 2222 admin@服务器IP

安装常用服务

根据需求安装Web服务器、数据库等服务,以下以Nginx+MySQL+PHP(LNMP环境)为例。

ubuntu服务器搭建

安装Nginx

sudo apt install nginx -y  # 安装Nginx
sudo systemctl start nginx  # 启动服务
sudo systemctl enable nginx  # 设置开机自启

浏览器访问服务器IP,若显示“Welcome to nginx!”,则安装成功,默认网站目录:/var/www/html

安装MySQL

sudo apt install mysql-server -y  # 安装MySQL
sudo mysql_secure_installation  # 安全配置(设置root密码、匿名用户、测试数据库等)

配置完成后,登录MySQL:sudo mysql -u root -p,创建数据库和用户:

CREATE DATABASE webdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'Password123!';
GRANT ALL PRIVILEGES ON webdb.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

安装PHP及扩展

sudo apt install php-fpm php-mysql php-mbstring php-xml php-zip -y  # 安装PHP及常用扩展
sudo systemctl start php8.1-fpm  # 启动PHP-FPM(版本号可能为8.0/8.2,根据实际安装调整)
sudo systemctl enable php8.1-fpm

配置Nginx支持PHP

编辑Nginx站点配置(/etc/nginx/sites-available/default):

server {
    listen 80;
    root /var/www/html;
    index index.php index.html;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;  # 与PHP-FPM版本匹配
    }
}

保存后测试配置:sudo nginx -t,若无报错则重启Nginx:sudo systemctl restart nginx

服务 安装命令 配置文件路径 常用命令
Nginx sudo apt install nginx -y /etc/nginx/nginx.conf systemctl start/stop/restart nginx
MySQL sudo apt install mysql-server -y /etc/mysql/mysql.conf.d/mysqld.cnf systemctl start/stop/restart mysql
PHP-FPM sudo apt install php-fpm -y /etc/php/8.1/fpm/php.ini systemctl start/stop/restart php8.1-fpm

防火墙与安全加固

配置UFW防火墙

sudo ufw allow 2222/tcp  # 允许SSH端口(修改后的端口)
sudo ufw allow 80/tcp    # 允许HTTP
sudo ufw allow 443/tcp   # 允许HTTPS
sudo ufw enable         # 启用防火墙(输入y确认)

禁用不必要服务

sudo systemctl disable --now avahi-daemon  # 禁用网络发现服务
sudo systemctl disable --now cups          # 禁用打印服务

定期更新系统

设置自动更新:sudo apt install unattended-upgrades -y,编辑/etc/apt/apt.conf.d/50unattended-upgrades,开启安全更新:

Unattended-Upgrade::Automatic-Reboot "true";  # 自动重启
Unattended-Upgrade::Automatic-Reboot-Time "02:00";  # 重启时间

维护与监控

日志查看

  • Nginx访问日志:/var/log/nginx/access.log
  • MySQL错误日志:/var/log/mysql/error.log
  • 系统日志:/var/log/syslog
    可通过tail -f实时查看日志,如tail -f /var/log/nginx/access.log

备份策略

使用rsync定期备份重要数据(如网站目录、数据库):

ubuntu服务器搭建

# 备份网站目录到远程服务器
rsync -avz /var/www/html/ user@backup-server:/backup/web/
# 备份数据库
mysqldump -u root -p webdb > /backup/webdb_$(date +%F).sql

通过crontab -e设置定时任务(如每天凌晨2点执行备份):

0 2 * * * /usr/bin/mysqldump -u root -p密码 webdb > /backup/webdb_$(date +%F).sql

相关问答FAQs

Q1:如何检查Ubuntu服务器是否正常运行?
A:可通过以下命令检查服务状态和系统资源:

  • 查看系统负载:uptime(显示1/5/15分钟平均负载)
  • 查看CPU/内存使用:htop(需安装:sudo apt install htop -y
  • 查看关键服务状态:systemctl status nginxsystemctl status mysql
  • 检查网络连通性:ping 8.8.8.8curl https://www.baidu.com

Q2:忘记服务器密码怎么办?
A:若为本地服务器,可通过重启进入GRUB菜单,选择“Advanced options for Ubuntu”,进入恢复模式,选择“root” shell,执行passwd 用户名重置密码;若为云服务器,可通过控制台“重置密码”功能修改(需先停止服务器,部分云平台支持在线重置),重置后重启服务器即可正常登录。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31382.html

(0)
酷番叔酷番叔
上一篇 2025年9月27日 19:42
下一篇 2025年9月27日 20:15

相关推荐

  • 新手如何搭建Minecraft服务器?需准备哪些配置和步骤?

    搭建Minecraft(MC)服务器是许多玩家拓展游戏体验的重要方式,无论是与朋友联机生存,还是打造专属的模组世界,自建服务器都能提供更自由、更稳定的游戏环境,本文将从准备工作、详细搭建步骤、维护管理等方面,手把手教你完成MC服务器的搭建,搭建前的准备工作在开始搭建前,需明确服务器类型(Java版或基岩版)、硬……

    2025年9月19日
    9500
  • 企业级管理系统服务器的架构设计需考虑哪些关键因素?

    管理系统服务器是支撑各类管理系统的核心基础设施,它通过硬件、软件及网络资源的协同,实现数据的集中存储、处理、分析及业务逻辑的高效运行,是企业数字化转型的关键支撑,从本质上看,管理系统服务器不仅是一台物理设备,更是一个集计算、存储、网络和安全于一体的综合服务平台,为管理系统的稳定运行、数据安全及业务扩展提供底层保……

    2025年9月25日
    10400
  • 入侵网站只为拿服务器?真实动机藏有多深?

    在数字化时代,服务器作为企业数据存储、业务运行的核心载体,其安全性直接关系到个人隐私保护与企业生存发展,仍有不法分子通过入侵网站获取服务器控制权,实施数据窃取、勒索攻击等非法活动,这种行为不仅违反法律法规,更会对受害者造成难以挽回的损失,本文将从入侵手段、潜在危害、防御策略三个维度,系统分析“入侵网站拿服务器……

    2025年11月12日
    7300
  • LOL登录服务器为何连不上?维护时间或故障原因是什么?

    英雄联盟(LOL)的登录服务器是玩家进入游戏世界的“第一道关卡”,其核心功能是验证玩家身份、同步游戏数据、调度连接资源,确保玩家能够顺利进入对局,作为连接客户端与游戏后台的桥梁,登录服务器的稳定性直接影响玩家的登录体验,若服务器出现故障,轻则导致登录延迟、排队等待,重则直接无法连接,甚至影响游戏内数据安全,登录……

    2025年9月28日
    9000
  • Minio高性能对象存储,为何成为热门选择?

    开源、高性能、兼容S3 API,部署简单,适合私有云,因此备受青睐。

    2026年2月22日
    2100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信