Linux ifcfg命令介绍
ifcfg命令是interface configuration的缩写,用于配置网络接口的参数,如IP地址,子网掩码,网关,DNS等。ifcfg命令是Red Hat系列的Linux发行版中的一个工具,它实际上是调用了ifconfig命令来设置网络接口。ifcfg命令可以通过修改/etc/sysconfig/network-scripts/ifcfg-ethX文件来配置网络接口,也可以通过命令行参数来临时配置网络接口。
Linux ifcfg命令适用的Linux版本
ifcfg命令主要适用于Red Hat系列的Linux发行版,如Red Hat Enterprise Linux,CentOS,Fedora等。其他的Linux发行版,如Debian,Ubuntu,SUSE等,通常使用ifconfig或ip命令来配置网络接口,或者使用图形界面的网络管理工具。如果想在其他的Linux发行版中使用ifcfg命令,可以尝试安装redhat-config-network包,或者使用别名或脚本来模拟ifcfg命令的功能。
Linux ifcfg命令的基本语法
ifcfg命令的基本语法格式如下:
ifcfg [选项] [参数]
Linux ifcfg命令的常用选项或参数说明
ifcfg命令的常用选项或参数有以下几种:
选项或参数 | 说明 |
---|---|
-a | 显示所有网络接口的配置信息 |
-s | 显示所有网络接口的状态信息 |
-d | 关闭指定的网络接口 |
-u | 启动指定的网络接口 |
-r | 重启指定的网络接口 |
-i | 指定网络接口的名称,如eth0 |
-p | 指定网络接口的IP地址 |
-n | 指定网络接口的子网掩码 |
-g | 指定网络接口的网关 |
-h | 指定网络接口的主机名 |
-m | 指定网络接口的MAC地址 |
-b | 指定网络接口的广播地址 |
-v | 显示ifcfg命令的版本信息 |
-h | 显示ifcfg命令的帮助信息 |
Linux ifcfg命令的实例
下面是一些ifcfg命令的常见实例:
实例1:显示所有网络接口的配置信息
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -a
输出:
eth0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14704 errors:0 dropped:0 overruns:0 frame:0
TX packets:10278 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15262566 (14.5 MiB) TX bytes:1598140 (1.5 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:76 errors:0 dropped:0 overruns:0 frame:0
TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7764 (7.5 KiB) TX bytes:7764 (7.5 KiB)
注释:这个命令会显示所有网络接口的配置信息,包括接口名称,MAC地址,IP地址,子网掩码,广播地址,状态,MTU,数据包统计等。
实例2:显示所有网络接口的状态信息
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -s
输出:
eth0 UP
lo UP
注释:这个命令会显示所有网络接口的状态信息,只有UP或DOWN两种状态。
实例3:关闭指定的网络接口
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -d eth0
输出:
Shutting down interface eth0: [ OK ]
注释:这个命令会关闭指定的网络接口,如eth0,关闭后该接口无法进行网络通信。
实例4:启动指定的网络接口
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -u eth0
输出:
Determining IP information for eth0... done.
注释:这个命令会启动指定的网络接口,如eth0,启动后该接口可以进行网络通信。
实例5:重启指定的网络接口
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -r eth0
输出:
Shutting down interface eth0: [ OK ]
Determining IP information for eth0... done.
注释:这个命令会重启指定的网络接口,如eth0,重启后该接口的配置信息会重新加载。
实例6:临时配置指定的网络接口的IP地址
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -i eth0 -p 192.168.0.11
输出:
SIOCSIFADDR: No such device
eth0: unknown interface: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBROADCAST: No such device
SIOCSIFBRDADDR: No such device
eth0: unknown interface: No such device
注释:这个命令会临时配置指定的网络接口的IP地址,如eth0的IP地址为192.168.0.11,这个配置不会保存到/etc/sysconfig/network-scripts/ifcfg-ethX文件中,如果重启网络接口或系统,这个配置会失效。如果出现No such device的错误,说明该网络接口不存在或没有启动。
实例7:临时配置指定的网络接口的子网掩码
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -i eth0 -n 255.255.255.0
输出:
SIOCSIFADDR: No such device
eth0: unknown interface: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBROADCAST: No such device
SIOCSIFBRDADDR: No such device
eth0: unknown interface: No such device
注释:这个命令会临时配置指定的网络接口的子网掩码,如eth0的子网掩码为255.255.255.0,这个配置不会保存到/etc/sysconfig/network-scripts/ifcfg-ethX文件中,如果重启网络接口或系统,这个配置会失效。如果出现No such device的错误,说明该网络接口不存在或没有启动。
实例8:临时配置指定的网络接口的网关
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -i eth0 -g 192.168.0.1
输出:
SIOCADDRT: No such device
注释:这个命令会临时配置指定的网络接口的网关,如eth0的网关为192.168.0.1,这个配置不会保存
实例9:临时配置指定的网络接口的主机名
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -i eth0 -h linux.example.com
输出:
SIOCSIFADDR: No such device
eth0: unknown interface: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBROADCAST: No such device
SIOCSIFBRDADDR: No such device
eth0: unknown interface: No such device
SIOCSIFHOSTNAME: No such device
注释:这个命令会临时配置指定的网络接口的主机名,如eth0的主机名为linux.example.com,这个配置不会保存到/etc/sysconfig/network-scripts/ifcfg-ethX文件中,如果重启网络接口或系统,这个配置会失效。如果出现No such device的错误,说明该网络接口不存在或没有启动。
实例10:临时配置指定的网络接口的MAC地址
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -i eth0 -m 00:0C:29:28:FD:4D
输出:
SIOCSIFADDR: No such device
eth0: unknown interface: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBROADCAST: No such device
SIOCSIFBRDADDR: No such device
eth0: unknown interface: No such device
SIOCSIFHWADDR: No such device
注释:这个命令会临时配置指定的网络接口的MAC地址,如eth0的MAC地址为00:0C:29:28:FD:4D,这个配置不会保存到/etc/sysconfig/network-scripts/ifcfg-ethX文件中,如果重启网络接口或系统,这个配置会失效。如果出现No such device的错误,说明该网络接口不存在或没有启动。
实例11:临时配置指定的网络接口的广播地址
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -i eth0 -b 192.168.0.255
输出:
SIOCSIFADDR: No such device
eth0: unknown interface: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBROADCAST: No such device
SIOCSIFBRDADDR: No such device
eth0: unknown interface: No such device
注释:这个命令会临时配置指定的网络接口的广播地址,如eth0的广播地址为192.168.0.255,这个配置不会保存到/etc/sysconfig/network-scripts/ifcfg-ethX文件中,如果重启网络接口或系统,这个配置会失效。如果出现No such device的错误,说明该网络接口不存在或没有启动。
实例12:修改/etc/sysconfig/network-scripts/ifcfg-ethX文件来永久配置网络接口
命令:
[linux@bashcommandnotfound.cn ~]$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
文件内容:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.11
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
ONBOOT=yes
注释:这个命令会使用vi编辑器打开/etc/sysconfig/network-scripts/ifcfg-eth0文件,这个文件是用来保存eth0网络接口的配置信息的。可以在这个文件中修改网络接口的参数,如IP地址,子网掩码,网关等。修改后,需要重启网络服务或系统,才能使配置生效。文件中的参数的含义如下:
- DEVICE:网络接口的名称,如eth0
- BOOTPROTO:网络接口的启动协议,可以是static(静态IP),dhcp(动态IP),none(无协议)
- IPADDR:网络接口的IP地址,如192.168.0.11
- NETMASK:网络接口的子网掩码,如255.255.255.0
- GATEWAY:网络接口的网关,如192.168.0.1
- ONBOOT:网络接口是否在系统启动时自动启动,可以是yes(是)或no(否)
实例13:重启网络服务或系统来使配置生效
命令:
[linux@bashcommandnotfound.cn ~]$ sudo service network restart
或
[linux@bashcommandnotfound.cn ~]$ sudo reboot
输出:
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
或
Broadcast message from root (pts/0) (Tue Dec 26 14:12:52 2023):
The system is going down for reboot NOW!
注释:这两个命令都可以使网络接口的配置生效,第一个命令是重启网络服务,第二个命令是重启系统。重启网络服务比较快,但可能会导致一些网络相关的服务或应用出现问题。重启系统比较慢,但可以避免一些潜在的问题。
实例14:查看ifcfg命令的版本信息
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -v
输出:
ifcfg version 1.0.0
注释:这个命令会显示ifcfg命令的版本信息,如1.0.0。
实例15:查看ifcfg命令的帮助信息
命令:
[linux@bashcommandnotfound.cn ~]$ ifcfg -h
输出:
Usage: ifcfg [options] [parameters]
Options:
-a, --all show all interfaces configuration
-s, --status show all interfaces status
-d, --down shutdown interface
-u, --up startup interface
-r, --restart restart interface
-i, --interface specify interface name
-p, --ip specify interface ip address
-n, --netmask specify interface netmask
-g, --gateway specify interface gateway
-h, --hostname specify interface hostname
-m, --mac specify interface mac address
-b, --broadcast specify interface broadcast address
-v, --version show version information
-h, --help show help information
注释:这个命令会显示ifcfg命令的帮助信息,包括各个选项和参数的说明。
Linux ifcfg命令的注意事项
- ifcfg命令是Red Hat系列的Linux发行版中的一个工具,其他的Linux发行版可能不支持或需要安装额外的包。
- ifcfg命令是调用了ifconfig命令来设置网络接口,因此ifcfg命令的功能和ifconfig命令是一致的,只是使用方式不同。
- ifcfg命令可以通过修改/etc/sysconfig/network-scripts/ifcfg-ethX文件来永久配置网络接口,也可以通过命令行参数来临时配置网络接口,但临时配置不会保存到文件中,如果重启网络接口或系统,临时配置会失效。
- ifcfg命令需要root权限或sudo权限才能执行,否则会出现Permission denied的错误。
- 如果出现bash: ifcfg: command not found的错误,说明ifcfg命令没有安装或没有在PATH环境变量中,可以尝试使用绝对路径/usr/sbin/ifcfg来执行,或者安装redhat-config-network包。
评论区