欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux网络——配置网络之ifconfig家族命令

程序员文章站 2022-04-28 19:32:09
Linux网络——配置网络之ifconfig家族命令 摘要:本文主要学习了ifconfig家族用来配置网络的命令。 ifconfig命令 ifconfig命令用来显示或设置网络接口信息,设置只是临时生效,永久生效需要更改配置文件。 在最新版的CentOS 7上已经没有了这个命令,需要使用 yum i ......

linux网络——配置网络之ifconfig家族命令

摘要:本文主要学习了ifconfig家族用来配置网络的命令。

ifconfig命令

ifconfig命令用来显示或设置网络接口信息,设置只是临时生效,永久生效需要更改配置文件。

在最新版的centos 7上已经没有了这个命令,需要使用 yum install -y net-tools 命令安装。

基本语法

1 ifconfig [选项]

选项说明

 1 网卡:显示指定网卡接口信息。
 2 -a:显示全部接口信息。
 3 -s:显示摘要信息。
 4 网卡 up:启动指定网卡。
 5 网卡 down:关闭指定网卡。
 6 网卡 reload:重启指定网卡。
 7 网卡 ip地址:修改网卡的ip地址。
 8 网卡 ip地址/子网掩码位数:修改网卡的ip地址和子网掩码。
 9 网卡 netmask 子网掩码:修改网卡的子网掩码。
10 网卡 broadcast 地址:修改网卡的广播地址。
11 网卡 mtu 值:修改网卡的最大传输单元。
12 网卡 hw 地址:修改网卡的mac地址。
13 arp:启用arp协议。
14 arp:关闭arp协议。
15 add:给指定网卡配置ipv6地址。
16 del:删除指定网卡的ipv6地址。

使用举例

 1 [root@localhost ~]# ifconfig eno16777736
 2 eno16777736: flags=4163<up,broadcast,running,multicast>  mtu 1500
 3         inet 192.168.35.128  netmask 255.255.255.0  broadcast 192.168.35.255
 4         inet6 fe80::20c:29ff:fee3:52a0  prefixlen 64  scopeid 0x20<link>
 5         ether 00:0c:29:e3:52:a0  txqueuelen 1000  (ethernet)
 6         rx packets 11957  bytes 7976839 (7.6 mib)
 7         rx errors 0  dropped 0  overruns 0  frame 0
 8         tx packets 4216  bytes 1518092 (1.4 mib)
 9         tx errors 0  dropped 0 overruns 0  carrier 0  collisions 0
10 
11 [root@localhost ~]#

结果说明

1 eno16777736表示网卡名称。从flags可知该接口已启用,支持广播、组播。mtu表示最大传输单元为1500。
2 inet表示ipv4地址。netmask表示子网掩码。broadcast表示广播地址。
3 inet6表示ipv6地址。prefixlen表示掩码长度。scopeid表示作用域,link表示仅该接口有效。
4 ether表示网卡接口的mac地址。txqueuelen表示传输队列长度。ethernet表示接口类型为ethernet。
5 rx表示接收的报文情况,tx表示发送的报文情况。
6 packets表示接收报文数,bytes表示接收总字节数,errors表示错误报文数,dropped表示丢弃报文数,overruns表示溢出报文数,carrier表示载荷报文数,collisions表示冲突报文数。

route命令

route命令用于显示和操作ip路由表,设置只是临时生效,永久生效需要更改配置文件。

基本语法

查看路由信息:

1 route [-nee]

设置路由信息:

1 route [add|del] [-net|-host] [netmask] [reject|dev|gw]

选项说明

查看路由信息:

1 -n:不解析主机名称,使用ip地址和端口号。
2 -ee:使用更详细的资讯来显示。

设置路由信息:

1 -net ip地址:表示后面连接的是到一个网络的路由表。
2 -host 主机:表示后面连接的是到一个主机的路由表。
3 netmask 子网掩码:指定路由表的子网掩码。
4 reject:设置指定路由不可达。
5 dev 网卡名称:指定由那个网路卡连线出去。
6 gw ip地址 网卡名称:指定由那个网关连接出去。

使用举例

查看路由信息:

1 [root@localhost ~]# route
2 kernel ip routing table
3 destination     gateway         genmask         flags metric ref    use iface
4 default         192.168.35.2    0.0.0.0         ug    100    0        0 eno16777736
5 192.168.35.0    0.0.0.0         255.255.255.0   u     100    0        0 eno16777736
6 [root@localhost ~]#

设置路由信息:

1 [root@localhost ~]# route add -net 192.168.35.0 netmask 255.255.255.0 dev eth0
2 [root@localhost ~]# route add -net 10.0.0.0 netmask 255.0.0.0 reject
3 [root@localhost ~]# route del -net 192.168.35.0 netmask 255.255.255.0 dev eth0
4 [root@localhost ~]# route del -net 10.0.0.0 netmask 255.0.0.0 reject

