bash: ifconfig,获取ip地址,这是动态地址,每次远程连接都需要重新更新Ip地址
以下是在 Ubuntu 系统中设置固定 IP 地址的详细步骤(适用于 Ubuntu 18.04 及以上版本),结合了多个权威来源的操作指南和注意事项:
🔧 一、准备工作
-
确认网络接口名称
ip a # 或使用 `ifconfig`(需安装 net-tools)
-
找到正在使用的网卡名称(如
ens33
、enp0s3
),记录其名称。 -
注意:避免使用
lo
(本地回环接口)。
-
-
获取当前网络信息
-
网关地址:
ip route | grep default # 输出中 `via` 后的地址即网关(如 `192.168.1.1`)
-
子网掩码:
-
通过
ip a
查看当前 IP 地址后的/24
(对应255.255.255.0
)。
-
-
-
备份配置文件
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak # 文件名可能不同
-
使用
ls /etc/netplan/
确认实际文件名(如01-netcfg.yaml
)。
确认实际文件名后:建议先备份原始文件:
sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak
。核心信息与建议操作:
-
主配置文件:通常
01-network-manager-all.yaml
是系统主要的网络配置文件,您应该优先编辑此文件来设置静态IP。 -
配置文件冲突:Netplan会按数字顺序应用配置,后应用的文件会覆盖先应用的设置。请确保您的静态IP配置在一个文件中完成,避免多个文件中的设置相互冲突。
设置静态IP的具体步骤(针对您的系统):
-
编辑主配置文件:
sudo nano /etc/netplan/01-network-manager-all.yaml
-
修改文件内容(请根据您的网络环境替换IP、网关等信息):
network: version: 2 renderer: NetworkManager # 桌面版通常使用NetworkManager ethernets: ens33: # 请务必使用您的实际网卡名称(可通过`ip a`命令查看) dhcp4: no # 关闭DHCP addresses: [192.168.1.100/24] # 设置的静态IP和子网掩码位 routes: - to: default via: 192.168.1.1 # 您的网关地址 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器 我的版本: network: version: 2 renderer: NetworkManager ethernets: ens33: dhcp4: no addresses: [192.168.145.167/24] routes: - to: default via: 192.168.145.2 nameservers: addresses: [8.8.8.8, 114.114.114.114] # 冒号后加空格,逗号后加空格
-
保存退出(在nano编辑器中按
Ctrl+X
,然后按Y
,最后回车)。 -
修复文件权限问题
sudo chmod 600 /etc/netplan/01-network-manager-all.yaml
-
应用新的网络配置:
sudo netplan apply
*重要提示:**
-
在修改前,建议先备份原始文件:
sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak
。 -
如果
apply
后网络连接断开,说明配置可能有误。您可以使用sudo netplan --debug apply
来获取更详细的错误信息以便排查。 -
如果配置错误导致无法远程连接,您需要直接在虚拟机屏幕上操作来修复配置文件。
-
⚙️ 二、配置静态 IP(Netplan 方式)
-
编辑 Netplan 配置文件
sudo nano /etc/netplan/00-installer-config.yaml # 替换为实际文件名
-
修改 YAML 内容
network: version: 2 renderer: networkd # 或 NetworkManager(桌面版) ethernets: ens33: # 替换为你的网卡名称 dhcp4: no # 关闭 DHCP addresses: [192.168.1.100/24] # 静态IP/子网掩码 gateway4: 192.168.1.1 # 网关地址 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS 服务器
-
关键参数说明:
-
addresses
:IP 地址格式必须为IP/掩码位数
(如/24
)。 -
gateway4
:仅用于 IPv4,IPv6 需用gateway6
。 -
缩进必须使用空格(YAML 语法要求)。
-
-
-
应用配置
sudo netplan apply # 生效配置
-
若配置错误导致断网,可用
sudo netplan try
临时测试(120 秒内回车确认,否则自动回滚)。
-
✅ 三、验证配置
-
检查 IP 是否生效
ip a show ens33 # 查看网卡 IP 是否变为静态地址
-
测试网络连通性
-
内网测试:
ping -c 4 192.168.1.1 # 网关地址
-
外网及 DNS 测试:
ping -c 4 google.com # 验证 DNS 解析 ping -c 4 8.8.8.8 # 测试外网连通性
-
若 DNS 解析失败,检查
/etc/resolv.conf
是否包含配置的 DNS 服务器。
-
⚠️ 四、常见问题与解决
问题 | 解决方案 |
---|---|
配置后无法上网 | - 检查网关和子网掩码是否与路由器一致。 - 确认 dhcp4: no 已关闭 DHCP。 |
YAML 格式错误 | 使用 sudo netplan --debug apply 查看具体错误,检查缩进和冒号。 |
网卡名称不匹配 | 通过 ip a 确认实际名称,修改配置文件。 |
DNS 未生效 | 在配置中明确指定 nameservers ,或手动编辑 /etc/resolv.conf 。 |
旧版 Ubuntu(16.04) | 修改 /etc/network/interfaces ()并重启网络服务。 |
💡 五、扩展建议
-
动态切静态:若需恢复动态 IP,将
dhcp4: no
改为yes
,并删除addresses
、gateway4
等字段。 -
多网卡场景:为不同网卡(如
eth0
、wlan0
)分别配置静态 IP,避免冲突。 -
防火墙:若启用
ufw
,需开放端口:sudo ufw allow 22
(SSH)。
通过固定 IP,可确保服务器或远程设备始终通过同一地址访问,避免因 DHCP 分配变化导致服务中断。配置时务必备份原文件,并逐步验证网络功能。