Maison >php教程 >PHP开发 >网络基础与Linux网络配置之一 ifconfig、route、netstat命令详解

网络基础与Linux网络配置之一 ifconfig、route、netstat命令详解

高洛峰
高洛峰original
2016-12-15 09:56:031783parcourir

OSI模型与TCP/IP协议簇

1.首先TCP/IP是一个协议簇;而OSI(开放系统互联)则是一个模型,且TCP/IP的开发时间在OSI之前。
2. TCP/IP是由一些交互性的模块做成的分层次的协议,其中每个模块提供特定的功能;OSI则指定了哪个功能是属于哪一层的。
3. TCP/IP是五层结构,而OSI是七层结构。

4.TCP/IP是现行使用的协议,而OSI是学习用的

OSI模型与TCP/IP协议簇

在计算机进行传输数据时需要通过MAC地址和IP网络地址来进行传输。IP地址仅仅是用来标识网络,而真正传输时还是用的MAC地址。


IP地址:

IPv4:32bits二进制数字。
   8bits.8bits.8bits.8bits
   范围: 0.0.0.0-255.255.255.255
                        
IP地址分类:
  A类:
    第一段为网络号,后三段为主机号
    网络号:
    0 000 0000 - 0 111 1111:1-127
    网络数量:126,127
    每个网络中的主机数量:2^24-2
    默认子网掩码:255.0.0.0,/8
                              
  B类:
    前两段为网络号,后两段为主机号
    网络号:
    10 00 0000 - 10 11 1111:128-191
    网络数:2^14
    每个网络中的主机数量:2^16-2
    默认子网掩码:255.255.0.0,/16
                              
  C类:
    前三段为网络号,最后一段为主机号
    网络号:
    110 0 0000 - 110 1 1111:192-223
    网络数:2^21
    每个网络中的主机数量:2^8-2
    默认子网掩码:255.255.255.0,  /24
  D类:组播
    1110 0000 - 1110 1111:224-239
  E类:科研
    240-255

A类:1.0.0.0~126.255.255.255,默认子网掩码/8,即255.0.0.0 
    (其中127.0.0.0~127.255.255.255为环回地址,用于本地环回测试等用途);
    私网地址:10.0.0.0~10.255.255.255;
    
B类:128.0.0.0~191.255.255.255,默认子网掩码/16,即255.255.0.0;
    私网地址:172.16.0.0~172.31.0.0;
    
C类:192.0.0.0~223.255.255.255,默认子网掩码/24,即255.255.255.0;
    私网地址192.168.0.0~192.168.255.255
    
D类:224.0.0.0~239.255.255.255,一般于用组播

E类:240.0.0.0~255.255.255.255(其中255.255.255.255为全网广播地址)
E类地址一般用于科研


将Linux主机接入网络

    

  IP/NETMASK:本地通信

   路由(网关):跨网络通信

   DNS服务器地址:基于主机名的通信

   主DNS服务器地址

   备用DNS服务器地址

   第三备份DNS服务器地址


配置方式:

   静态指定

   动态分配(DHCP)


修改配置文件(不会立即生效,可以永久有效)        

命令修改(只有此次有效,重启之后即失效)


静态分配:

ifcfg家族:

    ifconfig:配置IP,NETMASK

    route:路由

    netstat:状态及统计数据查看

iproute2家族:

    ip OBJECT:

    addr:地址和掩码;

    link:接口

    route:路由

    ss:状态及统计数据查看

    

CentOS 7:nm(Network Manager)家族

     nmcli:命令行工具

     nmtui:text window 工具



ifcfg家族详解:

    

ifconfig:


使用ifconfig命令查看网卡信息

[root@bogon ~]# ifconfig [eth0] #可省略

   


配置网卡的ip地址信息

[root@bogon ~]# ifconfig eth0:0 192.168.1.199/24

   

这时再用ifconifg命令查看,就可以看到两个网卡的信息了,分别为:eth0和eth0:0。若还想再增加IP,那网卡的命名就接着是:eth0:1、eth0:2…想要几个就填几个。ok!


修改网卡MAC地址

[root@bogon ~]# ifconfig eth0 hw ether 00:11:22:33:44:55

   

  这时就将网卡的硬件地址更改了,此时你就可以骗过局域网内的IP地址邦定了。


将网卡禁用 

[root@bogon ~]# ifconfig eth0 down

  


将网卡启用 

[root@bogon ~]# ifconfig eth0 up

      

route命令


作用

route命令用于查看和配置linux内核路由表,也就是用来查看和配置linux的静态路由表。

描述

