Linux 机器上以太网和 Wi-Fi 接口的命名约定标准是什么?
我们正在开发一个工具,它应该只显示Linux 机器的以太网和 Wi-Fi 接口及其当前状态。
例如,下面是我的 Linux (Ubuntu) 机器上的网络接口(物理和虚拟)列表:
docker0, enp0s25, lo,wlp3s0
当我运行该工具时,以下是我得到的结果:
enp0s25, wlp3s0
我们编写的代码的逻辑是所有以太网接口总是以字母开头,e而 Wi-Fi 接口总是以字母开头w。
逻辑对吗?如果没有,我们如何解决这个问题?
当我试图在这里修复一个有故障的以太网控制器时,我尝试的一件事是在机器上运行 tcpdump。
我发现有趣的是,tcpdump 能够检测到 ping 应用程序认为它发送的某些 ICMP 数据包实际上并未通过网络发送出去,即使它在同一台机器上运行。我在这里复制了那些 tcpdump 结果:
14:25:01.162331 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 1, length 64
14:25:02.168630 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 2, length 64
14:25:02.228192 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 2, length 64
14:25:07.236359 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 3, length 64
14:25:07.259431 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 3, …Run Code Online (Sandbox Code Playgroud) 我在 RHEL6 上运行 KVM,并在其中创建了几个虚拟机。ifconfig向主机系统命令行发出命令会显示 virbr0、virbr1... 和 vnet0、vnet2... 的列表,它们是来宾操作系统的 IP 地址吗?virbr# 和 vnet# 有什么区别?
我有一个 debian linux 机器(Debian Squeeze),如果我运行一个嗅探接口的 python 脚本,它每隔几个小时就会死锁......
堆栈跟踪附在这个问题的底部。本质上,我有一个 Broadcom 以太网接口(bnx2驱动程序),当我开始嗅探会话时它似乎死了,然后它尝试从同一接口传输帧。
据我所知,内核看门狗定时器正在跳闸......
NETDEV WATCHDOG: eth3 (bnx2): transmit queue 0 timed out
Run Code Online (Sandbox Code Playgroud)
我认为有一种方法可以使用ioctl(ref: EmbeddedFreak: How to use linux watchdog )来控制看门狗定时器。
如何找到哪个看门狗定时器正在控制 eth3?如果您能告诉我如何更改计时器甚至禁用看门狗,则可以获得奖励积分...
如何防止以太网看门狗定时器引起问题?
Apr 30 08:38:44 Hotcoffee kernel: [275460.837147] ------------[ cut here ]------------
Apr 30 08:38:44 Hotcoffee kernel: [275460.837166] WARNING: at /build/buildd-linux-2.6_2.6.32-41squeeze2-amd64-NDo8b7/linux-2.6-2.6.32/debian/build/source_amd64_none/net/sched/sch_generic.c:261 dev_watchdog+0xe2/0x194()
Apr 30 08:38:44 Hotcoffee kernel: [275460.837169] Hardware name: PowerEdge R710
Apr 30 08:38:44 Hotcoffee kernel: [275460.837171] NETDEV WATCHDOG: eth3 (bnx2): transmit queue …Run Code Online (Sandbox Code Playgroud) 我一直无法自己确定是否可以做到这一点。我想知道是否有可能将两个带有 USB 3.1 和 C 型连接器的 Linux 系统连接起来,以标准声称允许的全 10Gbps 设置点对点网络(IP 或以太网 + IP)。主机适配器支持吗?较新的 Linux 内核/工具是否支持这一点?可以使用普通电缆吗?
千兆位还不够快,而且 USB 3.1 卡很便宜并且内置在新的主板中(就像我的一样)。我猜 10Gbps 以太网将是我的第二选择,但它涉及购买所有新硬件,我必须使用二手设备。
如何查看是否eth0有10Mbit、100Mbit或1Gbit的连接速度?我试过了ethtool,但它说No data available。我也试过了dmesg | grep -i duplex,是空的。
[root@dioptase ~]# lspci
00:0a.0 Ethernet controller: Digital Equipment Corporation DECchip 21140 [FasterNet] (rev 20)
[root@dioptase ~]# ethtool eth0
Settings for eth0:
No data available
[root@dioptase ~]# ethtool -i eth0
driver: tulip
version: 1.1.15
firmware-version:
bus-info: 0000:00:0a.0
[root@dioptase ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:15:5D:6F:1E:09
inet addr:192.168.140.106 Bcast:192.168.140.255 Mask:255.255.255.0
inet6 addr: 2a00:1120:0:1002:215:5dff:fe6f:1e09/64 Scope:Global
inet6 addr: fe80::215:5dff:fe6f:1e09/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:95671897 …Run Code Online (Sandbox Code Playgroud) 给定一个带有以太网卡的 Linux 服务器,另一个设备会说未配置的路由器与跳线连接(或者如果需要,则以不同方式连接的以太网线)。
他们俩都通电了。linux机器上有没有办法获取其他设备的MAC地址?这里没有 IP 网络,只有两个连接的以太网接口。
编辑:与此相关的设备带有基本配置,期望从 DHCP 服务器获取 IP,我可以在 Linux 主机上运行该服务器,并在获得临时 IP 后立即处理该 IP。
我正在运行 Arch Linux(在 Raspberry Pi 3 上)并尝试将以太网和 Wi-Fi 连接到同一网络。route向我展示了以下内容:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 1024 0 0 eth0
default gateway 0.0.0.0 UG 1024 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
gateway 0.0.0.0 255.255.255.255 UH 1024 0 0 eth0
gateway 0.0.0.0 255.255.255.255 UH 1024 0 0 wlan0
Run Code Online (Sandbox Code Playgroud)
ip addr 向我展示了以下内容:
$ ip addr
1: …Run Code Online (Sandbox Code Playgroud) 我可以设置接口的 MTU,例如:
ip link set dev eth0 mtu 9000
Run Code Online (Sandbox Code Playgroud)
然而,不同的接口和不同的机器似乎有不同的限制导致错误:
Error: mtu greater than device maximum.
Run Code Online (Sandbox Code Playgroud)
我试图找到一种方法来检查 NIC 是否支持特定的 MTU 大小,而无需先尝试设置它;实际上,我想找到我所有服务器上所有接口的理论最大 MTU。
我检查了 ethtool 的所有功能,查看了 /sys/class/net 等,但我能找到的只是当前的 MTU 值。
有没有办法在不尝试的情况下查看接口上的 MTU 有多高?
在Linux中,有什么区别离职后ip link down-condition和真正的链接不存在(例如交换机的端口被烧毁,或者有人绊到电线)。
我所说的差异是指系统中可以用来区分这两种情况的一些标志。
例如,在这两种情况下路由表是否相同?将ethtool或其他东西显示相同的东西?是否有一些工具/实用程序可以区分这些条件?