Ubuntu服务器配置新手如何高效完成基础搭建?

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

ubuntu服务器配置

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是远程管理服务器的核心入口,需通过以下配置提升安全性:

  1. 修改默认端口:避免默认22端口被暴力破解,编辑/etc/ssh/sshd_config,找到#Port 22,取消注释并修改为Port 2222(自定义端口,建议使用1024-49151之间的高位端口)。
  2. 禁用密码登录,启用密钥认证:生成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 noPubkeyAuthentication yes,重启SSH服务。

  3. 限制登录用户:在/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,以下是常用端口及服务对应表:

ubuntu服务器配置

端口号 服务 用途
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密码需重启服务器进入恢复模式:

  1. 重启时按住Shift键(或根据GRUB菜单提示选择高级选项);
  2. 选择“root shell”进入命令行;
  3. 执行mount -o rw,remount /重新挂载根分区为可读写;
  4. 使用passwd root修改root密码,输入两次新密码;
  5. 执行exec /sbin/init或重启服务器,即可用新密码登录root账户。

Q2:配置静态IP后无法联网,如何排查?
A:按以下步骤排查:

  1. 检查IP配置是否正确:cat /etc/netplan/*.yaml确认IP、网关、DNS无误;
  2. 检查网卡状态:ip a查看网卡是否UP,ip link show eth0(替换为实际网卡名);
  3. 检查网关连通性:ping 192.168.1.1(替换为实际网关地址),若不通检查网线或网络设备;
  4. 检查DNS解析:ping 8.8.8.8若通但ping google.com不通,修改DNS为8.8.8.8或1.1.1.1;
  5. 应用配置:sudo netplan try测试配置,若有错误会提示,修复后执行sudo netplan apply

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

(0)
酷番叔酷番叔
上一篇 2025年8月29日 23:32
下一篇 2025年8月29日 23:43

相关推荐

  • 微信群服务器是什么?它与普通群聊的核心区别在哪?

    微信群服务器并非微信官方提供的独立服务器产品,而是指支持微信群高效管理、自动化运营及数据整合的第三方服务或系统架构,这类服务器通常基于云计算平台搭建,通过API接口与微信生态对接,为社群运营者提供超越微信原生功能的扩展能力,尤其适用于企业客户服务、社群营销、教育培训等需要规模化管理群聊的场景,从核心功能来看,微……

    6天前
    800
  • 微信服务器数据保存期限,聊天记录、图片等各存多久?

    微信作为国内用户规模最大的社交平台之一,其服务器数据保存时长一直是用户关注的核心问题,微信服务器对不同类型数据的保存时间并非统一标准,而是根据数据性质、功能需求、法律法规及用户操作等多重因素综合决定,具体可分为以下几类情况:普通聊天记录是用户最常接触的数据类型,文字、语音、图片、文件等日常沟通内容,主要存储在用……

    2025年10月12日
    900
  • Java的web服务器有哪些?它们的类型、特点及选择标准是什么?

    Java的Web服务器是指基于Java语言开发的,用于接收、处理HTTP请求并返回响应的软件服务,它作为Web应用运行的基础环境,负责管理应用的生命周期、处理网络通信、执行业务逻辑,并将结果以HTML、JSON等形式返回给客户端,Java的Web服务器凭借其跨平台性、稳定性和丰富的生态系统,在企业级应用开发中占……

    2025年9月28日
    1300
  • 交换机与服务器连接

    机与服务器连接,通常使用网线将服务器网卡接口与交换机端口相连,实现数据传输与网络

    2025年8月16日
    3100
  • 物理服务器、云服务器、虚拟机的区别是什么?适用场景有何不同?

    服务器作为计算机系统的核心硬件设备,其类型、架构及部署方式的差异直接影响着企业IT系统的性能、稳定性与扩展性,不同场景下,服务器的选择需结合业务需求、技术架构及成本预算综合考量,本文将从用途、架构、部署方式三个维度详细解析服务器的主要区别,按用途分类:功能定位决定服务形态服务器的首要区别在于其用途,不同用途的服……

    2025年10月11日
    600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信