Linux系统配置IP地址的方式分为临时配置和永久配置,无论是Redhat、Debian、Ubuntu、还是SUSE系列发行版,临时配置IP地址的方式都是相同的,而永久配置IP地址的方式却不尽相同,Redhat发行版从7版本开始使用NetworkManager管理网络,Ubuntu使用netplan,而Debian依旧是直接通过手动修改网卡配置文件的方式来管理网络。

临时配置

方法一:ifconfig命令

ifconfig 命令用于查看和配置网络接口, 也可以使用该命令为网络接口临时配置 IP 地址。

# ifconfig命令由net-tools工具包提供,redhat系列使用如下命令安装
yum -y install net-tools

# ubuntu系列使用:
apt -y install net-tools

打开终端直接输入ifconfig命令,列出系统中所有网卡的信息:

Linux系统配置IP地址_IP配置

也可以列出指定网卡的信息:

Linux系统配置IP地址_IP配置_02

停止eth0网卡:

ifconfig eth0 down

Linux系统配置IP地址_IP配置_03

配置 IP 地址和子网掩码:

ifconfig eth0 192.168.1.100 netmask 255.255.255.0

Linux系统配置IP地址_IP配置_04

临时设置网关:

# 查看默认网关
route -n
或
ip route show default

Linux系统配置IP地址_IP配置_05

# 设置默认网关
route add default gw 192.168.1.1
或
ip route add default via 192.168.1.1
亦或者
ip route add default via 192.168.1.1 dev eth0

# 删除默认网关
route del default gw 192.168.1.1
或
ip route del default via 192.168.1.1

Linux系统配置IP地址_IP配置_06

Linux系统配置IP地址_IP配置_07

Linux系统配置IP地址_IP配置_08

配置DNS地址:

# 配置DNS地址,可添加多行(redhat系列中该配置文件由NetworkManager管理,不建议手动修改)
echo 'nameserver 114.114.114.114' >> /etc/resolv.conf
echo 'nameserver 223.5.5.5' >> /etc/resolv.conf

启动eth0网卡:

ifconifg eth0 up

Linux系统配置IP地址_IP配置_09

该配置为临时配置,重启系统后失效。

方法二:ip命令

该命令由iproute工具包提供,大部分Linux发行版默认安装,如果没有该命令,使用如下命令安装:

# Redhat
yum -y install iproute

# Ubuntu
apt -y install iproute2

列出系统中所有网卡的信息:

ip addr
可简写为:
ip a

Linux系统配置IP地址_IP配置_10

列出指定网卡的信息:

ip a show eth0

Linux系统配置IP地址_IP配置_11

停止eth0网卡:

ip link set eth0 down

Linux系统配置IP地址_IP配置_12

配置 IP 地址、子网掩码和网关:

ip addr add 192.168.1.100/24 dev eth0
ip route add default via 192.168.1.100 dev eth0

Linux系统配置IP地址_IP配置_13

配置DNS地址:

# 配置DNS地址,可添加多行(redhat系列中该配置文件由NetworkManager管理,不建议手动修改)
echo 'nameserver 114.114.114.114' >> /etc/resolv.conf
echo 'nameserver 223.5.5.5' >> /etc/resolv.conf

启动eth0网卡:

Linux系统配置IP地址_IP配置_14

由此可知,使用“ip route add default”命令设置默认网关时,指定的网卡须是启动状态才能生效。

同样地,该命令设置的ip地址为临时配置,系统重启后失效。

永久配置

Redhat

方法一:使用NetworkManager工具配置(推荐):

# 查看网卡连接状态
nmcli con show

# 配置网卡连接
nmcli con mod eth0 ipv4.method manual \   # 设置IP地址的获取方式为手动(manual),如果是dhcp自动获取,则为自动(auto)
> ipv4.addresses 192.168.1.100/24 \
> ipv4.dns 114.114.114.114 \
> ipv4.gateway 192.168.1.1

# 重新激活网卡连接,使配置生效
nmcli con up eth0

Linux系统配置IP地址_IP配置_15

nmcli的其他常用命令:

# 查看网卡状态
nmcli dev status

# 使网卡断开连接
nmcli dev discon eth0

# 使网卡激活连接
nmcli dev con eth0

# 删除一个网卡连接
nmcli con del eth0
nmcli con del Wired\ connection\ 1

# 添加一个网卡连接,并绑定到eth0网卡
nmcli con add type ethernet ifname eth0 con-name eth0 \
> ipv4.method manual \
> ipv4.addresses 192.168.1.100/24 \
> ipv4.dns 114.114.114.114 \
> ipv4.gateway 192.168.1.1

还可以使用“nmcli con edit eth0”命令进入交互模式设置,配置项后面为空直接回车则清空该项配置,如下图所示,恢复dhcp自动获取地址,最后输入“save”保存,“quit”退出:

Linux系统配置IP地址_IP配置_16

方法二:直接编辑/etc/sysconfig/network-scripts/目录下的网卡配置文件:

Linux系统配置IP地址_IP配置_17

上图红色标记选项为必选项,下面简单介绍一下各选项意义:

选项

意义

TYPE

网络类型,通常为以太网(Ethernet)

NAME

连接名称

DEVICE

设备名称

ONBOOT

是否开机自启,对应nmcli中的“connection.autoconnect”选项

IPADDR

IP地址,可以配置多个IP,例如配置第二个IP地址可以写成“IPADDR1=”

PREFIX

IP地址前缀,也可以写成NETMASK,后跟点分十进制

GATEWAY

网关

DNS1

DNS地址,可以有多行,数字依次递进

编辑完成以后使用“nmcli con up eth0”命令同步一下配置,并激活连接。

Ubuntu

编辑/etc/netplan/00-installer-config.yaml文件,该文件为系统安装时自动生成:

Linux系统配置IP地址_IP配置_18

编辑完成以后,输入“netplan apply”使配置生效。

具体有关netplan的yaml文件的配置方法,参考以下官方文档:

https://ubuntu.com/server/docs/network-configuration

或者在ubuntu系统中,安装NetworkManager:

# 安装包
apt -y install network-manager

如果你不喜欢使用netplan来管理ubuntu系统的网络,可以在yaml文件中配置一行:

Linux系统配置IP地址_IP配置_19

保存并退出,输入“netplan apply”后,reboot重启系统。

如此,则可以使用NetworkManager来管理Ubuntu系统的网络了。

Debian

Debian系统则可以直接通过编辑/etc/network/interfaces文件管理网络:

Linux系统配置IP地址_IP配置_20

编辑完成以后重启网络服务生效:

systemctl restart networking

Linux系统配置IP地址_IP配置_21

dns配置可能不生效,如果未生效,可以直接向/etc/resolv.conf文件中加入dns地址,即时生效:

echo 'nameserver 172.16.0.2' >> /etc/resolv.conf
echo 'nameserver 114.114.114.114' >> /etc/resolv.conf

配置dhcp自动获取:

Linux系统配置IP地址_IP配置_22

Linux系统配置IP地址_IP配置_23

有关/etc/network/interfaces配置文件的写法详细参考官方文档:

https://wiki.debian.org/NetworkConfiguration


后续陆续更新ArchLinux、OpenSUSE发行版的永久配置IP方法...