分享

Linux网络接口ifconfig命令及认识网络接口lo

rsgg03 发表于 2014-1-6 21:32:17 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 63223


     在网络配置文件中,经常看到ifconfig,而且还看到了lo,不知道为何意。不明白就要要学习。这里记录一下。

     一、ifconfig解释及常用功能

     ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。配置网卡的IP地址语法例:ifconfig eth0 192.168.0.1 netmask 255.255.255.0


    常用功能:

       将网卡禁用

       ifconfig eth0 down

       将网卡启用

       ifconfig eth0 up


      这个主要是重启网络,让新配置的ip生效。

   二、linux的网络接口之扫盲

  (1)网络接口的命名
  这里并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的。例如:
  eth0: ethernet的简写,一般用于以太网接口。
  wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。
  ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。
  lo: local的简写,一般指本地环回接口。
  (2)网络接口如何工作
  网络接口是用来发送和接受数据包的基本设备。
  系统中的所有网络接口组成一个链状结构,应用层程序使用时按名称调用。
  每个网络接口在linux系统中对应于一个struct net_device结构体,包含name,mac,mask,mtu…信息。
  每个硬件网卡(一个MAC)对应一个网络接口,其工作完全由相应的驱动程序控制。
  (3)虚拟网络接口
  虚拟网络接口的应用范围非常广泛。最着名的当属“lo”了,基本上每个linux系统都有这个接口。
  虚拟网络接口并不真实地从外界接收和发送数据包,而是在系统内部接收和发送数据包,因此虚拟网络接口不需要驱动程序。
  虚拟网络接口和真实存在的网络接口在使用上是一致的。
  (4)网络接口的创建
  硬件网卡的网络接口由驱动程序创建。而虚拟的网络接口由系统创建或通过应用层程序创建。
  驱动中创建网络接口的函数是:register_netdev(struct net_device *)或者register_netdevice(struct net_device *)。
  这两个函数的区别是:register_netdev(…)会自动生成以”eth”作为打头名称的接口,而register_netdevice(…)需要提前指定接口名称.事实上,register_netdev(…)也是通过调用register_netdevice(…)实现的。
  2、LINUX中的lo(回环接口)
  1) 什么是LO接口?
  在LINUX系统中,除了网络接口eth0,还可以有别的接口,比如lo(本地环路接口)。
  2) LO接口的作用是什么?
  假如包是由一个本地进程为另一个本地进程产生的, 它们将通过外出链的’lo’接口,然后返回进入链的’lo’接口.具体参考包过滤器的相关内容。
  PART2 实验:
  本地一个进程发起连接,到一个本地的daemon监听的内网IP地址(eth1: 10.1.1.1)的端口(8085),此时在eth1上是抓不到包的,在 lo 上抓到,说明使用的是本地回环接口lo,而网络层的IP地址则是内网IP地址




欢迎大家如about云官方群371358502,更新咨询,更新资源,随时关注

已有(3)人评论

跳转到指定楼层
jasonwu 发表于 2016-8-7 18:05:52
学习啦,谢谢分享
回复

使用道具 举报

wangsanlang 发表于 2017-5-3 17:38:09
学习了,谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条