
Fixing YouTube Slowdowns at the Router Level
Greetings to all! On the night of August 1st, YouTube suddenly started lagging terribly. This was frustrating, because I rely on YouTube daily for streaming and other content. So, like any rational internet user, I wanted to find the root cause and fix it. In this article, I’ll walk you through the exact steps I took. You’ll learn how to resolve YouTube slowdowns at the router level. As a result, you can apply the same fix to your own home network.
What Happened?
First, let’s break down what might be happening and why YouTube starts “buffering.” The issue isn’t just a random slowdown. Instead, it’s often the result of your ISP (Internet Service Provider) applying a technique called **DPI (Deep Packet Inspection)**. DPI allows ISPs to analyze network traffic content. As a result, they can tell what type of data you’re sending — for example, streaming video or regular web browsing.
The root cause lies in how your device establishes **SSL connections**. This is the type of connection used when you access websites over HTTPS. During this process, your browser sends the domain name in plaintext through **SNI (Server Name Indication)**. This mechanism helps servers identify which domain you’re trying to reach. However, it also lets your ISP read that same information. When your ISP sees the domain `googlevideo.com`, which delivers YouTube’s video content, it may apply traffic shaping or throttling. Consequently, your connection slows down and video performance suffers.
How to Verify the Issue?
You can verify the problem locally using the `curl` command, which helps download files from the internet. First, try downloading a test file.
$ curl https://speedtest.selectel.ru/100MB -o/dev/nullIf the download speed is high, your internet connection is generally fine. Next, run the same test against a YouTube domain.
$ curl — connect-to ::speedtest.selectel.ru https://manifest.googlevideo.com/100MB -k -o/dev/null
You’ll likely notice a significant drop in speed. That drop is a clear sign that your ISP is throttling traffic to `googlevideo.com`.
Now that we’ve identified the problem, let’s fix it. The main task is to mask or obfuscate your traffic, so your ISP can’t tell you’re connecting to YouTube.
How to Fix It?
The issue clearly relates to DPI applied by your ISP. Fortunately, several methods exist to bypass or disguise this traffic. One approach uses software that modifies data packets, so DPI systems can no longer analyze their contents correctly. A well-known project for this is **Goodbye DPI**, which works well on Windows systems. However, I wanted to fix the issue for my entire home network, not just individual devices. Therefore, I needed a solution I could implement directly on the router.
My Zyxel Keenetic Giga III Router and OPKG
My router is the **Zyxel Keenetic Giga III**, which is about ten years old. Despite its age, it has been a rock-solid performer. I considered upgrading, but instead I discovered something surprising: the **OPKG** package manager lets me install **OpenWrt** binaries directly on it. This was a pleasant discovery. As a result, I could install the necessary tools to bypass DPI directly on the router.
Installing OPKG on Zyxel Keenetic Giga III
To start, I accessed the router’s web interface and installed all the required components for OPKG. However, the router’s internal memory is quite limited. So, I used a USB flash drive formatted to **EXT4** instead. On the flash drive, I created an `install` directory and downloaded the necessary binaries from the **Entware** project. For my **mipsel** platform, I found the installer here: [EN_mipsel-installer.tar.gz](https://bin.entware.net/mipselsf-k3.4/installer/EN_mipsel-installer.tar.gz).
After installing OPKG and plugging in the flash drive, the router automatically extracted the archive. I was then able to connect via **SSH** on port 222.
Verifying the Correct Setup
If you select the wrong platform, the error message `exec format error` will let you know. If it succeeds, however, you’ll be able to log into the system through SSH with username `root` and password `keenetic`. Once logged in, immediately change the password with the `passwd` command.
Now that I had a nearly full Linux system running on the router, I was ready to install the necessary software to bypass DPI.
Installing and Configuring DPI Bypass Software
With my router running Linux, the next step was to install software to bypass DPI. First, install a few required packages.
# opkg update # opkg install ipset curl gzip grep git-httpIf space is limited on the router, you can manually transfer the necessary binaries from your computer using **scp**. For example, run this command.
scp -P 222 ./tpws root@192.168.0.1:/opt/root/
Choosing DPI Bypass Software
Among the various projects for bypassing DPI, I found **zapret** particularly useful. It’s a simple project with pre-compiled binaries for various platforms, so you can install it easily. I decided to use the **tpws** service from zapret, because it modifies network packets to fool DPI systems.
Installing zapret and Configuring the tpws Service
To install zapret on the router, run the following commands.
# git clone https://github.com/bol-van/zapret.git # cd zapret # ./install_bin.shNext, create a script to automatically start the **tpws** service.
# vi /opt/etc/init.d/S51tpwsThen, insert the following code.
#!/bin/sh SCRIPT=/opt/root/git/zapret/tpws/tpws PIDFILE=/var/run/tpws.pid ARGS=” — daemon — bind-addr 192.168.0.1 — port 999 — disorder — tlsrec=sni — split-pos=2 — pidfile $PIDFILE” start() { if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE); then echo ‘Service TPWS is already running’ >&2 return 1 fi $SCRIPT $ARGS iptables -t nat -A PREROUTING -i br0 -p tcp — dport 80 -j REDIRECT — to-port 999 iptables -t nat -A PREROUTING -i br0 -p tcp — dport 443 -j REDIRECT — to-port 999 echo ‘Started TPWS service’ } stop() { if [ ! -f “$PIDFILE” ] || ! kill -0 $(cat “$PIDFILE”); then echo ‘Service TPWS is not running’ >&2 return 1 fi echo ‘Stopping TPWS service…’ kill -15 $(cat “$PIDFILE”) && rm -f “$PIDFILE” iptables -t nat -D PREROUTING -i br0 -p tcp — dport 80 -j REDIRECT — to-port 999 iptables -t nat -D PREROUTING -i br0 -p tcp — dport 443 -j REDIRECT — to-port 999 } status() { if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE); then echo ‘Service TPWS is running’ else echo ‘Service TPWS is stopped’ fi }Next, make the script executable.
# chmod +x /opt/etc/init.d/S51tpwsFinally, start the service.
# /opt/etc/init.d/S51tpws start
Now, tpws processes all HTTP and HTTPS traffic on ports 80 and 443. It disguises the packets, which helps you bypass your ISP’s DPI systems.
Conclusion
After setting everything up, I noticed a significant improvement in YouTube performance. Videos loaded quickly, without any buffering. This method of fooling DPI by modifying network packets proved effective for my entire home network. Best of all, I didn’t need to configure individual devices.
If your ISP is throttling YouTube or other services, I highly recommend trying this approach. By running software like **zapret** and **tpws** on your router, you can mask your traffic. As a result, you bypass throttling for every device on your network.
Information reviewed and updated: August 28, 2026.
Published by: REVOLD BLOG – blog.revold.us
Powered by AIR RISE INC & REVOLD AI
Sponsored: CORPIUS
Author: Roman Kravchina
Related Reading on Revold Blog
- What is a domain name? | Domain name vs. URL
- What is DNS?
- How to Install pfSense on Proxmox
- How to Install Searx Search Engine on Ubuntu / debianArch LinuxFedora / RHEL
- More Developing & Programming guides
- How to Install Jitsi Meet on Ubuntu/Debian with Automatic Let’s Encrypt SSL
- How to install Cockpit for Linux
- ? NetAlertX: The Ultimate Network Scanning and Alert System
- TorCrawl.py Overview: Anonymous Web Scraping Using Tor
- New FishXProxy Phishing Kit Lowers Barriers for Cybercriminals
- Hosting All Your AI Locally: Unlock the Full Potential of AI on Your PC or Server
- Mastering DDoS Attack Mitigation: 50 Essential Commands for Prevention and Defense (Part 3)
- Mastering DDoS Attack Mitigation: A Comprehensive Guide (Part 2)
- Mastering DDoS Attack Mitigation: A Comprehensive Guide (Part 1)
- 20 Essential Python Concepts to Help You Become a More Effective Developer
- How to Configure SPF, DKIM, and DMARC on an iRedMail Server (CentOS 10 or 11)
- How to Install Python Pip on Ubuntu 22.04
- Passthrough Physical Disk to Virtual Machine (VM)


