ifconfig配置ip是最常见的网卡IP设置方式,但要记住它只对当前会话临时生效,重启网络或系统后配置就丢了,很多新手在Linux服务器上折腾ifconfig,弄完发现一重启又回到原样,其实是因为没有理解ifconfig的临时属性,下面从临时配置、永久保存、命令找不到三个角度把ifconfig配置ip这件事讲透。
ifconfig配置ip的临时方案,一条命令就能搞定
先确认网卡名称和当前状态
动手之前,先输入ifconfig -a看看机器上认到了哪些网卡,输出里的eth0、ens33这类就是物理网卡,lo是本地回环,找对了名字再操作,不然容易配到虚拟接口上。
临时修改IP地址的具体命令
命令格式很简单,以eth0为例:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
- 把IP换成你要设的地址
netmask后面写子网掩码,常用255.255.0up表示激活网卡,也可以省略,配置IP时自动激活
如果还需要加默认网关,单独执行:
route add default gw 192.168.1.1
这样临时改IP就算完成了,用ifconfig eth0查看结果,确认地址和掩码是否生效。
一个网卡绑定多个IP
有些场景需要在一个物理网卡上挂多个IP,比如做端口转发或者测试环境,可以用虚拟接口:
ifconfig eth0:0 192.168.1.101 netmask 255.255.255.0 up
eth0:0就是eth0的第一个别名接口- 同样的方法可以继续创建
eth0:1、eth0:2等
这种别名方式同样是临时的,重启后会全部消失。
ifconfig配置ip后重启失效?永久保存要改配置文件
这是新手最容易踩坑的地方,ifconfig设置的参数只存在内核内存里,没有写进任何配置文件,重启网络服务或系统后,网卡会重新读取配置,之前设的IP就没了,行业共识认为,ifconfig只适合临时调试,生产环境千万别依赖它。

CentOS/RHEL系永久配置方法
以CentOS 7为例,网卡配置文件在/etc/sysconfig/network-scripts/ifcfg-eth0。
用vim打开后,保证这几项:
BOOTPROTO=static(从dhcp改成static)ONBOOT=yes(开机自动启用)IPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1
改完保存,重启网络:
systemctl restart network
或者用nmcli connection reload再up一下,这时候ifconfig看到的IP就是你设置的值,和临时命令的效果一样,但重启不会丢。
Debian/Ubuntu系永久配置方法
Ubuntu的网卡配置放在/etc/network/interfaces里,永久设置静态IP,需要这样写:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
然后执行/etc/init.d/networking restart或systemctl restart networking,不同发行版的配置文件差异很大,具体路径建议先查文档。
临时配置和永久配置的对比
| 维度 | ifconfig临时配置 | 修改配置文件永久配置 |
|---|---|---|
| 生效范围 | 当前内核状态 | 持久化到磁盘 |
| 重启后 | 丢失 | 保留 |
| 适合场景 | 调试、临时测试 | 生产环境固定IP |
| 修改方式 | 一条命令 | 编辑文件+重启网络 |
看到对比就明白,如果只是临时调一下网络,ifconfig很方便;要是想长期固定一个IP,必须改配置文件。
ifconfig配置ip命令找不到怎么办?这是工具包没装

不少人在最小化安装的Linux上敲ifconfig,得到的提示是command not found,别慌,这是系统没装net-tools工具包,不是命令写错了。
安装net-tools即可恢复ifconfig
以CentOS为例:
yum install -y net-tools
Debian/Ubuntu就用:
apt install -y net-tools
装完再敲ifconfig,熟悉的输出就回来了,业内专家指出,ifconfig属于net-tools包,而Linux系统目前主推的ip命令来自iproute2包,所以新系统默认不带ifconfig很正常。
ifconfig和ip命令到底用哪个?
既然聊到ip命令,顺便做个对比:
| 功能 | ifconfig | ip |
|---|---|---|
| 查看IP | ifconfig |
ip addr show |
| 设置IP | ifconfig eth0 192.168.1.100 |
ip addr add 192.168.1.100/24 dev eth0 |
| 删除IP | 不支持直接删除,需置空 | ip addr del 192.168.1.100/24 dev eth0 |
| 启用网卡 | ifconfig eth0 up |
ip link set eth0 up |
| 工具包 | net-tools | iproute2 |
我的建议是:新项目尽量用ip命令,但如果你习惯看ifconfig,装好net-tools照常用,两者并不冲突。
ifconfig配置ip的实操避坑场景
这一部分直接给你几个真实场景下的注意事项,省得再踩坑。
远程SSH改IP,小心把自己踢下线
如果是在远程服务器上执行ifconfig改IP,改完后有可能和当前SSH连接断开,原因很简单:当前连接走的是旧IP,改完网络变化,连接就断了,稳妥做法是先在本地写一个脚本,脚本里同时改IP并开启ssh服务,然后用screen或tmux挂着执行,这样断线后还能恢复。
修改前先备份原配置,随时可回滚

无论用ifconfig还是改配置文件,先备份原始内容,临时配置可以用ifconfig eth0 > /tmp/ifcfg_backup.txt留个底,永久配置直接cp配置文件到别的路径,比如cp ifcfg-eth0 ifcfg-eth0.bak,这花不了多少时间,但能救一次。
虚拟接口和物理接口的优先级陷阱
有时候设置完eth0:0的IP,发现同网段的其他机器ping不到它,出现这种现象,多为物理接口eth0本身没有配置同网段IP,或者路由表里没有对应条目,记得把eth0也配上同网段IP,再添加虚拟接口,否则数据包不知道怎么回。
Q&A:ifconfig配置ip的常见疑问
问:ifconfig配置ip之后能保存吗?
答:不能,ifconfig命令只修改当前运行中的内核参数,不写入任何配置文件,重启网络服务或重启系统后,所有通过ifconfig设置的IP都会丢失,想要永久保存,必须修改对应的网络配置文件。
问:ifconfig配置ip时提示SIOCSIFADDR: Permission denied怎么办?
答:这个报错表示没有权限操作网卡,普通用户执行ifconfig改IP会被拒绝,需要用root身份执行,在本机可以切换到root用户,或者直接在前面加sudo,如果用了sudo还是报错,检查一下sudoers里是否包含了对应权限。
问:ifconfig配置ip和ip addr add有什么不同?
答:ifconfig是net-tools工具包的命令,ip addr add是iproute2工具包的命令,两者都能配置IP,区别在于ip命令功能更全,比如可以添加多个相同网段的地址,而ifconfig的别名接口方式在处理路由和策略时容易产生混乱,如果你习惯ifconfig,也没问题,但新系统上推荐使用ip命令。
ifconfig配置ip的核心逻辑就两条:临时调试直接敲命令,永久生效必须写配置文件,把这两条记牢,无论哪个发行版、哪台机器,都能稳稳地把IP配好。
