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