Yes, that's the actual interface name, not an encoding issue. These "weird characters" are letters and numbers.
The general
en*
orwl*
format (e.g.enp1s0
orwlp2s0
) comes from systemd "persistent interface names", which is itself inspired by Fedora's earlier biosdevname feature. It sets interface names based on hardware features –enp*
orwlp*
would describe the PCI bus/slot,enu*
orwlu*
would describe the USB port;enx*
orwlx*
would describe the MAC address.This is useful on systems with multiple network interfaces, as they're detected in no particular order, so it's possible for
eth0
oreth1
to swap places every now and then.systemd, however, does not enable MAC-address-based names by default – that's a Debian-specific addition, which is only applied to USB-connected interfaces. (Those can't benefit from the default systemd naming since USB paths… aren't really that persistent nor predictable.)
While the Debian configuration uses systemd-udev-generated names internally, it's technically implemented as a separate udev rules file and doesn't honor exactly the same configuration. It does honor
net.ifnames=0
(see below).The reason
airmon-ng
fails, I'm guessing, is that the name is too long – interface names on Linux are limited to 16 bytes, so airmon-ng has no more space to append "mon" for the new monitor interface's name.You don't really need "airmon-ng" with modern drivers though – all it is is a shell script to unify several different kinds of interface setup (modern and ancient).
To disable the renaming completely, boot with the net.ifnames=0
kernel parameter, e.g. add it in /etc/default/grub
. (There are other methods, but they involve too much configuration editing and might change in the future.)
This should bring you back the standard wlan*
names upon reboot.
To create a monitor interface manually, use iw
:
iw phy0 interface add mon0 type monitor ip link set mon0 up
Later, delete it:
iw mon0 interface del