在Linux下怎么确定哪个网卡对应哪个接口

在Linux下怎么确定哪个网卡对应哪个接口,第1张

方法一:查询eth对应驱动的话方法更简单:

root@uitnode2 ~ 0 # ls -l /sys/class/net/eth0/device/driver/module

lrwxrwxrwx 1 root root 0 Nov 17 20:28 /sys/class/net/eth0/device/driver/module ->../../../../module/e1000

root@uitnode2 ~ 0 # readlink -f /sys/class/net/eth0/device/driver/module

/sys/module/e1000

sysfs虚拟文件系统下有很多链接, /sys/class/net/eth0 是一个目录,底下有一个device是符号链接,会指向 /sys/devices/ 下的一个真实设备,它所指向的目录下又有一个 driver 指向 /sys/module/ 下一个模块名,那就是所使用的驱动程序名。

不过sysfs在最近一系列内核中变化很大,我看到的是2.6.26.2内核,在旧版内核上不一定都有。

root@uitnode2 ~ 0 # uname -a

Linux uitnode2.uit 2.6.26 #2 SMP Tue Sep 2 02:06:17 HKT 2008 x86_64 x86_64 x86_64 GNU/Linux

方法二: dmesg 大法

最全面的要属dmesg了,基本上启动时每个设备的初始化信息都会记录在里面,所以,看这个就可以了。

另外就是

cat /proc/cpuinfo 这是看cpu的详细信息

cat /proc/meminfo 这是看内存的详细信息

不过,仍然达不到cpuz那么详细的程度,不过cpuz是专门干这个的,应该是从bios中获得的信息(或者根据cpu的型号事先统计出来的信息),只要将cpuz移植到linux,应该也具有这种能力了

方法三:ethtool

执行

# ethtool -p eth0

时,eth0对应的网口的灯就会闪烁,你可以分别调用ethtool判断eth1,eth2对应的网口;

注意要在不插网线的时候进行,否则看不出来是否因ethtool引起的闪烁;

这个方法是在 "Redhat Magzine" (红帽杂志)上看到的;管理多网口服务器的一个有效的方法;

需要解决更多linux问题,详情请看 http://www.linuxprobe.com/chapter-00.html

望采纳

1、第一步在电脑上打开xshell,建立连接,输入主机名,用户名和密码,如下图所示:

2、第二步可以看到已经远程连接到linux系统服务器了,如下图所示:

3、第三步输入“ifconfig -a”命令,来查看linux系统ip,如下图所示:

4、第四步按回车键之后,可以查看到linux系统的ip地址,在eth0的下方inet旁边就是内网ip地址,如下图所示:

5、第五步也可以看一下按回车键的信息,eth0是网卡名称,lo是本地环回接口,netmask是本机掩码,如下图所示:

原理上只有 raw_socket 应该设置网口,正常的 socket 会根据路由来选择出口。

如果需要指定网口,需要设置 SO_BINDTODEVICE,步骤如下:

填写结构体 struct ifreq ifr 的 ifr.ifr_name 为指定的网口,如 "eth1"

setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&ifr, sizeof(ifr))

另外,如果只是需要进行测试,不防直接构包,用 libpcap 等库来进行发送。而不要用系统的 socket 库来发送。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7416366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存