字段说明

路由信息字段说明:

 1 destination表示目标网络或目标主机。
 2 gateway表示网关地址,如果没有就显示星号。
 3 genmask表示网络掩码,目标是主机时需要设为255.255.255.255,目标是默认路由时会设置为0.0.0.0。
 4 flags表示旗标,总共有多个旗标。代表的意义如下:                       
 5     u (route is up):该路由是启动(up)的。
 6     h (target is a host):该路由是到一个主机(host)而非网域。
 7     g (use gateway):该路由是到一个网关(gateway)。
 8     r (reinstate route for dynamic routing):恢复动态路由产生的表项。
 9     d (dynamically installed by daemon or redirect):该路由是由服务或者重定向创建的动态(dynamically)路由。
10     m (modified from routing daemon or redirect):该路由已经被修改(modified)了。
11     ! (reject route):这个路由将不会被接受,用来抵挡不安全的网域。
12 metric表示路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的。
13 ref表示路由引用次数。
14 use表示该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。
15 mss表示路由tcp连接的默认最大分段大小。
16 window表示路由tcp连接的默认窗口大小。
17 irtt表示初始往返时间(rtt)。内核使用它来猜测最佳的tcp协议参数,而无需等待(可能是缓慢的)答案。
18 hh表示引用缓存路由的硬件头缓存的arp条目和缓存路由的数量。如果缓存路由的接口不需要硬件地址,则为-1。
19 arp表示缓存路由的硬件地址是否最新。
20 iface表示网络接口名。

netstat命令

netstat命令用于显示网络相关信息,如网络连接,路由表,接口状态等。

基本语法

1 netstat [选项]

选项说明

 1 -t:显示tcp协议相关的连接,tcp连接均有其连接状态,而所有连接状态在fsm(finate state machine,有限状态机)内进行转换。
 2 -u:显示udp协议相关的连接,udp连接没有状态。
 3 -w:显示raw协议相关的连接。
 4 -a:显示所有状态的连接。
 5 -x:显示unix网络连接。
 6 --ip:显示internet网络连接,包含tcp、udp、raw类型的连接。
 7 -l:显示处于监听状态的连接。
 8 -e:以扩展格式显示。
 9 -n:以数字格式显示ip和port。
10 -p:显示相关进程和pid。
11 -s:显示网络协议的统计。
12 -i:显示接口信息。
13 -r:显示路由表信息。

使用举例

显示internet网络连接:

1 [root@localhost ~]# netstat -tanpe
2 active internet connections (servers and established)
3 proto recv-q send-q local address           foreign address         state       user       inode      pid/program name    
4 tcp        0      0 0.0.0.0:22              0.0.0.0:*               listen      0          18972      1472/sshd           
5 tcp        0      0 127.0.0.1:25            0.0.0.0:*               listen      0          19596      1568/master         
6 tcp        0     52 192.168.35.128:22       192.168.35.1:9341       established 0          40660      4792/sshd: root@pts 
7 tcp6       0      0 :::22                   :::*                    listen      0          18974      1472/sshd           
8 tcp6       0      0 ::1:25                  :::*                    listen      0          19597      1568/master         
9 [root@localhost ~]#

显示unix域套接字:

 1 [root@localhost ~]# netstat -xanp
 2 active unix domain sockets (servers and established)
 3 proto refcnt flags       type       state         i-node   pid/program name     path
 4 unix  2      [ acc ]     stream     listening     15887    1/systemd            /var/run/dbus/system_bus_socket
 5 unix  2      [ ]         dgram                    8216     1/systemd            /run/systemd/notify
 6 unix  2      [ acc ]     stream     listening     8224     1/systemd            /run/systemd/journal/stdout
 7 unix  5      [ ]         dgram                    8227     1/systemd            /run/systemd/journal/socket
 8 unix  12     [ ]         dgram                    8229     1/systemd            /dev/log
 9 ...
10 [root@localhost ~]# 

显示路由信息,字段含义参考route命令:

1 [root@localhost ~]# netstat -rn
2 kernel ip routing table
3 destination     gateway         genmask         flags   mss window  irtt iface
4 0.0.0.0         192.168.35.2    0.0.0.0         ug        0 0          0 eno16777736
5 192.168.35.0    0.0.0.0         255.255.255.0   u         0 0          0 eno16777736
6 [root@localhost ~]#

显示接口概要信息:

1 [root@localhost ~]# netstat -i
2 kernel interface table
3 iface             mtu    rx-ok rx-err rx-drp rx-ovr    tx-ok tx-err tx-drp tx-ovr flg
4 eno16777736      1500    18667      0      0 0          6293      0      0      0 bmru
5 lo              65536       76      0      0 0            76      0      0      0 lru
6 [root@localhost ~]#

