Find Source Bandwidth Cap for Ubuntu 22.04 LTS Workstations

Abstract: Identify active source bandwidth caps on Ubuntu 22.04 by inspecting kernel traffic control policies using tc qdisc and class show commands.

Created: 2026-10-09 by
The source bandwidth cap on Ubuntu 22.04 LTS is not a single static configuration value stored in one file. Instead, it is determined by the active traffic control policies applied to your network interfaces via the tc command or managed by services like netplan. To find the current limits, you must inspect the live kernel queueing disciplines using diagnostic commands that read the running state without modifying any settings.

Understanding Bandwidth Limiting Mechanisms

Ubuntu does not enforce a global "source bandwidth cap" out of the box. Network throughput is typically controlled through Linux Traffic Control (tc), which allows administrators to shape, classify, and limit traffic on specific network devices. This system operates at the kernel level, meaning the limits are enforced by the operating system's networking stack rather than by user-space applications. When an administrator wants to restrict bandwidth for a specific interface, such as eth0, they attach a queueing discipline (qdisc) to that device. The most common method involves setting a maximum data rate, often measured in kilobits or megabits per second. If no such policy is attached, the interface will transmit at the full physical line speed allowed by the hardware and link negotiation. Therefore, finding the cap requires checking whether these policies exist and what values they hold. For more complex environments involving multiple jobs or users, tools like How do Ubuntu-server network interfaces work? provide context on how interfaces are named and configured. Understanding the underlying interface structure is crucial because bandwidth caps are bound to specific device names, not generic labels.

Inspecting Active Traffic Control Policies

The primary tool for viewing current bandwidth restrictions is the tc utility. This command interacts with the kernel's traffic control subsystem and displays the current configuration in real-time. To see if any bandwidth caps are currently active, you should run the following command in a terminal:
tc qdisc show dev eth0
Replace eth0 with the actual name of your network interface, which you can identify using the ip link command. If the output shows a qdisc htb (Hierarchical Token Bucket) or qdisc fq_codel entry, it indicates that shaping is enabled. The htb qdisc is particularly relevant because it allows explicit definition of maximum rates. If the output is empty or only shows noqueue, then there is no explicit bandwidth cap applied by the system. In this case, the interface is likely unrestricted. It is important to note that some modern setups use fq_codel for fairness rather than hard caps, which may not display a simple "max bandwidth" number but instead manages packet scheduling to prevent bufferbloat.

Reading HTB Rate Limits

When using the Hierarchical Token Bucket (htb) qdisc, the bandwidth limit is explicitly defined in the class configuration. You can view detailed information about these classes by running:
tc class show dev eth0
Look for lines containing rate or ceil. The rate parameter defines the guaranteed minimum bandwidth, while ceil defines the maximum burstable bandwidth. For example, an output might look like this:
class htb 1:1 root prio rate 100Mbit ceil 500Mbit burst 16Kb cburst 16Kb
In this example, the source bandwidth cap for this specific class is effectively 500 Mbit/s due to the ceiling limit. If you see multiple classes, each may have different limits depending on how the traffic is classified.

Checking Netplan Configuration

On Ubuntu 22.04 LTS, network configuration is primarily handled by Netplan. While Netplan itself does not directly set bandwidth caps in its standard YAML files, it generates the configuration for NetworkManager or systemd-networkd. However, some advanced setups might integrate traffic control rules into the Netplan renderer scripts or use custom hooks. To check the current Netplan configuration, examine the files in /etc/netplan/. Look for any .yaml files and inspect their content using a text editor like nano or cat. Standard Netplan configurations focus on IP addressing, DNS, and routing, but they may include references to external scripts or plugins that apply tc rules upon interface up events. If you suspect that bandwidth limits are applied dynamically via a script triggered by Netplan, you should review the contents of those scripts. These scripts often contain the actual tc commands that establish the limits. This approach ensures that the bandwidth cap persists across reboots and interface restarts.

Distinguishing Between Shaping and Policing

It is critical to distinguish between bandwidth shaping and policing when interpreting results. Shaping delays packets to conform to a rate limit, which reduces latency spikes but does not drop packets immediately. Policing drops packets that exceed the rate limit, which can lead to higher latency and jitter for compliant traffic. The tc command output will indicate which mechanism is in use. If you see tbf (Token Bucket Filter), it is a simple shaper. If you see police, it is a policer. Understanding this distinction helps in troubleshooting why certain applications might be experiencing throttling versus packet loss. For more details on managing network policies, refer to Troubleshooting Dropping Packets in iptables, although iptables handles filtering rather than shaping.

Verifying Interface Status

