I am running home assistant on a virtual machine on my Synology NAS. However, due to my network config and the different VLAN, I need to lower the MTU of the HA virtual machine. I tried the “ifconfig eth0 mtu 1400” command but I got a “ifconfig: SIOCSIFMTU: Operation not permitted”.
My online research on Alpine Linux did not provide me any actionable answer.
The dockers are built on Alpine Linux, but the root OS is built on buildroot. And are you sure you did not try that command inside a docker ? It needs to be done on the OS.
It’s not a question of gear, it’s that my virtual machine is connected in the NAS through a VLAN that take some MTU off the frame, then all the NAS is connected on a trunk that also has some overhead. So I need to limit the MTU of the virtual machine to smooth out the broken frame that the router needs to deal with.
I don’t believe its a docker. I may be wrong about Alpine. It’s the Synology NAS virtual machine environment. I have other virtual machine in the same system running ubuntu where I can do anything I can do on virtual machine and not a docker.
I’m connected through SSH to the OS.
OS Version: Home Assistant OS 15.1
Home Assistant Core: 2025.4.1
So I’m root there. But when I enter the command “ifconfig eth0 mtu 1400” I have the error: “ifconfig: SIOCSIFMTU: Operation not permitted”.
Maybe I should somewhere in the /etc folder put it in the bootup config and reboot because the OS does not let it change on the fly while the interface is locked by HA.
I didn’t see any option on the HA network interface setting to adjust MTU either.
So what would be the proper way to make a permanent MTU change on this OS?
I’m a bit curious, but a VLAN in and of itself still provides a payload of 1500B, so wondering what you’re seeing that causes the MTU to shrink down to 1400B.
Anyway, I think you can use the following nmcli command from the HAOS root shell: nmcli con mod CONPROFILE 802-3-ethernet.mtu 1400
where CONPROFILE can be determined using the nmcli con show which will show you the connection profile name(s) to use, which often is something like Supervisor eth0
That means you are likely inside a Docker container when trying to execute the nmcli command instead of the HAOS root shell. You’ll need to use the VM’s console, or ssh to the VM using port 22222 to get to the HAOS root shell.
How?
Did you set up the developer SSH access on port 22222 or did you just install one of the available addons?
Addons are Docker containers and seperate from the HA core Docker container.
I looked in my archive: it was a VMware .ova file that was installed (at the time it was haos_ova.10.4, but with frequent update now up to 15.1)
I’m connected on SSH through port 22.
I even setup the login with public key exchange like on my other server.