如何转义 ip link 命令的特殊字符设备名称

how to escap special character device name for ip link command

我需要更改 2 台设备的 mtu,如下所示。

这项工作很好:

ip link set dev ethdc1e2470 mtu 9000 

...但是这个:

ip link set dev ethdc1e2470-emu mtu 9000

...给出:

RTNETLINK answers: Invalid argument)

我认为此错误是由设备名称中的破折号 (-) 引起的。所以我尝试用 \ 转义它,但这也没有用:

$ ip link set dev ethdc1e2470\-emu mtu 9000
RTNETLINK answers: Invalid argument

$ ip link set dev ethdc1e2470\-emu mtu 9000
Cannot find device "ethdc1e2470\-emu"

你能帮我找出正确的转义吗?

更改设备名称不是一个选项,这些是 openvswitch 自动生成的设备名称。

其实openvswitch的那些模拟接口好像不支持大于1500的MTU

如果我同样使用 ifconfig 命令,它会给出更合理的错误,我可以设置 mtu < 1500 就好了。

ifconfig eth58fd8938-emu mtu 9000 up
SIOCSIFMTU: Invalid argument

所以这不是真正的设备名称问题。感谢@jos 的有用评论

如果有其他人遇到这个问题,就这样吧

如果我在 XEN DomU 配置中将 NIC 模型从默认的 rtl8139 切换为 e1000,则生成的模拟接口可以成功设置 MTU 9000。

但是 Xen 存根域设备模型不允许设置 MTU > 1500,无论是 rtl8139 还是 e1000