#Ethernet not working but wlan is

4 messages · Page 1 of 1 (latest)

visual sluice
#

I've been trying to solve this for days and I genuinely can't figure it out. I setup ethernet on my machine today that dual boots windows 11 and arch, the ethernet on windows 11 works but the ethernet on arch doesn't. It shows that the ethernet is connected in that it has the ethernet symbol on the waybar and I have to disable the enp5s0 device via terminal to be able to search anything up, as when I attempt to ping anything on ethernet, it just says "destination host unreachable." My MAC address is also the same on both windows and linux, so there's not randomized mac address funny business going on. I can't tell if I'm a moron and if this is something simple or not. I don't have NetworkManager or dhcpcd anything like that, I only have iwd and systemd-networkd.

More context:
Windows fast startup is disabled. I'm not using iwd network configuration, just networkd. I live in an apartment that uses WireStar networks as its ISP and they usually have you setup a localized network with its own password the first time you connect wirelessly so that all your devices are on their own network separate from other people in the building. Thus, my two NICs are in different CGNAT segments.

This is the output of ip a and ip r when iwd is enabled:

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: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether <MAC_REDACTED> brd ff:ff:ff:ff:ff:ff
    inet 100.101.x.x/21 metric 100 brd 100.101.7.255 scope global dynamic enp5s0
       valid_lft 86395sec preferred_lft 86395sec
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether <MAC_REDACTED> brd ff:ff:ff:ff:ff:ff
    inet 100.64.xxx.xxx/24 metric 600 brd 100.64.169.255 scope global dynamic wlan0
       valid_lft 86235sec preferred_lft 86235sec
    inet6 fe80::1xxxx:xxxx:xxxx:xxxx/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether <MAC_REDACTED> brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

~ ❯ ip r
default via 100.101.x.1 dev enp5s0 proto dhcp src 100.101.x.x metric 100 
default via 100.64.xxx.1 dev wlan0 proto dhcp src 100.64.xxx.xxx metric 600 
100.64.xxx.0/24 dev wlan0 proto kernel scope link src 100.64.xxx.xxx metric 600 
100.64.xxx.1 dev wlan0 proto dhcp scope link src 100.64.xxx.xxx metric 600 
100.101.x.0/21 dev enp5s0 proto kernel scope link src 100.101.x.x metric 100 
100.101.x.1 dev enp5s0 proto dhcp scope link src 100.101.x.x metric 100 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
#

And this is the output when iwd is disabled, alongside the output of ping -c1 _gateway:

~ ❯ systemctl stop iwd.service

~ ❯ ip a
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: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether <MAC_REDACTED> brd ff:ff:ff:ff:ff:ff
    inet 100.101.x.x/21 metric 100 brd 100.101.7.255 scope global dynamic enp5s0
       valid_lft 86383sec preferred_lft 86383sec
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether <MAC_REDACTED> brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

~ ❯ ip r
default via 100.101.0.1 dev enp5s0 proto dhcp src 100.101.x.x metric 100 
100.101.0.0/21 dev enp5s0 proto kernel scope link src 100.101.x.x metric 100 
100.101.0.1 dev enp5s0 proto dhcp scope link src 100.101.x.x metric 100 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 

~ ❯ ping -c1 _gateway
PING _gateway (100.101.0.1) 56(84) bytes of data.
From <hostname> (100.101.x.x) icmp_seq=1 Destination Host Unreachable

--- _gateway ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

I get the lease via dhcp and Windows connects to the same segment as Linux, here's the output of sudo nmap --script broadcast-dhcp-discover:

~ ❯ sudo nmap --script broadcast-dhcp-discover
Starting Nmap 7.98 ( https://nmap.org ) at 2025-12-06 18:20 -0600
Pre-scan script results:
| broadcast-dhcp-discover: 
|   Response 1 of 1: 
|      Interface: enp5s0
|      IP Offered: 100.101.x.x
|      DHCP Message Type: DHCPOFFER
|      Subnet Mask: 255.255.248.0
|      Router: 100.101.0.1
|      Domain Name Server: 100.101.0.1
|      Domain Name: <REDACTED_ISP_DOMAIN>
|      NTP Servers: 100.101.0.1
|      Vendor Specific Information: <REDACTED>
|      IP Address Lease Time: 1d00h00m00s
|_    Server Identifier: 100.101.0.1
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 10.16 seconds
pseudo widget
visual sluice