Ubuntu设置静态IP

Ubuntu 16.04.5 server

确认网卡

首先,可以先确认要配置 IP 的网卡名字。

平时常用来查看网卡信息的命令是ifconfig,如果在安装系统时,有进行网络配置,就可以看见已配置的网卡,例如:

1
2
3
4
5
6
$ ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:c0:90:ac
...
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...

但是,如果安装时跳过了网络配置,通过ifconfig是无法看到网卡信息的,只能看到 loopback 接口:

1
2
3
4
$ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...

因此,推荐使用ip addr来查看网卡

1
2
3
4
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
...
2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:0c:29:a7:15:e5 brd ff:ff:ff:ff:ff:ff

可以看到一张网卡 ens33 。

配置静态IP

例如,我想配置的网卡是 ens33。通过修改文件 /etc/network/interfaces 来配置

1
$ sudo vi /etc/network/interfaces

原文件内容如下:

1
2
3
4
5
6
7
8
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

在文件末尾写入:

1
2
3
4
5
6
auto ens33              # 对应网卡名字
iface ens33 inet static # 设置为静态IP
address 192.168.99.20 # 要设置的IP地址
netmask 255.255.255.0 # 掩码,根据实际掩码设置
gateway 192.168.99.2 # 网关IP,根据实际网关设置
dns-nameservers 114.114.114.114 8.8.8.8 # DNS服务器IP,根据需要设置

如果文件中已经有对应的网卡,例如经过 DHCP,覆盖其设置即可,如果已经有 IPV6 地址,例如出现:

1
2
3
4
# The primary network interface
# This is an autoconfigured IPv6 interface
auto ens33
iface ens33 inet6 auto

是因为这张网卡已经获得了 IPV6 地址,在这两行之间插入以上所需内容,设置 IPV4 地址即可。

刷新设置

1
2
$ sudo ip addr flush ens33
$ sudo systemctl restart networking.service

再重新查看 IP:

1
2
3
4
5
6
$ ip addr
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:a7:15:e5 brd ff:ff:ff:ff:ff:ff
inet 192.168.99.20/24 brd 192.168.99.255 scope global ens33
...

可以看到已经成功配置了 ens33 的IP,可以使用ping来检测连通性了。如果刷新 IP 重启服务仍然无效,直接reboot

Ubuntu 18.04.1.0 server

在 ubuntu 18.04 中,可以使用更加方便和直观的 netplan 命令来完成配置。

配置静态IP

通过修改文件 /etc/netplan/50-cloud-init.yaml 来配置:

1
$ sudo vim /etc/netplan/50-cloud-init.yaml

初始文件就会提供非常直观可读的配置内容:

1
2
3
4
5
6
7
8
9
10
11
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens33:
addresses: []
dhcp4: true
version: 2

直接在对应位置填充内容即刻。只需注意这里的addresses项与 16.04 版本不同,包含了掩码:

1
2
3
4
5
6
7
8
9
network:
ethernets:
ens33:
addresses: [192.168.99.21/24] # IP及掩码,根据实际需要设置
gateway4: 192.168.99.2 # 网关,根据实际设置
nameservers: # DNS服务器,根据实际设置
addresses: [114.114.114.114, 8.8.8.8]
dhcp4: no # 关闭dhcp
version: 2

应用设置

1
$ sudo netplan apply

此时,再查看 IP

1
2
3
4
5
6
$ ip addr
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:9a:92:4c brd ff:ff:ff:ff:ff:ff
inet 192.168.99.21/24 brd 192.168.99.255 scope global ens33
...

利用ping可以验证此时已经配置好静态 IP 并已经连通。

本文为博主原创文章,转载请注明出处。