Before concluding that a bandwidth cap exists, verify that the interface is actually active and linked. Use the ip addr show command to list all interfaces and their states. An interface that is down or disconnected will not have meaningful bandwidth statistics, even if a cap is configured. Additionally, check the link speed negotiated with the network hardware using ethtool eth0. This command reveals the maximum physical capability of the interface. If the negotiated speed is lower than the configured cap, the physical link becomes the bottleneck, not the software configuration.

Summary of Diagnostic Steps

To accurately determine the source bandwidth cap on Ubuntu 22.04 LTS, follow this logical sequence: 1. Identify the correct network interface name using ip link. 2. Run tc qdisc show dev <interface> to check for active shaping disciplines. 3. If htb is present, run tc class show dev <interface> to find the ceil rate. 4. Check Netplan configurations in /etc/netplan/ for any custom hooks or scripts. 5. Verify physical link speeds with ethtool to rule out hardware limitations. This method provides a complete picture of the bandwidth constraints without altering the system state. It is safe, non-destructive, and applicable to both server and workstation environments.

Frequently Asked Questions

What happens if I change the bandwidth cap while connected via SSH?

Changing the bandwidth cap can cause immediate latency spikes or packet loss if the new limit is significantly lower than the current traffic volume. This may result in dropped SSH connections or slow response times. It is recommended to test changes during off-hours or have a local console available.

Can I find the bandwidth cap in /etc/network/interfaces?

No, the traditional /etc/network/interfaces file does not support bandwidth limiting directives in Ubuntu 22.04. Bandwidth controls are handled externally by the tc subsystem or via Netplan hooks. You will not find rate-limiting parameters in this legacy configuration file.

Why does my interface show no qdisc but still feels slow?

If no tc qdisc is present, the slowness is likely due to physical network issues, DNS resolution delays, or application-level bottlenecks. Check the link speed with ethtool and monitor CPU usage to ensure the system is not overwhelmed.

How do I reset all bandwidth caps to unlimited?

You can remove all traffic control policies by running tc qdisc del dev eth0 root. This command removes the root qdisc, restoring the interface to its default unshaped state. Be cautious, as this affects all traffic on the interface immediately.

Is there a GUI tool to view bandwidth caps in Ubuntu?

Ubuntu 22.04 does not include a native graphical interface for viewing or editing tc traffic control rules. Users must rely on command-line tools like tc, ip, or third-party monitoring utilities. Some network management suites offer visualizations, but they ultimately query the same kernel data.

Latest News

How to Display Output of xterm Command in Terminal Screen using Cron

Resolve the inability to display xterm output in a terminal screen from cron by redirecting logs or using wall instead of insecure X11 workarounds.

Read More
Expose Local Server on VPS Preserving Real Client IPs (OS Level)

Resolve VPS logging showing only gateway IPs by configuring reverse proxies to forward real client addresses via X-Forwarded-For headers.

Read More
How to Clear Recent Files History in Linux without Deleting Actual Files?

Clear recent files history in Linux by deleting ~/.local/share/recently-used.xbel without removing the actual files.

Read More
Best HDD Copy Strategy: Manually Syncing and Rewriting Scratch

Resolve data drift between two 4TB hard drives by using rsync with the --delete flag to manually sync and rewrite scratch data for an exact mirror.

Read More
Understanding Bash Prompt Abbreviations: An Overview

Resolve repetitive typing errors by creating and persisting Bash aliases in the .bashrc file for improved command-line efficiency.

Read More
Free Tools and Methods to Log Real-Time Performance Details in Task Manager

Log real-time CPU and memory metrics to CSV files using Windows Performance Monitor Data Collector Sets to troubleshoot system slowness.

Read More
Contact Qatar Airways Customer Service: Phone Number, Help Center, and More

Resolve urgent Qatar Airways reservation issues like flight changes and baggage claims using the US phone number +1801-855-5905 or online self-service tools.

Read More
Windows 11: Alt Codes Displaying Wrong Characters - Solutions

Resolve Windows 11 Alt codes showing wrong characters by verifying the US keyboard layout and enabling Num Lock.

Read More
Run Programs with Elevated Privileges: A Comprehensive Guide

Eliminates the need to type sudo for frequent administrative tasks by configuring .bashrc aliases or functions.

Read More
Dynamically Changing Dates in Excel Formulas Using Cells

Eliminate manual date updates in Excel by using cell references to create dynamic formulas that automatically adjust calculations when input dates change.

Read More
Granting Edit Access to a Specific Excel Sheet in an Office 365 User Email ID-Based Login

Excel Online lacks native sheet-level permissions, so users must split workbooks or use worksheet protection to isolate edit access for specific tabs.

Read More
Creating Network Load on Local Wi-Fi from One PC

Generate sustained Wi-Fi bandwidth load from a single PC using a VM SFTP server to test router stability and throughput.

Read More
Changing the Default Editor for Batch Files in Windows 11's File Explorer

