Ubuntu 20.04服务器初始化配置实战指南刚完成Ubuntu 20.04 Server安装后系统默认使用DHCP获取动态IP地址。对于服务器环境而言静态IP配置是确保服务稳定运行的基础条件。本文将详细介绍如何快速完成网络配置、SSH服务部署及防火墙设置打造一个安全可靠的服务器环境。1. 静态IP配置告别DHCP的不确定性Ubuntu 20.04采用Netplan作为默认的网络配置工具相比传统的ifconfig和interfaces文件Netplan提供了更简洁的YAML语法。我们先确认当前网络接口名称ip a典型输出中主网卡通常命名为ens33或ens160。记录下你的实际网卡名称后续配置需要用到。接下来编辑Netplan配置文件Ubuntu 20.04默认可能使用以下两种路径之一/etc/netplan/00-installer-config.yaml/etc/netplan/50-cloud-init.yaml使用vim或nano打开对应文件sudo vim /etc/netplan/00-installer-config.yaml参考配置模板根据实际网络环境修改参数network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]关键参数说明dhcp4: no明确禁用DHCPaddresses设置静态IP和子网掩码CIDR格式gateway4指定默认网关nameservers配置DNS服务器注意YAML对缩进极其敏感建议使用空格而非Tab键每级缩进2个空格。保存文件后应用配置sudo netplan apply验证网络连通性ping -c 4 google.com若遇到配置错误可通过以下命令排查sudo netplan --debug apply journalctl -xe2. SSH服务部署安全远程管理的基石Ubuntu Server默认可能未安装SSH服务执行以下命令安装OpenSSH Serversudo apt update sudo apt install openssh-server -y安装完成后服务会自动启动。检查服务状态sudo systemctl status ssh预期应看到active (running)状态。为增强安全性建议修改默认SSH配置sudo vim /etc/ssh/sshd_config推荐的安全调整项参数建议值说明Port2222修改默认22端口PermitRootLoginno禁止root直接登录PasswordAuthenticationno强制使用密钥认证MaxAuthTries3限制认证尝试次数修改后重载SSH服务sudo systemctl restart ssh重要在禁用密码认证前请确保已将公钥添加到~/.ssh/authorized_keys文件中。3. 防火墙配置平衡安全与便利Ubuntu自带UFW(Uncomplicated Firewall)防火墙工具提供简化的iptables前端。首先确认UFW状态sudo ufw status默认应为inactive状态。若需临时完全禁用防火墙不推荐生产环境sudo ufw disable更安全的做法是配置精确的防火墙规则。允许SSH连接假设使用自定义端口2222sudo ufw allow 2222/tcp其他常用服务端口规则示例sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS sudo ufw allow 53/udp # DNS启用防火墙并确认规则生效sudo ufw enable sudo ufw status numbered典型输出应显示类似Status: active To Action From -- ------ ---- [1] 2222/tcp ALLOW Anywhere [2] 80/tcp ALLOW Anywhere [3] 443/tcp ALLOW Anywhere [4] 53/udp ALLOW Anywhere4. 系统优化与后续步骤完成基础网络和服务配置后建议执行以下系统优化系统更新与基础工具安装sudo apt update sudo apt upgrade -y sudo apt install -y git curl wget tmux htop时区配置sudo timedatectl set-timezone Asia/ShanghaiSwap空间优化针对内存有限的情况sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo /swapfile none swap sw 0 0 | sudo tee -a /etc/fstab用户权限管理创建专用管理用户并授予sudo权限sudo adduser deploy sudo usermod -aG sudo deploy日志轮转配置编辑logrotate配置防止日志文件过大sudo vim /etc/logrotate.conf建议调整参数rotate 7保留7天日志daily按天轮转compress启用压缩5. 常见问题排查指南网络连接失败检查物理连接和虚拟机网络设置验证IP配置是否正确ip addr show ens33 route -n cat /etc/resolv.conf测试网关连通性ping 192.168.1.1SSH连接问题确认服务正在运行sudo systemctl status ssh检查防火墙规则sudo ufw status查看SSH日志sudo tail -f /var/log/auth.logUFW规则不生效检查规则是否正确加载sudo iptables -L确认UFW已启用sudo ufw enable重启UFW服务sudo systemctl restart ufw在实际运维中我习惯将这套初始化流程编写成Ansible Playbook或Shell脚本以便在新服务器上快速部署。特别是在配置SSH时使用证书认证配合Fail2Ban可以有效防御暴力破解这比单纯修改端口提供更深层的安全保障。