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)制定的在光纜上發送數字信號的一組協議。
參考資料來源:網路-乙太網介面