Slow wireless connection speeds on Linux often come as an unpleasant surprise to users accustomed to the performance of Windows or macOS. The problem may lie not with the ISP or router, but with the default drivers and power-saving settings that Ubuntu uses by default. Network optimization In this environment, manual intervention is required, as automatic mechanisms are sometimes overly aggressive in saving resources.
In this guide, we'll walk you through the specific steps to get the most out of your Wi-Fi adapterWe'll cover diagnosing current issues, installing proprietary drivers, disabling sleep modes, and tweaking kernel parameters. Proper configuration can work wonders, turning an unstable connection into a fast channel for work and entertainment.
It's worth keeping in mind that the results depend on the specific hardware. Different chipsets (Realtek, Broadcom, Intel) respond differently to settings. However, the basic principles internet acceleration remain universal for most modern versions of Ubuntu, from LTS to current releases.
Diagnostics of the current network state
Before making any changes, it's important to get a complete picture of what's happening. Standard monitoring tools often only show the connection status, concealing the actual packet exchange rate and signal strength. A more in-depth analysis requires using the terminal, which houses the most powerful administration tools.
The first step is to check the driver being used and its status. The system may be using an open source driver. mac80211, which is compatible with many devices, but not always optimal. You can find out which kernel module is currently active using the command lspci -k for internal cards or lsusb for external USB adapters.
It's also important to evaluate the signal quality and noise level. High levels of interference can negate all software settings. For this, use the following utility: iwlist, which will provide detailed information about available access points and your connection parameters.
⚠️ Attention: If you're using a laptop, make sure it's not in power-saving mode, which artificially limits the transmitter power. Check the indicators on the laptop case or in the system tray.
Collect the following information for analysis:
- 📡 ESSID — the name of your network to ensure proper connection.
- 📶 Signal level — signal level in dBm (the closer to 0, the better, for example -40 dBm is excellent, and -90 dBm is bad).
- 🔗 Link Quality — link quality, expressed as a percentage or fraction.
- 🆔 Driver — the name of the driver that controls your adapter.
The data obtained will help determine whether the problem is software or hardware-related. If the signal strength is low even near the router, no system settings will help—a booster or antenna replacement will be required.
Installing and updating Wi-Fi drivers
One of the main reasons for low speed is the use of universal drivers instead of specialized ones. Ubuntu strives to use free software, but for some chipsets, proprietary drivers are significantly faster and more stable. This is especially true for adapters from Broadcom and some models Realtek.
Check for available drivers through the graphical interface or terminal. The system will automatically offer to install missing components if compatible hardware is detected. This is the safest option for beginners who don't want to risk system stability.
To manually check and install, follow these steps:
- Open a terminal and enter the command to update the package list:
sudo apt update. - Run the driver search:
sudo ubuntu-drivers autoinstall. - Restart your computer with the command
sudo rebootto apply the changes.
If automatic installation doesn't work, you may need to build the driver from source. This is a more complex process that requires installing packages. build-essential And dkmsSuch instructions can often be found on the GitHub repositories of the developers of a particular chipset.
Where can I find drivers for old adapters?
For older models whose support has been removed from newer kernels, it's worth searching for archived driver versions on manufacturer websites or in communities like forums.kernel.org. Be careful when compiling code from untrusted sources.
After installing a new driver, be sure to check its functionality. Sometimes old modules can conflict with new ones, so it's worth adding them to the blacklist (blacklist) in the module configuration files.
Disabling Wi-Fi adapter power saving
By default, Ubuntu enables power-saving mode for wireless interfaces to extend laptop battery life. However, this causes the adapter to periodically "sleep," causing lag, packet loss, and speed drops. Disabling this feature — one of the most effective ways to speed up Wi-Fi.
Configuration is done through a configuration file. /etc/NetworkManager/conf.d/default-wifi-powersave-on.confYou need to change the parameter value. wifi.powersaveIn older versions of the system, this file may have had a different name or been located in a different directory.
Follow these steps to disable:
sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
Find the line wifi.powersave = 3 and replace the number 3 with 2. The value 2 means power saving is disabled, while 3 means it is enabled. Save the changes and restart the network service.
☑️ Energy Saving Disabling Checklist
After making changes, restart the network manager:
sudo systemctl restart NetworkManager
This measure is especially important for desktop PCs connected to the network, where saving energy is not beneficial. For laptops in battery mode, this can reduce battery life by 10-15 minutes, but will ensure stable ping for games and video calls.
⚠️ Attention: The NetworkManager settings interface may vary across different Ubuntu versions. If the file isn't found at the specified path, try searching for it in/etc/NetworkManager/or check the settings vianmcli.
Optimizing kernel and TCP parameters
The Linux operating system has a flexible network stack management system. By changing kernel parameters, you can significantly increase channel throughput. The default settings are focused on compatibility rather than maximum performance in modern high-speed networks.
The key file for the settings is /etc/sysctl.confHere you can specify values that will be applied at each system boot. We'll focus on buffer parameters and congestion management algorithms.
Recommended changes to speed up:
- 🚀 net.core.rmem_max — increases the maximum receive buffer size.
- 🚀 net.core.wmem_max — increases the maximum size of the send buffer.
- 🚀 net.ipv4.tcp_congestion_control — selects the congestion control algorithm (for example, bbr or westwood).
To apply the settings, add the following lines to the end of the configuration file:
net.core.rmem_max = 16777216net.core.wmem_max = 16777216
net.ipv4.tcp_congestion_control = bbr
Then apply the changes with the command sudo sysctl -pAlgorithm BBR (Bottleneck Bandwidth and Round-trip propagation time), developed by Google, often shows better results on unstable communication channels compared to the standard cubic.
Don't change all the parameters at once without understanding their purpose. Make changes sequentially and test the speed after each step. This will help you identify which settings produced positive results and which ones may have caused instability.
Selecting the optimal channel and frequency
Even with ideal system settings, the physical airwaves can be clogged with neighbors' signals. In apartment buildings, the 2.4 GHz band is often overloaded. Switching to the band 5 GHz or choosing a free channel is a critical step.
Use the utility iwlist Or use graphical Wi-Fi analyzers to scan the airwaves. Your goal is to find the channel with the fewest neighboring networks. In the 2.4 GHz band, it's best to use only channels 1, 6, and 11, as they don't overlap.
Frequency range comparison table:
| Parameter | 2.4 GHz band | 5 GHz band |
|---|---|---|
| Speed | Up to 450-600 Mbps | Up to 1300+ Mbps |
| Range | Tall, breaks through walls | Average, worse at passing obstacles |
| Workload | Very high (a lot of interference) | Low (many free channels) |
| Stability | Low due to interference | High |
If your router supports dual-band mode, force Ubuntu to connect to the 5 GHz network. In NetworkManager settings, you can specify a preferred frequency or BSSID for a specific access point so the system doesn't automatically switch to the weaker, but longer-range 2.4 GHz signal.
It's also worth checking the channel width. Setting the width 40 MHz or 80 MHz instead of standard ones 20 MHz can double the throughput if the airwaves allow it to do so without much interference.
Reset and restart network services
Sometimes accumulated errors in network daemons lead to performance degradation. A simple service restart can clear the DNS cache, reset stuck connections, and renew DHCP leases. This "quick fix" often helps without delving into settings.
In Ubuntu, the network service is responsible for the network. NetworkManagerRestarting it is safe and doesn't require rebooting the entire computer. You'll lose connection for a few seconds, but the system will re-establish a link to the router, possibly choosing a more optimal routing path.
Command for complete network reset:
sudo systemctl restart NetworkManager
If the issue persists, you can try resetting your network settings to factory defaults. This will delete saved Wi-Fi profiles and restore the configuration files to their original state. Use this method if you suspect conflicts have accumulated in your settings.
⚠️ Attention: Before resetting, make sure you remember the password for your Wi-Fi network, as you will have to re-enter it for each saved connection.
Regularly restarting network services can be useful as a preventative measure, especially if you frequently move your laptop between different access points. This ensures that the system isn't using outdated routing tables.
Frequently Asked Questions (FAQ)
Why is Wi-Fi slower on Ubuntu than on Windows?
This is often related to drivers. In Windows, hardware manufacturers provide optimized proprietary drivers, while Linux uses open-source alternatives that may not utilize the hardware's full potential. Also, power saving is enabled by default in Linux.
Is it safe to change kernel parameters (sysctl)?
Yes, if you copy the tested values. The buffer settings mentioned in this article are standard recommendations for broadband networks. However, always back up your configuration files before editing.
How do I know which Wi-Fi driver I'm currently using?
Use the command lspci -k In the terminal, find the line "Network controller" and look at the line "Kernel driver in use." The name of the active module will be listed there.
Will installing Ubuntu 24.04 help speed up Wi-Fi?
New versions of the distribution contain a more recent Linux kernel, which may have improved support for your network hardware. If you have very new hardware, updating the system often resolves speed issues.