Resolve the issue of batch files opening in Notepad by changing the default editor to a preferred application like VS Code.

Read More
Gain WiFi Connection Minutes Before Losing it by Changing MAC Address

Bypass MAC address filtering to restore WiFi connectivity temporarily when a device is blocked by network administrators.

Read More
Photos Folders Turned Black: Troubleshooting Picture Applications on Windows

Resolve black screens in Windows Photos by resetting the app, updating graphics drivers, and repairing system files.

Read More
Troubleshooting High CPU Temperature Values: A Step-by-Step Guide

Resolve high CPU temperatures and thermal throttling by monitoring with Speedfan, cleaning dust from cooling components, and replacing degraded thermal paste.

Read More
Make cURL establish TLS connection with CA unknown

Resolve cURL TLS connection failures with unknown or self-signed certificates by using the --insecure flag to bypass CA validation.

Read More
Troubleshooting Incorrect Network Metrics Values in Grafana, Prometheus, InfluxDB, and Telegraf

Fix incorrect network metrics in Grafana, Prometheus, InfluxDB, and Telegraf by verifying interface selection, resolving unit mismatches, and handling counter resets.

Read More
Start Another Terminal Window (cmd.exe) Windows Repair/Troubleshoot

Provides step-by-step instructions to access the Windows Command Prompt via bootable media for advanced system repair and troubleshooting.

Read More
Thinkpad P1 Gen 6: Sudden Thunderbolt 3 Dock USB-C Charging Stopped Working

Resolve sudden Thunderbolt 3 dock USB-C charging and internet failure on ThinkPad P1 Gen 6 by updating firmware, resetting the dock, and adjusting power settings.

Read More
ASUS Windows 11 Laptop: Internet Connection Issue with Hotspot

Resolve ASUS Windows 11 laptop spinning wheel issue when connecting to mobile hotspot by resetting network stack, disabling IPv6, and adjusting power settings.

Read More
Developing iOS Project with Firebase: Logging in and Sending Push Notifications

Integrates Firebase to enable secure user authentication and push notifications in iOS applications.

Read More
Troubleshooting Bash Script with Suspected Issues of Spaces, Dashes, Filenames and Quoting

Resolve Bash script failures caused by word splitting, globbing, and special characters in filenames by applying proper quoting techniques.

Read More
Populating OneDrive Folder for Local Backup without Affecting Remote Files

Prevent OneDrive from deleting remote files during Windows reinstallation by unlinking the account or using symbolic links to isolate local data.

Read More
Force First Frame as Keyframe Without Re-encoding: A Quick Solution

Resolve inaccurate seeking and playback glitches by re-encoding video to ensure the first frame is a valid keyframe.

Read More
Find Information in Database Using WSL (Ubuntu) on Windows-10

Resolve database connection issues from WSL Ubuntu on Windows 10 by configuring client tools and network access to query remote or local servers.

Read More
Configuring a New Router with Different Networks: One Family, One Guest

Resolve IP conflicts and isolate guest traffic by configuring a second router with a distinct subnet via its WAN port.

Read More
Quickly Open Multiple Stock Websites with a Single Command

Solve the problem of manually opening multiple stock research websites by creating a single command to launch them simultaneously on Windows, macOS, or Linux.

Read More
Improved Adobe Acrobat Search Experience: Access Advanced Search with Ease

Access advanced search filters like case sensitivity and regex in Adobe Acrobat by clicking More Options in the Find bar.

Read More
Port Forwarding VM via OpenVPN: A Comprehensive Guide

Configure OpenVPN server and iptables to forward specific ports from VPN clients to a virtual machine's internal IP address.

Read More
Understanding Partitions in the 1980s: A Look Back at MS-DOS and Master Boot Record

Explains how the Master Boot Record and partition table enabled MS-DOS to manage multiple disk volumes on a single physical drive.

Read More
Windows 10 Enterprise: Keyboard Not Detected in Managed Organization with Admin Privileges

Resolve Windows 10 Enterprise keyboard detection failures caused by Group Policy restrictions, driver corruption, or USB enumeration errors.

Read More
Can't Find x86_64 Versions of Applications on MacOS arm64 (M1)

Resolve missing x86_64 app issues on M1 Macs by installing Rosetta 2 and reinstalling apps as universal binaries.

Read More
How to Hide Installation Source for an Android App

Manage Android app installation source visibility by using USB transfers or file managers to reduce browser traces and isolate data via work profiles.

Read More
Connecting Momentus 4200.2 ST9808210A Hard Drive via USB Cable

Resolve inability to access Seagate Momentus 4200.2 ST9808210A hard drive by connecting it via USB using a compatible SATA-to-USB adapter and configuring the disk in Windows.

Read More