Ubuntu 命令行修改静态 IP
Ubuntu 修改静态IP
确定本机网卡
$ ifconfig
# 我们要找的网卡信息
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.33.158 netmask 255.255.255.0 broadcast 10.10.33.255
inet6 fe80::f977:78ee:d426:44f0 prefixlen 64 scopeid 0x20<link>
ether 6c:2b:59:fa:d5:59 txqueuelen 1000 (Ethernet)
RX packets 11954820 bytes 9213482467 (9.2 GB)
RX errors 0 dropped 485752 overruns 0 frame 0
TX packets 6430777 bytes 1052165750 (1.0 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0x92f00000-92f20000
# 本地回环地址,无关
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 144525448 bytes 104065670824 (104.0 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 144525448 bytes 104065670824 (104.0 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如上输出, eno1
是网卡名称,会用于稍后的ip配置
如果有多个网卡输出请排除 docker /虚拟环境等网卡,找到最正常的ip地址所属的网卡(如上 inet 10.10.33.158,或者类似198.162.x.x)
修改网卡配置
# 备份原网卡配置文件
$ sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak
# 修改文件
sudo vim /etc/netplan/01-network-manager-all.yaml
清空文件后,将以下内容写入到 /etc/netplan/01-network-manager-all.yaml 中、
# 以下内容写入
network:
version: 2
renderer: networkd
ethernets:
enp0s31f6:
dhcp4: yes
addresses:
- 10.10.33.xx/24
gateway4: 10.10.33.xxx
nameservers:
addresses: [8.8.8.8]
其中 address 下的10.10.33.xx
应改为你所希望固定的静态ip
gateway4 中的 10.10.33.xxx
应改为正确的网关,末尾会讲解如何查看网关
写入完毕后,保存并退出/etc/netplan/01-network-manager-all.yaml,应用更改
# 退出vim
:wq!
#应用配置
$ sudo netplan apply
sudo netplan apply
成功后,再次键入 ifconfig
即可验证固定ip是否更改成功
查看网关
$ ip r
default via 10.10.33.1 dev enp0s31f6 proto static
default via 10.10.33.254 dev enp0s31f6 proto static
default via 10.10.33.254 dev enp0s31f6 proto dhcp src 10.10.33.156 metric 100
10.10.33.0/24 dev enp0s31f6 proto kernel scope link src 10.10.33.39
可以看到有2个 default 的网关 10.10.33.1
和 10.10.33.254
,那么该如何判断哪一个网关是正确的呢?
最简单的方法是分别将这两个网关写入到 /etc/netplan/01-network-manager-all.yaml 进行尝试。