nmcli example
Meuon 2025-07-02 5700
Took some time ignoring AI SLOP and reading man pages and experimenting before finding the simplest and most reliable way to have the first ethernet be DHCP and also have a static address. Lots of bad examples, and good complex examples with bridges and other abstractions. Linux does this very well, just gotta figure out the newer NMCLI syntax.
#nmcli #cli #linux #embedded
#nmcli #cli #linux #embedded
/usr/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
/usr/bin/nmcli con modify "Wired connection 2" connection.autoconnect yes
/usr/bin/nmcli device modify enP4p65s0 ipv4.method manual ipv4.addr "192.168.99.1/28"
/usr/bin/nmcli connection modify "Wired connection 1" +ipv4.addresses "192.168.99.17/28"
/usr/bin/nmcli connection up "Wired connection 1"
/usr/bin/ip addr
makes IP ADDR show: ; # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen # 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enP4p65s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 56:83:3e:05:d8:5c brd ff:ff:ff:ff:ff:ff
inet 192.168.77.108/24 brd 192.168.77.255 scope global dynamic noprefixroute enP4p65s0 valid_lft 80625sec preferred_lft 80625sec
inet6 fe80::11ff:84be:ae53:54b9/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enP2p33s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen1000
link/ether 4a:a1:e1:72:d9:e3 brd ff:ff:ff:ff:ff:ff
inet 192.168.101.1/24 brd 192.168.101.255 scope global noprefixroute enP2p33s0
valid_lft forever preferred_lft forever
inet6 fe80::d758:148a:ebb4:f2c3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 750 qdisc pfifo_fast state UNKNOWN group default qlen 500
link/none
inet 10.9.0.201 peer 10.9.0.202/32 scope global tun0
valid_lft forever preferred_lft forever