route命令操作基于linux内核路由表,它的主要作用是创建一个静态路由让指定的一个主机或者一个网络通过一个网络接口,如eth0。当使用”add”或者”del”参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。

命令格式

route命令格式如下:

route [-nee]
route add [-net|-host] [网络或主机] netmask [mask] [gw|dev]
route del [-net|-host] [网络或主机] netmask [mask] [gw|dev]

   


参数说明

-n:#在输出的路由信息中,直接显示ip地址而不显示主机名,像netstat命令也有此参数;

-ee:#显示更详细的静态路由信息;



添加一条新路由 (add) 与删除一条路由 (del) 路由的相关参数:

-net: #目标地址是一个网络;

-host:#目标地址是一个主机;

netmask:#当添加一个网络路由时,需要使用网络掩码,决定网域的大小;

gw:#gateway 的缩写,路由数据包通过的网关,后面接的是IP地址,与dev不同;

dev:#如果只是要指定由哪一块网卡出去,则使用这个设定,后面接eth0 等网卡设备名称;




路由查看及管理

[root@bogon ~]# route -n #查看
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

   


 路由表字段含义       

 Destination 目标

The destination network or destination host. 目标网络或目标主机(有-n参数时,只显示IP地址,否则显示主机名称)。


Gateway 网关
The gateway address or ‘*’ if none set.  网关地址,如果没有就显示星号(加-n选项时为0.0.0.0)。


Genmask 网络掩码
The  netmask  for  the  destination net; ‘255.255.255.255’ for a  host destination and ‘0.0.0.0’ for the default route. 即,”255.255.255.255″表示一个主机。”0.0.0.0″表示网关。


 Flags  Possible flags include 标志,常用的是U和G。

U (route is up) 路由启用

H (target is a host) 目标是主机

G (use gateway) 使用网关

R (reinstate route for dynamic routing)

D (dynamically installed by daemon or redirect)

M (modified from routing daemon or redirect)

A (installed by addrconf)

C (cache entry)

!  (reject route)

Metric 距离、跳数。暂无用。

The ‘distance’ to the target (usually counted in  hops).  It  isnot  used  by  recent kernels, but may be needed by routing dae-mons.


Ref 不用管,恒为0。Number of references to this route. (Not used in the Linux  ker-nel.)


Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。

Count of lookups for the route. Depending on the use of -F and-C this will be either route cache misses (-F) or hits (-C).


Iface 接口,即eth0,eth0等网络接口名Interface to which packets for this route will be sent.




添加路由

[root@bogon ~]# route add -net 192.168.3.0/24 gw 192.168.1.1 dev eth0

   

添加一条到达192.168.3.0网络的路由,指定网络掩码为255.255.255.0,数据包通过网络接口eth0,并且数据包将发往网关地址192.168.1.1

    

添加默认路由

[root@bogon ~]# route add  default  gw 192.168.1.1

   

 删除路由

[root@bogon ~]# route add -net 192.168.3.0/24 gw 192.168.1.1 dev eth0

     

netstat命令

用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。


用法

  netstat [-veenNcCF] [b3db576d228cd19351b9a2d0970e940b] -r        

   netstat {-V|--version|-h|--help}
   netstat [-vnNcaeol] [b382046ee41c398bcec9921d8832c4ff ...]
   netstat { [-veenNac] -I[e72439576824856495e22243fe756225] | [-veenNac] -i | [-cnNe] -M | -s } [delay]

常见参数

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到


常用组合

-tan,  -uan,  -tnl,  -unl,  -tunlp ...


列出处于监听状态的socket

[root@bogon ~]# netstat -l

   

显示所有被监听的tcp连接

[root@bogon ~]# netstat -tal
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 *:ssh                       *:*                         LISTEN      
tcp        0      0 localhost:smtp              *:*                         LISTEN      
tcp        0     52 bogon:ssh                   bogon:6170                  ESTABLISHED 
tcp        0      0 *:ssh                       *:*                         LISTEN      
tcp        0      0 localhost:smtp              *:*                         LISTEN

   

显示所有接口的统计数据


[root@bogon ~]# netstat -i
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0     3898      0      0      0     1828      0      0      0 BMRU
eth0:0     1500   0      - no statistics available -                            BMRU
lo        65536   0        0      0      0      0        0      0      0      0 LRU

   

  -I0bcad160bf3779abf67fe7176ab7c702:指定接口的统计数据


更多网络基础与Linux网络配置之一 ifconfig、route、netstat命令详解相关文章请关注PHP中文网!


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:深入理解PHP之数组(遍历顺序)Article suivant:Netstat 命令详解