Ubuntu 20.04服务器装完必做:5分钟搞定静态IP,顺便把SSH和防火墙配置好
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 Server:
sudo apt update sudo apt install openssh-server -y安装完成后,服务会自动启动。检查服务状态:
sudo systemctl status ssh预期应看到"active (running)"状态。为增强安全性,建议修改默认SSH配置:
sudo vim /etc/ssh/sshd_config推荐的安全调整项:
| 参数 | 建议值 | 说明 |
|---|---|---|
| Port | 2222 | 修改默认22端口 |
| PermitRootLogin | no | 禁止root直接登录 |
| PasswordAuthentication | no | 强制使用密钥认证 |
| MaxAuthTries | 3 | 限制认证尝试次数 |
修改后重载SSH服务:
sudo systemctl restart ssh重要:在禁用密码认证前,请确保已将公钥添加到
~/.ssh/authorized_keys文件中。
3. 防火墙配置:平衡安全与便利
Ubuntu自带UFW(Uncomplicated Firewall)防火墙工具,提供简化的iptables前端。首先确认UFW状态:
sudo ufw status默认应为inactive状态。若需临时完全禁用防火墙(不推荐生产环境):
sudo ufw disable更安全的做法是配置精确的防火墙规则。允许SSH连接(假设使用自定义端口2222):
sudo 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.1
SSH连接问题
- 确认服务正在运行:
sudo systemctl status ssh - 检查防火墙规则:
sudo ufw status - 查看SSH日志:
sudo tail -f /var/log/auth.log
UFW规则不生效
- 检查规则是否正确加载:
sudo iptables -L - 确认UFW已启用:
sudo ufw enable - 重启UFW服务:
sudo systemctl restart ufw
在实际运维中,我习惯将这套初始化流程编写成Ansible Playbook或Shell脚本,以便在新服务器上快速部署。特别是在配置SSH时,使用证书认证配合Fail2Ban可以有效防御暴力破解,这比单纯修改端口提供更深层的安全保障。
