🖇️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.

Important: please keep in mind through the whole tutorial that Twitch doesn't support the IPv6 protocol, thus you MUST have outbound IPv4 available for this to work. Inbound connections can be made using IPv6 without any issues, but you may need to readjust some squid settings for this to work, which we don't cover here.

Important: please do not follow this tutorial if your plan is to publicly host a server for people to use with TTV LOL PRO.

Disclaimer: proxying through another country could open up a range of features that are not accessible in your region, including Predictions, Prime Subscriptions, or currency changes, among others. Please be aware that you take full responsibility for the content passing through your proxy or public ones. It's important to note that in certain countries, features like Predictions might be categorized as gambling, making them inappropriate for minors. If your country doesn't support these features, there are legitimate reasons for it. Stay informed and conduct online research accordingly.

About: this tutorial has been made using a very unreliable provider. Please use some other provider listed in the "Ad-free countries" section. The cheapest option is going with Proxy6 (affiliated | non-affiliated) and using the promo code taTmJgVHDF which gives you a small discount to get a proxy server for less than $0.50 USD a month in Russia, and shared amongst other users. You can also skip this tutorial if you go this way.

List of known ad-free countries


CountryTestedCommentsRecommended Provider

🇺🇦 Ukraine

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), just.hosting

🇷🇺 Russia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), time-host.net, just.hosting, aeza.net (premium)

🇦🇱 Albania

Ad-free country.

albahost.net (premium)

🇵🇱 Poland

Ad-free country. Twitch has streaming servers in this country (waw).

proxy6.net (promo code: taTmJgVHDF), just.hosting, skhron.com.ua (premium), gullo.me (shared public IPv4)

🇲🇩 Moldova

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇧🇾 Belarus

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇷🇸 Serbia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇷🇴 Romania

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), hosteroid.uk (premium), vpsforvpn.com

🇧🇬 Bulgaria

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), alphavps.com (premium), just.hosting, gullo.me (shared public IPv4)

🇮🇱 Israel

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇪🇬 Egypt

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇬🇪 Georgia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇦🇲 Armenia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇰🇿 Kazakhstan

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇸🇨 Seychelles

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇲🇦 Morocco

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇱🇻 Latvia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), just.hosting

🇪🇪 Estonia

Ad-free country.

proxy6.net (promo code: taTmJgVHDF)

🇱🇹 Lithuania

Ad-free country.

proxy6.net (promo code: taTmJgVHDF), bacloud.com (premium)

🇱🇺 Luxembourg

Ad-free country.

BuyVM (premium)

🇱🇮 Liechtenstein

Ad-free country.

🇩🇰 Denmark

Ad-free country based on recent tests, however this could change at any time.

proxy6.net (promo code: taTmJgVHDF)

🇧🇪 Belgium

Ad-free country based on recent tests, however this could change at any time.

proxy6.net (promo code: taTmJgVHDF)

🇮🇪 Ireland

Ad-free country based on recent tests, however this could change at any time.

proxy6.net (promo code: taTmJgVHDF), servebyte.com

🇰🇷 South Korea

Twitch is not available in this region, thus is ad-free. Limited to 720p stream.

proxy6.net (promo code: taTmJgVHDF)

Step 1 - Creating your VM


First of all, we need to create our instance. Once you've logged in and added some account balance, go to Servers -> New 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.

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.

Step 2 - Accessing the VM


After you've done the above steps, you will be able to login 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.

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

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

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)

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

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
acl twitch dstdom_regex video-weaver.*.ttvnw.net

# Twitch ACL for usher.ttvnw.net

acl twitchusher dstdom_regex usher.ttvnw.net

# Twitch ACL for gql.twitch.tv

acl twitchgql dstdom_regex gql.twitch.tv

# Twitch ACL for passport.twitch.tv

acl twitchpassport dstdom_regex passport.twitch.tv

# Twitch ACL for www.twitch.tv

acl twitchwww dstdom_regex www.twitch.tv

# Allow rules for your public IP address

acl myip src your_ip
http_access allow myip twitch
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
acl twitch dstdom_regex video-weaver.*.ttvnw.net
http_access allow twitch

# Twitch ACL for usher.ttvnw.net

acl twitchusher dstdom_regex usher.ttvnw.net
http_access allow twitchusher

# Twitch ACL for gql.twitch.tv

acl twitchgql dstdom_regex gql.twitch.tv
http_access allow twitchgql

# Twitch ACL for passport.twitch.tv

acl twitchpassport dstdom_regex passport.twitch.tv
http_access allow twitchpassport

# Twitch ACL for www.twitch.tv

acl twitchwww dstdom_regex www.twitch.tv
http_access allow twitchwww

Alternatively, you could also setup 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 setup 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 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

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

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

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 values if you configured squid with a password via the following syntax: youruser:yourpassword@server-ip:squidport

Wrapping up


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

Important: this tuturial covers the basics of setting up automatic updates on your Linux server. Please follow alternative tutorials, such as the one linked right below, to harden your Linux server.

Important: please keep a regular reboot schedule of your server, for example once a month to ensure latest updates are applied and cache cleanup.

Last updated