Steam-Linux behind a proxy server
I just downloaded Steam Beta from here.
I installed the package, and when I start steam, I get the following
It then says, unable to connect.
When I start it from the terminal, I get this error.SteamUpdater: Error: Download failed: http error 407
Since I get a 407 error, it is related to Proxy Authentication.
I have set up my http_proxy, ftp_proxy, https_proxy environment variables. I am behind an authenticated proxy server.
How do I get Steam working from behind a proxy server?
Solution 1:
You can use proxychains.
vim /etc/proxychains.conf
place your proxy information like this:
#socks4 127.0.0.1 9050
socks5 127.0.0.1 1080
Then run steam like this:
proxychains steam
I hope this work for you.
Solution 2:
First off the Steam client doesn't use the proxy for anything other than updating the client. The rest of the steam communications is all UDP based. You will not be able to play games via a proxy server.
For the updates you can use a proxy, but in general to use Linux applications behind an Authenticating proxy server, you need to get the authentication details supplied to the proxy server. Most often this is Microsoft NTLM type authentication.
In the rare case that it is not, you can authenticate to the proxy by means of the following syntax:
http://username:password@proxyhost:port/
Example:
http_proxy=http://john:[email protected]:8123/
For most people though that will not be enough. To add the MS proxy authentication tags to the outgoing packets you need a program like cntlm. Cntlm is a small proxy server that runs as a service on your local machine. You point your applications to this proxy server.
The Cntlm proxy server needs to be set up with the following details:
- The Parent (upstream) proxy server address and port
- The User Name and Domain Name for Authentication
- Either the Password or (recommended) a hash of the password, and the authentication method.
This is done by editing the cntlm config file, usually /etc/cntlm.conf
to provide the required details.
If you want to use a hash cntlm provides a way of generating one.
- Configure cntlm with the parent proxy address, port and user name and domain name.
- Restart cntlm, e. g. via
/etc/init.d/cntlm restart
- Run
cntlm -IM http://test.com
-
You will be prompted for your password. It will test the password against the proxy server and display the rest of the information to be added to the
cntlm.conf
file, for example:johan@Komputer:~$ sudo cntlm -IM http://test.com Password: Config profile 1/4... OK (HTTP code: 200) ----------------------------[ Profile 0 ]------ Auth NTLMv2 PassNTLMv2 A12B34C56D78E90A12B34C56D78E90A1
Add those two lines as they appear to the /etc/cntlm.conf
file (removing any other that may conflict)
Solution 3:
I simply made a steam-proxy.desktop file with the http_proxy env var set as such
Exec=env http_proxy=http://192.168.43.1:8080/ /usr/bin/steam -tcp %U
I saved it under ~/.local/share/applications
.
You can find the full file under /usr/share/applications/steam.desktop
beware that steam runs in the background and changes don't take place until it's killed and restarted.