显示接口详细信息,字段含义参考ifconfig命令:

 1 [root@localhost ~]# netstat -ie
 2 kernel interface table
 3 eno16777736: flags=4163<up,broadcast,running,multicast>  mtu 1500
 4         inet 192.168.35.128  netmask 255.255.255.0  broadcast 192.168.35.255
 5         inet6 fe80::20c:29ff:fee3:52a0  prefixlen 64  scopeid 0x20<link>
 6         ether 00:0c:29:e3:52:a0  txqueuelen 1000  (ethernet)
 7         rx packets 18488  bytes 8457307 (8.0 mib)
 8         rx errors 0  dropped 0  overruns 0  frame 0
 9         tx packets 6212  bytes 1926454 (1.8 mib)
10         tx errors 0  dropped 0 overruns 0  carrier 0  collisions 0
11 
12 lo: flags=73<up,loopback,running>  mtu 65536
13         inet 127.0.0.1  netmask 255.0.0.0
14         inet6 ::1  prefixlen 128  scopeid 0x10<host>
15         loop  txqueuelen 0  (local loopback)
16         rx packets 76  bytes 6612 (6.4 kib)
17         rx errors 0  dropped 0  overruns 0  frame 0
18         tx packets 76  bytes 6612 (6.4 kib)
19         tx errors 0  dropped 0 overruns 0  carrier 0  collisions 0
20 
21 [root@localhost ~]# 

字段说明

查看internet网络连接(tcp,udp,raw),结果字段含义如下:

 1 proto表示套接字使用的协议。
 2 recv-q表示等待接收的队列长度。
 3 send-q表示等待发送的队列长度。
 4 local address表示本地主机地址。
 5 foreign address表示远程连接地址。
 6 state表示所处的状态。通常为以下几个值之一:
 7     established 套接字有一个有效连接。
 8     syn_sent 套接字尝试建立一个连接。
 9     syn_recv 从网络上收到一个连接请求。
10     fin_wait1 套接字已关闭,连接正在断开。
11     fin_wait2 连接已关闭,套接字等待远程方中止。
12     time_wait 在关闭之后,套接字等待处理仍然在网络中的分组。
13     closed 套接字未用。
14     close_wait 远程方已关闭,等待套接字关闭。
15     last_ack 远程方中止,套接字已关闭。等待确认。
16     listen 套接字监听进来的连接。如果不设置-l或者-a选项,将不显示出来这些连接。
17     closing 套接字都已关闭,而还未把所有输出发出。
18     unknown 套接字状态未知。
19 user表示启动此进程的用户,扩展字段。
20 inode表示对应的套接字文件的inode号,扩展字段。
21 pid/program name表示处理此套接字的程序进程名和pid。

查看unix域套接字,结果字段含义如下:

 1 proto表示套接字使用的协议,通常是unix。
 2 refcnt表示使用数量,也就是通过此套接字连接的进程数。
 3 flags显示的标志为so_accepton(显示为acc),so_waitdata(w)或so_nospace(n)。如果相应的进程等待一个连接请求,那么so_accecpton用于未连接的套接字。其他标志通常并不重要。
 4 type表示套接字使用的类型:
 5     sock_dgram 此套接字用于数据报(无连接)模式。
 6     sock_stream 流模式(连接)套接字。
 7     sock_raw 此套接字用于raw模式。
 8     sock_rdm 一种服务可靠性传递信息。
 9     sock_seqpacket 连续分组套接字。
10     sock_packet raw接口使用套接字。
11     unknown 未知。
12 state此字段包含以下关键字之一:
13     free 套接字未分配。
14     listening 套接字正在监听一个连接请求。除非设置-l或者-a选项,否则不显示。
15     connecting 套接字正要建立连接。
16     connected 套接字已连接。
17     disconnecting 套接字已断开。
18     unknown 套接字状态未知。
19     空 套接字未连。
20 i-node表示对应的套接字文件的inode号,扩展字段。
21 pid/program name表示处理此套接字的程序进程名和pid。
22 path表示当相应进程连入套接字时显示的路径名。

查看接口信息,结果字段含义如下:

 1 iface表示网卡接口名称。
 2 mtu表示接口的最大传输单元。
 3 rx表示接收的数据包情况,rx-ok表示准确接收的包数,rx-err表示产生错误的包数,rx-drp表示丢弃的包数,rx-ovr表示溢出的包数。
 4 tx表示发送的数据包情况,tx-ok表示准确发送的包数,tx-err表示产生错误的包数,tx-drp表示丢弃的包数,tx-ovr表示溢出的包数。
 5 flg表示接口设置的标记,在利用ifconfig显示接口配置时,这些标记都采用一个字母。各个字母的含义如下:
 6     b 已经设置了一个广播地址。
 7     l 该接口是一个回送设备。
 8     m 接收所有数据包(混乱模式)。
 9     n 避免跟踪。
10     o 在该接口上,禁用arp。
11     p 这是一个点到点链接。
12     r 接口正在运行。
13     u 接口处于活动状态。