ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。
参数说明:
add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
down 关闭指定的网络设备。
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
io_addr<I/O地址> 设置网络设备的I/O地址。
irq<IRQ地址> 设置网络设备的IRQ。
media<网络媒介类型> 设置网络设备的媒介类型。
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 设置网络设备的MTU。
netmask<子网掩码> 设置网络设备的子网掩码。
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
up 启动指定的网络设备。
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
-promisc 关闭或启动指定网络设备的promiscuous模式。
[IP地址] 指定网络设备的IP地址。
[网络设备] 指定网络设备的名称。
1、获取帮助
[root@localhost ~]# man ifconfig
2、显示配置信息
[root@localhost ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
开启,支持广播,运行,组播多播,每帧最大1500字节
inet 192.168.1.102 netmask 255.255.255.0 broadcast 192.168.1.255
ip 子网掩码 广播地址
inet6 fe80::f1e9:399f:8eb3:d324 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:58:d6:d7 txqueuelen 1000 (Ethernet)
mac地址 穿出队列长度
RX packets 247849 bytes 87577060 (83.5 MiB)
这次网卡激活后接收到的报文数量 大小
RX errors 0 dropped 0 overruns 0 frame 0
错误数量 丢包 溢出
TX packets 83818 bytes 22088307 (21.0 MiB)
穿出 包个数 大小
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
穿出错误 丢包
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 220 bytes 16382 (15.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 220 bytes 16382 (15.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3、配置
启用
[root@localhost ~]# ifconfig ens33 192.168.1.103/24 up
[root@localhost ~]# ifconfig ens34 192.168.1.103 netmask 255.255.255.0 up
停用
[root@localhost ~]# ifconfig ens33 192.168.1.103/24 down
[root@localhost ~]# ifconfig ens34 192.168.1.103 netmask 255.255.255.0 down
[root@node1 ~]# ifconfig ens34 0 #删除ip信息
4、 特性开始关闭 以混杂模式为例
#开启
[root@localhost ~]# ifconfig ens33 promisc
#关闭
[root@localhost ~]# ifconfig ens33 -promisc
1、查看 ?-n ?以数字方式显示,默认会反解路由,显示主机名等 ??
[root@localhost network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 ens33
到达任意地址用192.168.1.1这个网关转发
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
到达192.168.1.0这个段的网络,用ip与255.255.255.0子网掩码做运算
参数说明
Destination:目标网络或者目标主机
Gateway:网关或者*不设置
Genmask:Destination的子网掩码,主机用255.255.255.255 ,默认路由0.0.0.0
Flags:
U:路由启用
H:主机路由
G:用网关
R:回复动态路由
D:守护进程或者重定向 动态加载
M: 守护进程或者重定向 修改
A:installed by addrconf
C:缓存
!:拒绝路由
Metric:与目标的距离(通常以跳数计算)
Ref:非内核引用这条路由次数
Use:路由查询计数
Iface:发送接口
2、添加路由
[root@localhost ~]# route add -net 172.16.86.0/24 gw 192.168.1.101 dev ens33
[root@localhost ~]# route add -net 0.0.0.0/0 gw 192.168.1.1 dev ens33
[root@localhost ~]# route add -net default gw 192.168.1.1 dev ens33
3、删除 ?centos7 默认网关,无法添加回来,需要重启网络,centos6则可以添加回来
[root@localhost ~]# route del -net 0.0.0.0/0
常用参数说明
-a或--all 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-c或--continuous 持续列出网络状态。
-C或--cache 显示路由器配置的快取信息。
-e或--extend 显示网络其他相关信息。
-F或--fib 显示FIB。
-g或--groups 显示多重广播功能群组组员名单。
-h或--help 在线帮助。
-i或--interfaces 显示网络界面信息表单。
-l或--listening 显示监控中的服务器的Socket。
-M或--masquerade 显示伪装的网络连线。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
-o或--timers 显示计时器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
-r或--route 显示Routing Table。
-s或--statistice 显示网络工作信息统计表。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-w或--raw 显示RAW传输协议的连线状况。
-x或--unix 此参数的效果和指定"-A unix"参数相同。
--ip或--inet 此参数的效果和指定"-A inet"参数相同。
常用组合
[root@node1 network-scripts]# netstat -antup
Active Internet connections (servers and established)
Proto(协议) Recv-Q(接收队列) Send-Q(发送队列) Local Address(表示本地IP地址) Foreign Address (远程IP地址) State(状态) PID/Program name(进程号/名称)
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1060/sshd
上述状态说明
LISTEN:监听
ESTABLISEHD:建立的连接
FIN_WAIT_1: 客户端断开
FIN_WAIT_2:服务端断开
SYN_SENT:同步发送信号
SYN_RECV:同步接收信号
CLOSED:结束
1、显示设备信息
[root@node1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
广播 多播 队列 先进先出 队列长度
link/ether 00:0c:29:58:d6:d7 brd ff:ff:ff:ff:ff:ff
2、开启关闭【设备|属性】
ip link set - change device attributes
dev NAME (default):指明要管理的设备,dev关键字可省略;
up和down:
multicast on或multicast off:启用或禁用多播功能;
name NAME:重命名接口
mtu NUMBER:设置MTU的大小,默认为1500;
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
[root@node1 ~]# ip link set dev ens34 up #down
命名空间选项
#命名空间
[root@node1 ~]# ip netns help
Usage: ip netns list
ip netns add NAME
ip netns set NAME NETNSID
ip [-all] netns delete [NAME]
ip netns identify [PID]
ip netns pids NAME
ip [-all] netns exec [NAME] cmd ...
ip netns monitor
ip netns list-id
#添加命名空间
[root@node1 ~]# ip netns add mynet
[root@node1 ~]# ip netns list
mynet
#把ens34 设备移动到mynet的空间下
[root@node1 ~]# ip link set ens34 netns mynet
[root@node1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:58:d6:d7 brd ff:ff:ff:ff:ff:ff
#在mynet空间下查看
[root@node1 ~]# ip netns exec mynet ip link show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: ens34: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff
#删除命名空间,里面的设备释放到最外层
[root@node1 ~]# ip netns del mynet
[root@node1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:58:d6:d7 brd ff:ff:ff:ff:ff:ff
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff
1、显示
[root@node1 ~]# ip addr show #list
2、添加
[root@node1 ~]# ifconfig ens34 0
[root@node1 ~]# ip addr add 172.16.86.131/24 dev ens34
[root@node1 ~]# ip addr show ens34
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff
inet 172.16.86.131/24 scope global ens34
valid_lft forever preferred_lft forever
inet6 fe80::f6c5:56ff:bace:e204/64 scope link
valid_lft forever preferred_lft forever
#在添加一个
[root@node1 ~]# ip addr add 172.16.86.132/24 dev ens34
[root@node1 ~]# ip addr show ens34
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff
inet 172.16.86.131/24 scope global ens34
valid_lft forever preferred_lft forever
inet 172.16.86.132/24 scope global secondary ens34
valid_lft forever preferred_lft forever
inet6 fe80::f6c5:56ff:bace:e204/64 scope link
valid_lft forever preferred_lft forever
#以上2个添加用ifconfig显示只能看到第一个 添加label可以让ifconfig也显示
[root@node1 ~]# ip addr add 172.16.86.133/24 dev ens34 label ens34:1
[root@node1 ~]# ifconfig
ens34:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.86.133 netmask 255.255.255.0 broadcast 0.0.0.0
ether 00:0c:29:58:d6:e1 txqueuelen 1000 (Ethernet)
......
3、删除
[root@node1 ~]# ip addr del 172.16.86.133/24 dev ens34
4、清空
[root@node1 ~]# ip addr flush dev ens34
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:58:d6:e1 brd ff:ff:ff:ff:ff:ff
1、路由添加
ip route add - add new route
ip route change - change route
ip route replace - change or add new one
[root@node1 ~]# ip route add 172.16.86.0/24 via 172.16.86.132 dev ens34
[root@node1 ~]# ip route add 172.16.86.0/24 via 172.16.86.132 dev ens34 src 172.16.86.133
[root@node1 ~]# ip route list
172.16.86.0/24 via 172.16.86.132 dev ens34 src 172.16.86.133
到达172.16.86.0/24这个网段的地址 是由本机ens34上面的172.16.86.133这个网卡出去 下一跳是172.16.86.132
[root@node1 ~]# ip route add 172.16.86.0/24 via 192.168.1.103 dev ens33 src 192.168.1.102
2、删除
[root@node1 ~]# ip route delete 172.16.86.0/24
[root@node1 ~]# ip route delete 172.16.86.0/24 dev ens34
#清空
[root@node1 ~]# ip route flush dev ens34
3、展示
[root@node1 ~]# ip route show
default via 192.168.1.1 dev ens33 proto static metric 100
default via 172.16.86.2 dev ens34 proto static metric 101
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.102 metric 100
[root@node1 ~]# ip route get 192.168.1.0/24
broadcast 192.168.1.0 dev ens33 src 192.168.1.102
cache <local,brd>
参数说明
-h:显示帮助信息;
-V:显示指令版本信息;
-n:不解析服务名称,以数字方式显示;
-a:显示所有的套接字;
-l:显示处于监听状态的套接字;
-o:显示计时器信息;
-m:显示套接字的内存使用情况;
-p:显示使用套接字的进程信息;
-i:显示内部的TCP信息;
-4:只显示ipv4的套接字;
-6:只显示ipv6的套接字;
-t:只显示tcp套接字;
-u:只显示udp套接字;
-d:只显示DCCP套接字;
-w:仅显示RAW套接字;
-x:仅显示UNIX域套接字。
相比netstat强大之处,多了条件过滤功能
[root@node1 network-scripts]# ss -tuanp ‘( dport = :22 or sport = :22 )‘
以上均属于临时配置
网卡的配置文件:/etc/sysconfig/network-scripts/ifcfg-ethX。设置ip地址、子网掩码、默认网关等。
TYPE=Ethernet #接口类型,常见的有Ethernet, Bridge;
BOOTPROTO=static #激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
IPADDR=192.168.1.102
DNS1=8.8.8.8 #最多指定3个,防止主机跟dns服务连接不上时候备用
DNS2=114.114.114.114
GATEWAY=192.168.1.1 #网关
NETMASK=255.255.255.0 #子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码; PREFIX=24
IPV4_FAILURE_FATAL=no
IPV6INIT=no #是否初始化IPv6;
NAME=ens33
UUID=c17bccf7-ae71-4e7c-8022-5196ebbf771e #设备唯一码
DEVICE=ens33 #跟文件名ifcfg-ens33必须保持一致
ONBOOT=no #在系统引导过程中,是否激活此接口;
dns指定配置文件
[root@node1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain zander.com
nameserver 172.16.86.2
nameserver 8.8.8.8
nameserver 114.114.114.114
配置附加网络 /etc/sysconfig/network-scripts/ifcfg-ensX:Y
[root@node1 network-scripts]# cat ifcfg-ens33:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.1.106
NETMASK=255.255.255.0
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
[root@node1 network-scripts]# ifconfig
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.106 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:58:d6:d7 txqueuelen 1000 (Ethernet)
指定路由添加
[root@node1 network-scripts]# cat /etc/sysconfig/network-scripts/route-ens33
172.16.86.0/24 via 192.168.1.103
# 到达172.16.86.0这个网络段 由dev ens33这个网卡出去 下一跳是192.168.1.103
以上配置文件修改之后需要手动重启生效
CentOS 6:# service network restart
CentOS 7:# systemctl restart network.service
原文:http://blog.51cto.com/marvin89/2109338