ubuntu如何设置静态ip
服务器有时是通过dhcp动态获取ip的,有时出于远程登录方便的考虑,会将其设置为静态ip,以下是设置静态ip的方法在 Ubuntu 中设置静态 IP 的方法取决于你使用的网络管理工具(如netplan或ifconfig。
服务器有时是通过dhcp动态获取ip的,有时出于远程登录方便的考虑,会将其设置为静态ip,以下是设置静态ip的方法
在 Ubuntu 中设置静态 IP 的方法取决于你使用的网络管理工具(如 netplan
、NetworkManager
或 ifconfig
)。以下是不同 Ubuntu 版本的设置方法:
一、静态ip设置
方法 1:使用 Netplan(Ubuntu 18.04+ 默认方式)
适用于 Ubuntu 18.04 及更高版本,使用 netplan
管理网络。
步骤 1:查看网络接口
ip a
找到要配置的网卡名称(如 ens33
、eth0
或 enp0s3
)。
步骤 2:编辑 Netplan 配置文件
sudo nano /etc/netplan/01-netcfg.yaml
(文件名可能不同,如 00-installer-config.yaml
)
步骤 3:配置静态 IP
修改文件内容(示例):
network:
version: 2
renderer: networkd # 或 NetworkManager(如果使用 GUI)
ethernets:
ens33: # 你的网卡名称
dhcp4: no # 禁用 DHCP
addresses: [192.168.1.100/24] # 静态 IP 和子网掩码
gateway4: 192.168.1.1 # 网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS 服务器
注意:
- 缩进必须使用空格(不能使用 Tab)。
gateway4
在较新版本中可能被替换为routes
。gateway4、nameservers
需要根据实际情况填写,查找方式参照二、网关地址查找
和三、查看地址DNS
步骤 4:应用配置
sudo netplan apply
如果报错,可先运行:
sudo netplan --debug apply
方法 2:使用 NetworkManager(GUI / 命令行)
适用于桌面版 Ubuntu 或使用 NetworkManager 的系统。
GUI 方式
- 进入 Settings → Network。
- 选择对应连接 → IPv4 → 选择 Manual。
- 填写 IP、子网掩码、网关和 DNS → 保存。
命令行方式
nmcli con mod "有线连接 1" ipv4.addresses 192.168.1.100/24
nmcli con mod "有线连接 1" ipv4.gateway 192.168.1.1
nmcli con mod "有线连接 1" ipv4.dns "8.8.8.8,8.8.4.4"
nmcli con mod "有线连接 1" ipv4.method manual
nmcli con up "有线连接 1"
(连接名称可通过 nmcli con show
查看)
方法 3:传统配置(ifconfig,适用于旧版)
适用于 Ubuntu 16.04 或更早版本。
编辑 /etc/network/interfaces
sudo nano /etc/network/interfaces
修改内容:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
重启网络服务
sudo systemctl restart networking
验证配置
ip a # 检查 IP 是否生效
ping google.com # 测试网络连通性
nmcli con show # 查看 NetworkManager 连接
如果遇到问题,请检查:
- 网卡名称是否正确。
- 网关和子网是否匹配局域网。
- 是否冲突了 DHCP 分配的 IP。
二、网关地址查找
在 Ubuntu 系统中,可以通过多种方式查看当前网络的默认网关(Gateway),以下是几种常用的方法:
方法 1:使用 ip route
命令(推荐)
ip route show default
或
ip route | grep default
输出示例:
default via 192.168.1.1 dev eno1 proto dhcp metric 100
192.168.1.1
就是默认网关地址。dev eno1
表示使用的网络接口。
方法 2:使用 route -n
命令
route -n
输出示例:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno1
0.0.0.0
(Destination)表示默认路由。192.168.1.1
(Gateway)就是默认网关。
方法 3:使用 netstat -rn
命令
netstat -rn
输出示例:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eno1
0.0.0.0
行对应的Gateway
就是默认网关。
方法 4:使用 nmcli
(适用于 NetworkManager)
nmcli device show eno1 | grep IP4.GATEWAY
(eno1
替换为你的网卡名称,可通过 ip a
查看)
输出示例:
IP4.GATEWAY: 192.168.1.1
方法 5:查看 Netplan 或 NetworkManager 配置文件
-
Netplan(Ubuntu 18.04+):
cat /etc/netplan/*.yaml
查找
gateway4
或routes
字段。 -
NetworkManager(GUI 或
nmcli
):nmcli con show "你的连接名" | grep gateway
总结
方法 | 命令 | 适用场景 |
---|---|---|
ip route |
ip route show default |
推荐,适用于所有 Linux |
route -n |
route -n |
传统方式,较老系统 |
netstat -rn |
netstat -rn |
兼容性较好 |
nmcli |
nmcli device show <网卡> |
仅适用于 NetworkManager |
配置文件 | cat /etc/netplan/*.yaml |
查看静态配置的网关 |
三、查看地址DNS
在 Ubuntu 系统中,可以通过以下方法查看当前配置的 DNS 服务器地址:
方法 1:使用 systemd-resolve
(推荐,Ubuntu 17.10+)
systemd-resolve --status
或简写:
resolvectl status
输出示例:
Link 2 (eno1)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 8.8.8.8
8.8.4.4
DNS Domain: ~
DNS Servers
部分显示当前使用的 DNS 地址(如8.8.8.8
、8.8.4.4
)。
方法 2:查看 /etc/resolv.conf
(传统方式)
cat /etc/resolv.conf
输出示例:
nameserver 8.8.8.8
nameserver 8.8.4.4
注意:在 Ubuntu 17.10+ 上,此文件可能由
systemd-resolved
动态管理,直接修改可能无效。
方法 3:使用 nmcli
(NetworkManager 用户)
nmcli dev show | grep DNS
或查看具体连接:
nmcli con show "你的连接名" | grep ipv4.dns
输出示例:
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 8.8.4.4
方法 4:使用 dig
(测试 DNS 解析)
dig +short google.com
如果返回 IP 地址(如 142.250.190.46
),说明 DNS 解析正常。
方法 5:查看 Netplan 配置(静态 DNS)
如果使用 Netplan 配置静态 DNS:
cat /etc/netplan/*.yaml
查找 nameservers
部分:
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
总结
方法 | 命令 | 适用场景 |
---|---|---|
systemd-resolve |
resolvectl status |
推荐,Ubuntu 17.10+ |
/etc/resolv.conf |
cat /etc/resolv.conf |
传统方式(可能动态生成) |
nmcli |
nmcli dev show | grep DNS |
NetworkManager 用户 |
dig |
dig +short google.com |
测试 DNS 是否生效 |
Netplan | cat /etc/netplan/*.yaml |
查看静态配置的 DNS |
如果 DNS 不生效,可尝试:
sudo systemctl restart systemd-resolved
或手动指定临时 DNS:
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
更多推荐
所有评论(0)