Oh boi, here I give you the solution for that. This document is based on these links:
- https://steamcommunity.com/app/221410/discussions/2/616189106498372437/?l=portuguese&ctp=8
- https://wiki.archlinux.org/title/dnsmasq#NetworkManager
- ValveSoftware/steam-for-linux#3401
I don't know, perhaps the Steam application doesn't cache the dns locally or something hence your computer will always lookup for the domain everytime you download it on each chunks. CMIIW.
This is a binary that will act as DNS server on your local machince, so whenever your machine want to know what google.com
is, we will talk to this software then, they will look it up for you and save it to the local cache.
First you need to install dnsmasq
.
sudo pacman -S dnsmasq
sudo pacman -Syu dnsmasq
After that edit /etc/dnsmasq.conf
# Tell which address should dnsmasqd listen
listen-address=127.0.0.1
# Tell dnsmasq to not read /etc/resolv.conf
# since it will only contain itself anyway
no-resolv
# Which port will dnsmasq run
port=0
# Outside world nameserver,
# so when the dnsmasq don't know what domain it is,
# it will talk to 1.1.1.1 and save the answer to locally
server=1.1.1.1
# I believe this is Google Nameserver
server=8.8.8.8
server=8.8.4.4
network-manager
is a service that will run on systemd, it handles everything about the networking on your local machine.
The only thing that you need to configure on this service is just the dns entry.
Edit this /etc/NetworkManager/NetworkManager.conf
, don't forget edit it with sudo privileges.
Add this following line:
[main]
dns=dnsmasq
Those line will tell network manager to use dnsmasq
as dns. And it will automatically start the dnsmasq
service everytime NetworkManager started.
Restart your network manager service.
sudo systemctl restart NetworkManager
Wait for a while. Then try to download it again, it may takes time to actually be on normal speed, since your local machine will lookup for a lot of address on Steam CDN/Repository.