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?

  • Can you please paste the output of echo $http_proxy.
    – jobin
    Feb 20, 2014 at 19:43
  • http://username:password@server:port
    – Hashken
    Jan 14, 2015 at 6:05

7 Answers 7


You can use proxychains.

vim /etc/proxychains.conf

place your proxy information like this:

#socks4 9050
socks5 1080

Then run steam like this:

proxychains steam

I hope this work for you.

  • I have tryed apt install proxychains4 but not work
    – 傅继晗
    Jun 1, 2022 at 15:27

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_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
    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)

  • I'm a little unsure how the proxy details can work along with the UDP packets. When using say Firefox, I set the proxy details and for every TCP packet sent, it is enclosed with proxy headers. I'm assuming the same should happen with the Steam UDP packets. In that case I should be able to indicate the use of proxy somewhere right? If I just set the proxy environment variables, they will work only if Steam makes use of them and it doesn't seem to be doing so. If I am using a socks proxy server, will using stocks help?
    – Hashken
    Apr 16, 2014 at 9:53
  • UDP packets are not connection orientated, so you can not specify a proxy for UDP protocols.
    – Johan
    Aug 13, 2014 at 11:31

I simply made a steam-proxy.desktop file with the http_proxy env var set as such

Exec=env http_proxy= /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.


Steam does not work on the default HTTP ports (80, 443). Read up on it on the steam website. You have to enable additional ports on the proxy server; It seems to be possible, but not supported. Where it is stated that it is not possible is here.


You are not allowed to run Steam trough a proxy. The Steam Subscriber Agreement states:

You agree that you will not use IP proxying or other methods to disguise the place of your residence, whether to circumvent geographical restrictions on game content, to purchase at pricing not applicable to your geography, or for any other purpose. If you do this, we may terminate your access to your Account.

Not really helpful, I know, but i just wanted to let you know.

  • I thinks this is not true. This just states you can't use proxy to disguise place of residence, not that you cant you proxy at all. (I am not a lawyer and english is not my native language so I may be wrong.) But i think grammar of the agreement says just that.
    – kubacapek
    Mar 11, 2015 at 23:32
  • It's not IP proxying. It's local area network proxying.
    – cprn
    Oct 23, 2015 at 16:07

Even though your http_proxy variable is set, if you launch it via GUI it will not work. But if, from the same terminal where echo $http_proxy outputs http://username:password@server:port you launch the command steam, everything works fine - at least it does for me.

  • It's possible to change the environment from an application starter by pre-pending the command with env VAR=VALUE [...]. Mar 12, 2015 at 1:42
  • Right! So you should edit your GUI launcher changing steam in env http_proxy=http://username:password@server:port steam
    – marcotama
    Mar 12, 2015 at 23:52

You can get it working via tsocks, If you are running 64 bit be sure to compile a 32 bit version.I've got it running successfully via putty over an ssh tunnel.store won't work but downloads do.Good luck!

  • Can you explain how to do that? Mar 12, 2015 at 1:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .