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 followingenter image description here

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:

  1. The Parent (upstream) proxy server address and port
  2. The User Name and Domain Name for Authentication
  3. 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.

  1. Configure cntlm with the parent proxy address, port and user name and domain name.
  2. Restart cntlm, e. g. via /etc/init.d/cntlm restart
  3. Run cntlm -IM http://test.com
  4. 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.