eth0获取接口标志错误
1. ubuntu系统下找不到网卡
如您的ubuntu无线网卡找不到为您的无线网卡驱动问题。您可以按照以下方式进行重新查找:
插上网线戳开系统设置->软件更新->附加驱动看看有没有无线网卡驱动没有启用。
查好无线网卡驱动型号到官网下载安装相应驱动程序。
2. 刚刚安装了linux red hat 9.0采用的NAT网络方式,ip是dhcp自动分配。ping127.0.0.1 ping不通是怎么回事
由于要使用网络通讯,所以不可碰稿避免的要用到dhcp。理想的网络通讯方式是下面3种都要支持:
1,接入已有网络。这便要求可以作为dhcp客户端,自动获取Ip。
2,作为DHCP服务器,动态分配IP。
3,指定固定IP
第3种情况没有什么好说的,简单说下前2种情况。
使用步骤:
(1)在内核的网络指圆项里面把DHCP配置上,
Networking --->
Networking support
Networking options --->
Packet socket //添加.配置CONFIG_PACKET
[ * ] IP: DHCP support //添加
[ * ] Network packet filtering (replaces ipchains) ---> //添加,后面子选项可不选,配置CONFIG_NETFILTER
说明:若没选 Packet socket, [ * ] Network packet filtering (replaces ipchains) --->选项,在执行udhcpc命令时出现如下错误:
[root@(none) /]# udhcpc -f
udhcpc (v1.13.2) started
eth0: link up, 100Mbps, full-plex, lpa 0x41E1
udhcpc: socket: Address family not supported by protocol
(2)在busybox里面把[*]udhcp server(udhcpd)
[*]udhcp client(udhcpc)都选上。
udhcpd就是终端设备作为DHCP服务器 ;udhcpc就是终端设备作为DHCP客户端
若busybox没编译相应选项,也可从网上下载相应文件,用arm-linux交叉编译得到udhcpd,udhcpc命令到usr/sbin下就可以了。
1>编译Busybox,使make menuconfig,添加以下选项:
Networking Utilities --->
udhcp Server/Client --->
[ ] udhcp Server (udhcpd) //在此不作服务端,故不选。生成udhcpd命令
udhcp Client (udhcpc) //生成udhcpc命令
[ ] Lease display utility (mpleases)
[ ] Log udhcp messages to syslog (instead of stdout)
[ ] Compile udhcp with noisy debugging messages
若busybox没编译相应选项,也可从网上下载相应文件,用arm-linux交叉编译得到udhcpd,udhcpc命令到usr/sbin下就可以了。
说明:有种方法说是从网上下的udhcp_0.9.8cvs20050303.orig.tar.gz文件,解压后修改Makefile文件,
在19行添加CROSS_COMPILE=arm-linux-
注释12行的COMBINED_BINARY=1,
否则不生成udhcpc命令。
注:使用0.9.8版本的udhcp貌似也不行,重新编译Busybox1.9.2版本。
2>使用Busybox下的simple.script,/usr/share/udhcpc/下,并重命笑逗孝名为default.script,修改default.script中RESOLV_CONF="/etc/resolv.conf"为RESOLV_CONF="/tmp/resolv.conf"
说明:从网上下了几个default.script貌似无法使用,提示无法找到default.script文件,使用上面的方法较好。由于使用Cramfs文件系统,etc目录不可写,运行udhcp.c时会提示无法创建resolv.conf
3>将生成的udhcpc复制到开发板/sbin下,在控制台下运行udhcpc即可,很快就可以从DHCP SERVER获得IP地址。但是有个问题,开发板可以获得IP地址,在路由器里也可以看到分配地址了,问题是一使用PING命令,不管是PC 机PING 开发板,还是开发板PING PC 机,就会造成开发板死机。试了好多方法,检查ROUTE,检查ARP,修改Default.script ,始终无法解决。
1>使用udhcpc时 ,就可以直接把simple.script拿来使用,busybox里面默认的目录文件是/usr/share/udhcpc/default.script(改下名)
可以查看下帮助
# udhcpc --help
#udhcpc -f
udhcpc 之后需要关闭网卡,之后需要送重开网卡使用命令
ifconfig eth0 down
ifconfig eht0 up
之后就能正常工作了,
如果无法PING本机,设置回环地址就可以了
ifconfig lo 127.0.0.1
/************PC上使用udhcpc*****************************
从使用的角度来说,无线网卡最好用DHCP动态获取IP地址,在LINUX下使用DHCP获取地址有几种方法,在桌面机LINUX一种是配置网卡的启动脚本。即修改/etc/sysconfig/networks-scripts/ifg-XXXX(后面是设备名)。如wlan0的设备就是 ifconfig-wlan0.第一块网卡就是 ifg-eth0,
静态IP的配置文件如下
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.0.255
IPADDR=192.168.0.146
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
USERCTL=no
PEERDNS=no
TYPE=Ethernet
如果用动态IP则修改成
DEVICE=eth0
BOOTPROTO=dhcp # 以后的配置均失效。
BROADCAST=192.168.0.255
IPADDR=192.168.0.146
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
USERCTL=no
PEERDNS=no
TYPE=Ethernet
然后ifconfig eth0 down ,再打开ifconfig eth0 up即可申请IP。
*****************************************************/
2> 使用udhcpd,同样可以直接把busybox自带的udhcpd.conf作为参考,按要求配置一下udhcpd.config文件。
可以查看下帮助
# udhcpd --help
运行的时候直接#udhcpd -fs /etc/udhcpd.conf
还有一个租约文件(udhcpd.leases)要简要说说,使用udhcpd时会要求建立一个租约文件,按照提示创建一个就行了,它起什么作用呢?就是为了记录客户端所获得的IP,如果没有租约文件,则会重新给客户端分配一个新IP,如果有,则使用原先分配的IP。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
另外,摘抄ifconfig用法文章
ifconfig 命令由超级用户使用,用来配置所有的网络接口参数。也可以被用来重新定义一个接口的IP地址或其它的操作参数。
一、检查网络接口
例如:
*检查所有网络接口的状态:
# ifconfig –a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST>; mtu 8232
inet 127.0.0.1 netmask ff000000
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST>;
mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255
ether 8:0:20:75:6e:6f
*检查一个接口的状态:
# ifconfig le0
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST>;
mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255
ether 8:0:20:75:6e:6f
各字段含义:
lo0,le0——网络接口的设备名
Flags——网络接口状态的数字表示方式,状态变量已经在包中定义,将在后来讨论。
MTU——MTU用来定义包的存储片
Inet——接口的Internet 地址
netmask——掩码应用于网络层包的输入和输出。掩码被用来定义哪些值是用来表示网络地址的位。
Broadcast——广播地址,用来发送信息到所有主机。
Ether——由ARP使用的以太网地址(MAC)
—状态段
UP——这个标志指出这个接口是开放的,可以发送和接收数据。
DOWN——相反的,这个标志指出这个接口是关闭的,也就是说,此时不能为主机发送和转发包。
NOTRAILERS——这个标志指出了一个报文尾不包括以太帧的尾部。报文尾是在Berkerley Unix系统中使用的把信息头加到包尾的一种方式。在Solaris2.x系统中已经不支持。
RUNNING——这个标志指出,该接口已经被系统识别。
MULTICAST——这表示接口支持多路传送地址。
BROADCAST——这表示接口支持广播地址。
二、网络地址配置
——解决网络接口故障
丢失,不完整,或不正确的配置网络接口参数,将会引起连接失败。如:一个主机可能拒绝挂接(mount)远程文件系统,拒绝发送和接收邮件,拒绝执行打印任务,如果一个主机的接口配置错误的话。
为了确保主机接口配置的正确,要检查如下几项:
所有的接口状态是否为UP
IP地址是否正确
子网掩码是否正确
广播地址是否正确
——重新配置网络接口参数
* 允许一个网络接口(Enable):
# ifconfig le0 up
# ifconfig le0
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST>;
mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255
ether 8:0:20:75:6e:6f
*开放一个网络接口(Disable):
# ifconfig le0 down
# ifconfig le0
le0: flags=863<BROADCAST,NOTRAILERS,RUNNING,MULTICAST>; mtu 1500
inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255
ether 8:0:20:75:6e:6f
*关闭一个网络接口(Close):
# ifconfig le0 unplumb
# ifconfig le0
ifconfig : SIOCGIFFLAGS:le0:no such interface
*打开一个网络接口(Open):
# ifconfig le0 plumb
# ifconfig le0
le0:flags=842<BROADCAST,RUNNING,MULTICAST>; mtu 1500
inet 0.0.0.0 netmask 0
ether 8:0:20:75:6e:6f
*设置一个IP地址,允许接口但不允许 trailers:
# ifconfig le0 inet 128.50.1.2 –trailers up
# ifconfig le0
le0: flags=842<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST>;
mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255
ether 8:0:20:75:6e:6f
*改变掩码值和广播值来正确的反映新的掩码:
# ifconfig le0 netmask 255.255.255.0 broadcast +
# ifconfig le0
le0: flags=843<UP,BROADCAST,RUNNING,MULTICAST>; mtu 1500
inet 128.50.1.2 netmask ffffff00 broadcast 128.50.1.255
ether 8:0:20:75:6e:6f
*在正确的设置子网掩码后改变所有的广播地址:
# ifconfig –a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST>; mtu 8232
inet 127.0.0.1 netmask ff000000
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST>; mtu 1500
inet 128.50.1.5 netmask ffffff00 broadcast 128.50.255.255
ether 8:0:20:75:8b:59
le1: flags=842<BROADCAST,NOTRAILERS,RUNNING,MULTICAST>; mtu 1500
inet 128.50.3.6 netmask ffffff00 broadcast 128.50.255.255
ether 8:0:20:75:8b:59
# ifconfig –a broadcast +
# ifconfig –a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST>; mtu 8232
inet 127.0.0.1 netmask ff000000
le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST>; mtu 1500
inet 128.50.1.5 netmask ffffff00 broadcast 128.50.1.255
ether 8:0:20:75:8b:59
le1: flags=842<BROADCAST,NOTRAILERS,RUNNING,MULTICAST>; mtu 1500
inet 128.50.3.6 netmask ffffff00 broadcast 128.50.3.255
ether 8:0:20:75:8b:59
3. 混杂模式的linux下通过C设置混杂模式(以eth0举例)
char *eth_name = eth0; //对网卡eth0进行混杂设置
struct ifreq ethreq; //网络接口结构
strncpy(ethreq.ifr_name, eth_name, IFNAMSIZ); //指定网卡名称if(-1 == ioctl(sock_raw_fd, SIOCGIFFLAGS, ðreq)) //获取网络接口{perror(ioctl);close(sock_raw_fd);exit(-1);}
/*此处用 | 是因为必须在保留原来设置的情况下,在标志位中加入“混杂”方式*/ ethreq.ifr_flags |= IFF_PROMISC;if(-1 == ioctl(sock_raw_fd, SIOCSIFFLAGS, ðreq)) //将标志位设置写入{perror(ioctl);close(sock_raw_fd);exit(-1);}
4. 怎么使用LINUX获取本机的网络接口eth1的IP地址和MAC地址
方法一:
$/sbin/ifconfig
ethX
|
awk
'/inet
addr/
{print
$2}'
|
cut
-f2
-d
":"
方法二:
$/sbin/ifconfig
ethX
|
awk
'/inet
addr/
{print
$2}'
|
awk
-F:
'{print
$2}'
方法三:
$/sbin/ifconfig
ethX
|
sed
-ne
's/\(.*\)addr:\([[:digit:].]*\)\(.*\)/\2/p'
把ethX中的X替换为需要查看网卡的序号,如eth0,eth1...
获得本机所有网卡的
IPv4地址
,方法如下:
$/sbin/ifconfig
|
awk
'{if
(
$1
==
"inet"
&&
$3
~
/^Bcast/)
print
$2}'
|
cut
-f2
-d
":"
如果是
IPv6网络
,把上面的命令做简单修改即可,如:
$/sbin/ifconfig
|
awk
'/inet6/
{print
$3}'
----全部
$/sbin/ifconfig
ethX
|
awk
'/inet6/
{print
$3}'
----单个
5. 在RHEL4系统中,客户端的网络接口eth0通过运行什么命令重新获得DHCP服务器分配的IP地址
$ sudo dhclient -r //release ip 释放IP
$ sudo dhclient //获取IP
6. ETH接口是什么
ETH接口指的是接口,是目前应用最广泛的局域网通讯方式,同时也是一种协议。而以太网接口就是网络数据连接的端口。
以太网的每个版本都有电缆的最大长度限制(即无须放大的长度),这个范围内的信号可以正常传播,超过这个范围信号将无法传播。
为了允许建设更大的网络,可以用中继器把多条电缆连接起来。中继器是一个物理层设备,它能接收、放大并在两个方向上重发信号。
(6)eth0获取接口标志错误扩展阅读
几种常见的以太网接口类型。
1、SC光纤接口
SC光纤接口在100Base-TX以太网时代就已经得到了应用,因此当时称为100Base-FX(F是光纤单词fiber的缩写),不过当时由于性能并不比双绞线突出但是成本却较高,因此没有得到普及,现在业界大力推广千兆网络,SC光纤接口则重新受到重视。
2、RJ-45接口
这种接口就是我们现在最常见的网络设备接口,俗称“水晶头”,专业术语为RJ-45连接器,属于双绞线以太网接口类型。RJ-45插头只能沿固定方向插入,设有一个塑料弹片与RJ-45插槽卡住以防止脱落。
3、FDDI接口
FDDI是目前成熟的LAN技术中传输速率最高的一种,具有定时令牌协议的特性,支持多种拓扑结构,传输媒体为光纤。光纤分布式数据接口(FDDI)是由美国国家标准化组织(ANSI)制定的在光缆上发送数字信号的一组协议。
参考资料来源:网络-以太网接口