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命令,列出系统中所有网卡的信息:
也可以列出指定网卡的信息:
停止eth0网卡:
ifconfig eth0 down
配置 IP 地址和子网掩码:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
临时设置网关:
# 查看默认网关
route -n
或
ip route show default
# 设置默认网关
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
配置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
该配置为临时配置,重启系统后失效。
方法二:ip命令
该命令由iproute工具包提供,大部分Linux发行版默认安装,如果没有该命令,使用如下命令安装:
# Redhat
yum -y install iproute
# Ubuntu
apt -y install iproute2
列出系统中所有网卡的信息:
ip addr
可简写为:
ip a
列出指定网卡的信息:
ip a show eth0
停止eth0网卡:
ip link set eth0 down
配置 IP 地址、子网掩码和网关:
ip addr add 192.168.1.100/24 dev eth0
ip route add default via 192.168.1.100 dev eth0
配置DNS地址:
# 配置DNS地址,可添加多行(redhat系列中该配置文件由NetworkManager管理,不建议手动修改)
echo 'nameserver 114.114.114.114' >> /etc/resolv.conf
echo 'nameserver 223.5.5.5' >> /etc/resolv.conf
启动eth0网卡:
由此可知,使用“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
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”退出:
方法二:直接编辑/etc/sysconfig/network-scripts/目录下的网卡配置文件:
上图红色标记选项为必选项,下面简单介绍一下各选项意义:
选项 | 意义 |
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文件,该文件为系统安装时自动生成:
编辑完成以后,输入“netplan apply”使配置生效。
具体有关netplan的yaml文件的配置方法,参考以下官方文档:
https://ubuntu.com/server/docs/network-configuration
或者在ubuntu系统中,安装NetworkManager:
# 安装包
apt -y install network-manager
如果你不喜欢使用netplan来管理ubuntu系统的网络,可以在yaml文件中配置一行:
保存并退出,输入“netplan apply”后,reboot重启系统。
如此,则可以使用NetworkManager来管理Ubuntu系统的网络了。
Debian
Debian系统则可以直接通过编辑/etc/network/interfaces文件管理网络:
编辑完成以后重启网络服务生效:
systemctl restart networking
dns配置可能不生效,如果未生效,可以直接向/etc/resolv.conf文件中加入dns地址,即时生效:
echo 'nameserver 172.16.0.2' >> /etc/resolv.conf
echo 'nameserver 114.114.114.114' >> /etc/resolv.conf
配置dhcp自动获取:
有关/etc/network/interfaces配置文件的写法详细参考官方文档:
https://wiki.debian.org/NetworkConfiguration
后续陆续更新ArchLinux、OpenSUSE发行版的永久配置IP方法...