eth0拔掉網線
⑴ openwrt怎麼知道哪個商品是eth0.1,eth0.2,eth0.3
我也不知道這個問題有沒有標准答案,從我的經驗來講,有這么兩個辦法
你把所有介面上的網線都拔了,只留一根網線插在你的網口上。這時候你在OpenWRT的命令行里跑ifconfig,看哪個NIC還有顯示,那插上去的口就代表那個NIC。(注意,這個方法只適合物理介面,不適合虛擬介面)
跑ifconfig裡面會有各個NIC的IP的顯示,如果你能區分插在各個網口上的機器的網段,那就能區分出NIC對應的介面
需要注意的是,eth0.x很多時候都是VLan劃分出來的子網(在eth0這個交換機上),所以你看到的介面可能是一模一樣的(比如8口或者24口交換機),也可能是不一樣的(比如家用的路由器,一般eth0.1代表Wan口,eth0.2表示lan口)。這是一個虛擬的劃分概念,和實際介面的外形沒有直接聯系
⑵ Linux怎麼編程檢測網線是不是拔掉了
使用ifconfig命令,如果含有「RUNNING」,說明網線接入,否則就沒有。
例:
ifconfig
ifconfig eth0
ifconfig eth0|grep "RUNNING"
代碼可以寫成
#include<sys/socket.h>
#include<sys/ioctl.h>
#include<linux/if.h>
#include<string.h>
#include<stdio.h>
#include<netdb.h>
intnet_detect(char*net_name)
{
intskfd=0;
structifreqifr;
structsockaddr_in*pAddr=NULL;
skfd=socket(AF_INET,SOCK_DGRAM,0);
if(skfd<0)
{
printf("%s:%dOpensocketerror! ",__FILE__,__LINE__);
return-1;
}
strcpy(ifr.ifr_name,net_name);
if(ioctl(skfd,SIOCGIFFLAGS,&ifr)<0)
{
printf("%s:%dIOCTLerror! ",__FILE__,__LINE__);
和春printf("Maybeethernetinferface%sisnotvalid!",ifr.ifr_name);
close(skfd);
return-1;
}
if(ifr.ifr_flags&IFF_RUNNING)
{
printf("%sisrunning:) ",ifr.ifr_name);
}
else
{
printf("%sisnotrunning:( ",ifr.ifr_name);
}
if(ioctl(skfd,SIOCGIFADDR,&ifr)<0)
{
printf("SIOCGIFADDRIOCTLerror! ");
close(skfd);
return-1;
}
pAddr=(structsockaddr_in*)&(ifr.ifr_addr);
printf("ipaddr:[%s] ",inet_ntoa(pAddr->sin_addr));
if(ioctl(skfd,SIOCGIFHWADDR,&ifr)<0)
{
printf("SIOCGIFHWADDRIOCTLerror! ");
close(skfd);
return-1;
}
printf("macaddr:%02x:%02x:%02x:%02x:%02x:%02x ",
(unsignedchar)ifr.ifr_hwaddr.sa_data[0],
(unsignedchar)ifr.ifr_hwaddr.sa_data[1],
(unsignedchar)ifr.ifr_hwaddr.sa_data[2],
檔桐(unsignedchar)ifr.ifr_hwaddr.sa_data[3],
(unsignedchar)ifr.ifr_hwaddr.sa_data[4],
(unsignedchar)ifr.ifr_hwaddr.sa_data[5]);
close(skfd);
return0;
}
intmain()
{
intret;
ret=net_detect("喚蠢耐eth0");
returnret;
}
⑶ Linux系統centos7連不上網
首先,可以通過虛擬機設定網路連接方式為」NAT 網路「,如下圖:
NAT網路連接方式
接著,設置系統網卡配置文件,
centos6通常是:』/etc/sysconfig/network-scripts/ifcfg-eth0』
centos7通常是:』/etc/sysconfig/network-scripts/ifcfg-eno*(自動隨機生成)』
vim /etc/sysconfig/network-scripts/ifcfg-eth0進行編輯
通常該文件內只要有最基本的幾項信息就可以,如下:
DEVICE=eth0 # 網卡對應的設備名稱(eth0或者別的名字取決於系統)
HWADDR=08:00:27:FF:08:E9 #對應網卡物理地址,這里得跟虛擬機配置一致
ONBOOT=yes # 設置網卡設備隨系統啟動
BOOTPROTO=dhcp # 將網卡獲取IP的方式設置為dhcp
⑷ 請教:linux插拔網線時終端會顯示eth0:link up/down是怎麼實現的
簡單的來說,原理是:
硬體引腳檢測-產生中斷-驅動執行中斷程序-上報應用層-應用層列印eth0:link up/down
⑸ 請教:linux插拔網線時終端會顯示eth0:link up/down是怎麼實現的
一.安裝和配置網路設備 在安裝linux時,如果你有網卡,安裝程序將會提示你給出tcp/ip網路的配置參數,如本機的 ip地址,預設網關的ip地址,DNS的ip地址等等.根據這些配置參數,安裝程序將會自動把網卡(linux系統首先要支持)驅動程序編譯到內核中去. 但...
⑹ Redhat系統,在rc.local用route添加的路由,在網線拔掉以後就丟失了,是怎
不要放到rc.local里,不會自動重新載入
改默認網關是改 /etc/sysconfig/network 中的 GATEWAY 配置
比如:GATEWAY=192.168.0.1
改靜態路由有三種方法:改 /etc/sysconfig/network-scripts/ 目錄的下的
eth?.route #redhat 新推的格式 比較傻瓜一些 (?代表網卡號)
route-eth? #redhat 的老的格式 對專業人士很好
static-routes
例如:
/etc/sysconfig/network-scripts/eth0.route
ADDRESS0=192.168.0.0
NETMASK0=255.255.0.0
GATEWAY0=10.1.1.254
ADDRESS1=172.16.0.0
NETMASK1=255.240.0.0
GATEWAY1=10.1.1.254
/etc/sysconfig/network-scripts/route-eth0
192.168.0.0/16 via 10.1.1.254
172.16.0.0/12 via 10.1.1.254
/etc/sysconfig/static-routes
eth0 net 192.168.0.0 netmask 255.255.0.0 gw 10.1.1.254
這些比在 rc.local 裡面 route add 或者(ip route add)要好
/sbin/route add -net 192.168.0.0/16 gw 10.1.1.254
重起網路(service network restart)或者重起網卡(ifdown eth0;ifup eth0)都可以正常工作
⑺ linux綁定bond的七種模式
目前網卡綁定mode共有七種(0~6)bond0、bond1、bond2、bond3、bond4、bond5、bond6
常用的有三種:
mode=0:平衡負載模式,有自動備援,但需要」Switch」支援及設定。
mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。
mode=6:平衡負載模式,有自動備援,不必」Switch」支援及設定。
Linux網口綁定:
通過網口綁定(bond)技術,可以很容易實現網口冗餘,負載均衡,從而達到高可用高可靠的目的。前提約定:
2個物理網口分別是:eth0,eth1
綁定後的虛擬口是:bond0
伺服器IP是:10.10.10.1
第一步,配置設定文件:
[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.10.10.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1 飢行
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
第二步,修改modprobe相關設定文件,並載入bonding模塊:
1.在這里,我們直接創建一個載入bonding的襲肢毀專屬設定文件/etc/modprobe.d/bonding.conf
[root@woo ~]# vi /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding mode=0 miimon=200
2.載入模塊(重啟系統後就不用手動再載入了)
[root@woo ~]# modprobe bonding
3.確認模塊是否載入成功:
[root@woo ~]# lsmod | grep bonding
bonding 100065 0
第三步,重啟一下網路,然後確認一下狀拍備況:
[root@db01 ~]# service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]
[root@db01 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 40:f2:e9:db:c9:c2
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 40:f2:e9:db:c9:c3
[root@db01 ~]# ifconfig | grep HWaddr
bond0 Link encap:Ethernet HWaddr 40:F2:E9:DB:C9:C2
eth0 Link encap:Ethernet HWaddr 40:F2:E9:DB:C9:C2
eth1 Link encap:Ethernet HWaddr 40:F2:E9:DB:C9:C2
從上面的確認信息中,我們可以看到3個重要信息:
1.現在的bonding模式是active-backup
2.現在Active狀態的網口是eth0
3.bond0,eth1的物理地址和處於active狀態下的eth0的物理地址相同,這樣是為了避免上位交換機發生混亂。
任意拔掉一根網線,然後再訪問你的伺服器,看網路是否還是通的。
第四步,系統啟動自動綁定、增加默認網關:
[root@woo ~]# vi /etc/rc.d/rc.local
#追加
ifenslave bond0 eth0 eth1
route add default gw 10.10.10.1
⑻ 裝完最新的linux deepin後顯示網線被拔開,無法上網
插上網線也顯示斷開?deepin的話,右側的網路控制項里貌似有線和無線都有空談缺開關,你看一下,如侍棚果這些都不行,你應該到她的社區里尋找幫助的斗辯。
⑼ 請教:linux插拔網線時終端會顯示eth0:link up/do
簡單的來說,原理是: 硬體引腳檢測-產生中斷-驅動執行中斷程序-上報應用層-應用層列印eth0:link up/down請教:linux插拔網線時終端會顯示eth0:link up/do