I have a laptop connected to the internet via Wi-Fi. It is also connected to a private network via LAN. If the laptop is connected to both networks it doesn't have internet connection. How can I tell the systen that I want all of my programs to use the Wi-Fi and only selected ones to use LAN

  • 1
    You do not tell your programs this. You can tell your OS to use a specific network and assign different routes to both networks, resulting in different NICs being used. But you do not select this on program level.
    – Hennes
    Apr 27 '15 at 13:03

Your private LAN is preferred since it is on a potentially faster connection. In order to get Linux to prefer the other Wi-Fi, you will have to change its metric. How you change the metric may depend on which distribution of Linux you are using. Any answer I give past this will probably be flagged as a duplicate since there are other posts that answer it for various distributions. This link tells how to do it in Ubuntu.

The other part of your question is how to get certain processes to use the private "NIC. In this situation, the easiest way is for the ones that need to use the LAN to connect to devices based on IP, assuming that the programs will be connecting to hosts on that actual subnet, and not routed somewhere else public. Depending on where that is, you may have to add some static routes. Otherwise Linux will not be able to easily know which traffic needs to go out which NIC.

There is a similar answer here which discusses how to use a different NIC for different processes. This would be good in situations where the boundaries aren't very distinct.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.