Skip to content

About

Steam Download Speed is so slow on Linux...Here's the fix

Resources

Stars

27 stars

Watchers

2 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

Repository files navigation

Linux Steam Download Speed Optimization Guide

Comprehensive Solutions for Slow Steam Downloads on Linux

Steam downloads on Linux can suffer from various performance bottlenecks. This guide provides multiple proven solutions to significantly improve your download speeds through configuration optimizations and system tweaks.

Understanding the Problem

Steam's download performance on Linux can be affected by several factors:

  • HTTP/2 compatibility issues with certain network configurations
  • Limited concurrent connections to Steam's content delivery network (CDN)
  • Suboptimal bandwidth utilization due to conservative default settings
  • Regional server selection not optimized for your location

Primary Solutions

Solution 1: Disable HTTP/2 Protocol

Many Linux systems experience compatibility issues with Steam's HTTP/2 implementation. Disabling it often results in substantial speed improvements.

Console Command Method:

@nClientDownloadEnableHTTP2PlatformLinux 0

Configuration File Method: Add the following line to your steam_dev.cfg file:

@nClientDownloadEnableHTTP2PlatformLinux 0

Solution 2: Enable Multiple Concurrent Connections

This setting allows Steam to establish up to 10 simultaneous connections to download servers, significantly improving bandwidth utilization.

Console Command:

@fDownloadRateImprovementToAddAnotherConnection 1.0

Configuration File:

@fDownloadRateImprovementToAddAnotherConnection 1.0

Solution 3: Additional Performance Tweaks

For even better performance, consider adding these additional settings:

@nClientDownloadEnableHTTP2PlatformLinux 0
@fDownloadRateImprovementToAddAnotherConnection 1.0
@cMaxContentStatsdays 30
@cMaxPendingUploads 4

Configuration File Locations

Native Steam Installation

For installations through package managers (apt, dnf, pacman, zypper, etc.):

~/.steam/steam/steam_dev.cfg

Flatpak Steam Installation

For Flatpak-based Steam installations:

~/.var/app/com.valvesoftware.Steam/.steam/steam/steam_dev.cfg

Snap Steam Installation

For Snap-based Steam installations:

~/snap/steam/common/.steam/steam/steam_dev.cfg

Implementation Methods

Method 1: Manual Configuration

  1. Navigate to the appropriate configuration directory
  2. Create or edit the steam_dev.cfg file
  3. Add the optimization settings
  4. Restart Steam to apply changes

Method 2: Automated Script Installation

Use the provided automation script for quick setup:

git clone https://github.com/blakeridgway/linux_steam_download_fix.git
cd linux_steam_download_fix
chmod +x steam_download_speed_fix.sh
./steam_download_speed_fix.sh

Script Features:

  • Automatically detects your Steam installation type
  • Creates backup of existing configuration
  • Applies optimal settings for your system
  • Provides verification of applied changes

Verification and Monitoring

Check Download Statistics

Use Steam's built-in command to monitor download performance:

download_sources

This command displays:

  • Active download servers
  • Connection statistics
  • Bandwidth utilization per connection
  • Geographic distribution of servers

Performance Indicators

Monitor these metrics to verify improvements:

  • Download speed consistency (fewer fluctuations)
  • Multiple active connections (up to 10 simultaneous)
  • Reduced download completion time
  • Better bandwidth utilization (closer to your connection's maximum)

Advanced Troubleshooting

Regional Server Optimization

  1. Steam Settings → Downloads → Download Region
  2. Test different nearby regions during off-peak hours
  3. Use Steam's built-in speed test to find optimal servers

Network-Level Optimizations

# Increase TCP window scaling (requires root)
echo 'net.core.rmem_max = 268435456' >> /etc/sysctl.conf
echo 'net.core.wmem_max = 268435456' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_rmem = 4096 87380 268435456' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_wmem = 4096 65536 268435456' >> /etc/sysctl.conf

Firewall Configuration

Ensure these ports are open for optimal Steam performance:

  • TCP 27015-27030, 27036-27037
  • UDP 4380, 27000-27031, 27036

Important Prerequisites

⚠️ Critical Requirement: Steam must be launched at least once before applying these fixes. The initial launch creates the necessary directory structure. If you haven't run Steam yet, the configuration paths won't exist.

Recommended Process:

  1. Launch Steam (login not required, just reach the login screen)
  2. Close Steam completely
  3. Apply the configuration changes
  4. Restart Steam to activate the optimizations

Expected Results

Users typically report:

  • 2-5x faster download speeds in most cases
  • More consistent download performance without frequent drops
  • Better utilization of available bandwidth
  • Reduced download interruptions and timeouts

Compatibility Notes

  • Works on all major Linux distributions (Ubuntu, Fedora, Arch, Debian, openSUSE, etc.)
  • Compatible with all Steam installation methods (native packages, Flatpak, Snap)
  • Safe to use - settings can be easily reverted by removing the configuration file
  • No system-level changes required - operates entirely within Steam's user configuration

Troubleshooting Common Issues

Configuration Not Applied

  • Verify Steam is completely closed before editing configuration
  • Check file permissions on steam_dev.cfg
  • Ensure correct file path for your installation type

Partial Speed Improvement

  • Try different download regions
  • Test during off-peak hours
  • Consider network-level optimizations mentioned above

Settings Reset After Updates

  • Steam updates may occasionally reset custom configurations
  • Keep a backup of your steam_dev.cfg file
  • Re-apply settings if needed after major Steam updates

References and Further Reading

About

Steam Download Speed is so slow on Linux...Here's the fix

Resources

Stars

27 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages