🖇️Host your own proxy

This will be a simple tutorial on how to make your own proxy server on an ad-free country to prevent Twitch ads.

Info: this guide contains affiliate links, which means that if you register and purchase something with my link, I'll be getting a small comission from the provider. This doesn't affect you in any way, and you just help me cover some of the public proxies costs.

List of known ad-free countries

Ad-free country: no records of ads over the last 12 months.

Partially ad-free country: there's records of minimal ads in the last 12 months. Ranging from 1-2 ad(s).


Country
Tested
Comments
Recommended Provider

🇷🇺 Russia

Ad-free country. As of 06/23/2025, limited to 720p stream.

🇰🇷 South Korea

Ad-free country. Limited to 720p stream.

proxy6.net (promo code: taTmJgVHDF)

🇦🇱 Albania

Ad-free country.

🇲🇩 Moldova

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), justhost.ru, ava.hosting

🇧🇾 Belarus

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇷🇴 Romania

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), hosteroid.uk (premium), rarecloud.io, justhost.ru

🇱🇻 Latvia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), justhost.ru, 4vps.su

🇱🇹 Lithuania

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), bacloud.com (premium), hosteroid.uk (premium), justhost.ru, 4vps.su

🇪🇪 Estonia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), justhost.ru, hostslim.eu, 4vps.su

🇧🇬 Bulgaria

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), alphavps.com (premium), justhost.ru

🇸🇮 Slovenia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), justhost.ru

🇮🇸 Iceland

Ad-free country.

🇵🇹 Portugal

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), justhost.ru, 4vps.su

🇭🇷 Croatia

Ad-free country.

🇲🇰 North Macedonia

Ad-free country.

🇬🇪 Georgia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇦🇲 Armenia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), justhost.ru, 4vps.su

🇰🇿 Kazakhstan

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), ruvds.com, own.tn

🇸🇨 Seychelles

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇺🇦 Ukraine

Partially ad-free country.

proxy6.net (promo code: taTmJgVHDF), hostiko.com.ua, justhost.ru, 4vps.su

🇸🇰 Slovakia

Partially ad-free country.

hosteroid.uk (premium)

🇱🇺 Luxembourg

Partially ad-free country.

BuyVM (premium)

🇦🇪 United Arab Emirates

Partially ad-free country.

proxy6.net (promo code: taTmJgVHDF), justhost.ru, 4vps.su

🇷🇸 Serbia

Partially ad-free country.

proxy6.net (promo code: taTmJgVHDF), kvmka.ru, deephost.pw

🇵🇱 Poland

Partially ad-free country.

proxy6.net (promo code: taTmJgVHDF), skhron.com.ua (premium), hostiko.com.ua, justhost.ru, 4vps.su

🇪🇬 Egypt

Partially ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇮🇱 Israel

Partially ad-free country.

proxy6.net (promo code: taTmJgVHDF), justhost.ru

Step 1 - Creating your VM


Firstly, we need to create our instance. Once you've logged in and added some account balance, go to Servers -> New Instance.

Creating your new Virtual Machine Instance

Once you're there, set a random hostname you'd like, leave 🇷🇺 Moscow as the region and select Debian 11 (also known as Bullseye) as the image. You can use whatever Linux distro you like the most, but this tutorial focuses on Debian 11 specifically, so results may vary with other Linux distros.

Initial configuration before deploying

Proceed to select the flavor you'd like (the cheapest one should work just fine, but if you want more power, go ahead!) and leave the rest as default. You can now deploy your instance.

Initial configuration before deploying

Step 2 - Accessing the VM


After you've done the above steps, you will be able to log in into your VM. Proceed to open a Command Prompt (Or Windows Terminal) window: Execute the following command: ssh root@server-ip. Remember to replace server-ip with your server IP address, which you can find in your Servers control panel.

Initial SSH access to your VM

Once done, it will prompt for the root password. Check your email to get your root password. If that password doesn't work, go back to your Instances page in your browser and change it under the Security tab.

Step 3 - Basic Initial Setup


After you've logged in, proceed to update your package repositories and upgrade the needed packages. Execute the following command: apt update && apt upgrade -y

Upgrading system packages

Once the update process finishes, lets setup auto-updates so you don't need to worry about the server anymore. Execute the following command: apt install unattended-upgrades -y

Installing unattended-upgrades package

Now let's enable it! Execute the following command: dpkg-reconfigure --priority=low unattended-upgrades and proceed to agree to Automatically download and install stable updates.

Info: if you're prompted to install an updated version of the package's config, proceed to select the first option (install the package maintaner's version)

Configuring the unattended-upgrades package
Configuring the unattended-upgrades package

Step 4 - Proxy Server Setup


We'll be installing the software squid for it to act as our proxy server. To install it, execute the following command: apt install squid -y

Installing our proxy server software

Once you're here, you can take the more or less secure route of configuring your proxy server.

Secure

You'll be allowing to use the proxy to a limited amount of IP addresses, making it more secure, but less convinient if you have a dynamic IP address.

Proceed to edit the squid.conf file. Execute the following the command: nano /etc/squid/squid.conf

Once you're editing the file, press Ctrl + W and search for http_access deny all

Add the following lines before http_access deny all as shown in the screenshot. Remember to replace your_ip with your Public IPv4 address (what's my ip?)

Here's all the lines for you to copy and paste:

squid.conf
# Twitch ACL for video-weaver.*.hls.ttvnw.net
acl twitch dstdom_regex video-weaver\.\w+\.hls\.ttvnw\.net

# Twitch ACL for playlist.live-video.net
acl twitchplaylist dstdom_regex \w+\.playlist\.live-video\.net

# Twitch ACL for playlist.ttvnw.net
acl twitchplaylist2 dstdom_regex [a-z0-9-]+\.playlist\.ttvnw\.net

# Twitch ACL for usher.ttvnw.net
acl twitchusher dstdomain usher.ttvnw.net

# Twitch ACL for gql.twitch.tv
acl twitchgql dstdomain gql.twitch.tv

# Twitch ACL for passport.twitch.tv
acl twitchpassport dstdomain passport.twitch.tv

# Twitch ACL for www.twitch.tv
acl twitchwww dstdomain www.twitch.tv

# Allow rules for your public IP address

acl myip src your_ip
http_access allow myip twitch
http_access allow myip twitchplaylist
http_access allow myip twitchplaylist2
http_access allow myip twitchusher
http_access allow myip twitchgql
http_access allow myip twitchpassport
http_access allow myip twitchwww
⚠️ Less Secure

You'll be allowing to use the proxy to an unlimited amount of IP addresses, making it less secure, but more convenient if you don't have an static IP address. You'll also restrict the proxy server to only allow what we need to.

Proceed to edit the squid.conf file. Execute the following the command: nano /etc/squid/squid.conf

Once you're editing the file, press Ctrl + W and search for http_access deny all

Add the following lines before http_access deny all as shown in the screenshot.

Here's all the lines for you to copy and paste.

squid.conf
# Twitch ACL for video-weaver.*.hls.ttvnw.net
acl twitch dstdom_regex video-weaver\.\w+\.hls\.ttvnw\.net
http_access allow twitch

# Twitch ACL for playlist.live-video.net
acl twitchplaylist dstdom_regex \w+\.playlist\.live-video\.net
http_access allow twitchplaylist

# Twitch ACL for playlist.ttvnw.net
acl twitchplaylist2 dstdom_regex [a-z0-9-]+\.playlist\.ttvnw\.net
http_access allow twitchplaylist2

# Twitch ACL for usher.ttvnw.net
acl twitchusher dstdomain usher.ttvnw.net
http_access allow twitchusher

# Twitch ACL for gql.twitch.tv
acl twitchgql dstdomain gql.twitch.tv
http_access allow twitchgql

# Twitch ACL for passport.twitch.tv
acl twitchpassport dstdomain passport.twitch.tv
http_access allow twitchpassport

# Twitch ACL for www.twitch.tv
acl twitchwww dstdomain www.twitch.tv
http_access allow twitchwww

Alternatively, you could also set up password-based authentication for the proxy server, but that goes outside the scope of this tutorial. Please follow the following guide if you'd like to set up password-based authentication.

Following with the tutorial, you can change the default port that the proxy listens to. This can make your proxy more "secure" (security over obscurity), preventing servers on the internet port checking and possibly adding you to a public proxy list. Execute the following the command: nano /etc/squid/squid.conf

Editing the squid config file

Once you're editing the file, press Ctrl + W and search for http_port 3128

Editing the squid config file

Change the 3128 port value to some random number value between 1025 - 65535

Editing the squid default port number value

Save the file by pressing Ctrl + X then pressing Y then Enter

Proceed to restart the squid service with the following command: service squid restart This will take a while, please be patient.

Step 5 - Connecting to the proxy


And you're all set! You can now add your proxy server in your Extension's Options page!

Please use the following syntax: server-ip:squidport

Alternatively, you can provide the extension with authentication credentials if you've configured squid with a password using the following syntax: youruser:yourpassword@server-ip:squidport

Wrapping up


With this tutorial, you've managed to set up your own custom proxy server, using specific rules to make it work only for what's intended to be used for.

Last updated

Was this helpful?