Can I use Wi-Fi and cable (Ethernet) networking at same time?

You sure can. You didn't specify it, but I'm assuming you get the IP address automatically (via DHCP) both on wireless and wired connection.

Wired Ethernet is faster than wireless, so if there are two ways to get somewhere, wired will takes precedence over Wi-Fi by default. With that said, when you connect to both links, both DHCP servers by default will advertise themselves as the default gateway for all of the traffic.

So now your computer thinks it has two ways to connect to the Internet, and since wired is preferred it'll send traffic for the Internet via Ethernet. If that's the case, you would see two gateways for default networks 0.0.0.0 in your routing table, route -n, one with your wireless router as a gateway and one for the wired.

But the Metric for the Ethernet gateway would be lower than wireless, so your PC will send the packets there. Now that your Ethernet router gets them, it doesn't know what to do with them, so it just drops them. The order where you connected first shouldn't matter.

As far as fixing (this assumes the DHCP case), the correct way would be to tell the LAN router to stop advertising itself as the default gateway. You need to log in to the router and look through settings. If you have no control over the router, you can remove it from your end with:

route del default gw eth.router.ip.address

Ubuntu's Network Manager now comes with a cool feature to isolate an interface for local resources only. This feature allows you to specify an interface (like a VPN or a LAN connection) as local-only and not to be used for outbound internet connections.

From your WiFi menu, go to Edit Connections and then select the ethernet connection you would like to edit. Then, go to the IPv4 Settings tab, and click on the Routes button. Check the box labeled Use this connection only for resources on its network:

enter image description here

Do the same to the IPv6 Settings tab if necessary. Then, finally, disconnect and reconnect the altered interface.

Now, Ubuntu will intelligently not route internet-bound traffic through this interface.


Alternatively, you can do the same thing from the command-line. cd over to /etc/NetworkManager/system-connections and find the interface you want to target.

Open it with sudo nano <your targeted interface> and add the following text below the [ipv4] and [ipv6] headers:

never-default=true

Your finished file should look something like:

...

[ipv4]
dns-search=
method=auto
never-default=true

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=auto
never-default=true

Note that with the command-line method, you will need to disconnect and re-connect to the network to allow these settings to take place.


I still do not have enough information for giving you an answer in which I am 100% confident, but here are a few hypothesis.

  • When connected on the cabled LAN, you are on a different subnet than when using the Wireless LAN. The routing between these 2 LAN is not configured, and thus when requesting an IP range that is not in the current active LAN, the packet are sent to the "default" interface, usually the gateway/router.
  • You have both Wireless and wired connection active, but the wired one is activated after the wireless and whatever network management tool you are using is just replacing the route table entries with the last activated connection. Thus, when you activate the wired connection, the previous routing table is "cancelled/removed". You may need to adjust the routing manually in your network management tool.