代理服务器背后的Steam-Linux


12

我刚刚从这里下载了Steam Beta 。

我安装了程序包,当我开始运行蒸汽时,得到以下信息在此处输入图片说明

然后说,无法连接。

从终端启动它时,出现此错误。
SteamUpdater: Error: Download failed: http error 407

由于出现407错误,因此它与代理身份验证有关。

我已经设置了http_proxy,ftp_proxy,https_proxy环境变量。我在经过身份验证的代理服务器后面。

如何使Steam从代理服务器后面工作?


您能粘贴的输出吗echo $http_proxy
jobin 2014年

http://username:password@server:port
Hashken

Answers:


3

您可以使用proxychains

vim /etc/proxychains.conf

放置您的代理信息,如下所示:

#socks4         127.0.0.1 9050
socks5          127.0.0.1 1080

然后像这样运行蒸汽:

proxychains steam

希望这项工作对您有用。


2

首先,Steam客户端除了更新客户端外,不使用代理服务器。其余的Steam通信都是基于UDP的。您将无法通过代理服务器玩游戏。

对于更新,您可以使用代理,但是通常要在身份验证代理服务器后面使用Linux应用程序,您需要获取提供给代理服务器的身份验证详细信息。通常,这是Microsoft NTLM类型身份验证。

在极少数情况下,您可以通过以下语法向代理进行身份验证:

http://username:password@proxyhost:port/

例:

http_proxy=http://john:TheSecret123@my.proxy:8123/

对于大多数人来说,这还不够。要将MS代理身份验证标签添加到传出数据包中,您需要一个类似cntlm的程序。Cntlm是作为服务在本地计算机上运行的小型代理服务器。您将应用程序指向此代理服务器。

需要使用以下详细信息设置Cntlm代理服务器:

  1. 父级(上游)代理服务器地址和端口
  2. 身份验证的用户名和域名
  3. 密码或(推荐)密码的哈希值以及身份验证方法。

这是通过编辑cntlm配置文件来完成的,通常/etc/cntlm.conf会提供所需的详细信息。

如果要使用哈希,cntlm提供了一种生成哈希的方法。

  1. 使用父代理地址,端口,用户名和域名配置cntlm。
  2. 重新启动cntlm,例如通过 /etc/init.d/cntlm restart
  3. cntlm -IM http://test.com
  4. 系统将提示您输入密码。它将针对代理服务器测试密码,并显示要添加到cntlm.conf文件中的其余信息,例如:

    johan@Komputer:~$ sudo cntlm -IM http://test.com
    Password: 
    Config profile  1/4... OK (HTTP code: 200)
    ----------------------------[ Profile  0 ]------
    Auth            NTLMv2
    PassNTLMv2      A12B34C56D78E90A12B34C56D78E90A1
    

将这两行添加到/etc/cntlm.conf文件中(删除其他可能冲突的行)


我有点不确定代理详细信息如何与UDP数据包一起使用。使用Firefox时,我设置了代理详细信息,并且对于发送的每个TCP数据包,都将其包含在代理标头中。我假设Steam UDP数据包也会发生同样的情况。在那种情况下,我应该能够指出使用代理的位置正确吗?如果我只是设置代理环境变量,则只有在Steam使用它们时它们才起作用,而且似乎没有。如果我使用的是袜子代理服务器,使用股票会有所帮助吗?
Hashken 2014年

UDP数据包不是面向连接的,因此您不能为UDP协议指定代理。
约翰

1

我只是简单地制作了具有以下设置的http_proxy env var的steam-proxy.desktop文件

Exec=env http_proxy=http://192.168.43.1:8080/ /usr/bin/steam -tcp %U

我将其保存在~/.local/share/applications。您可以在下面找到完整的文件/usr/share/applications/steam.desktop

请注意,蒸汽在后台运行,并且直到被杀死并重新启动后才发生变化。


0

Steam无法在默认的HTTP端口(80、443)上运行。在Steam网站上阅读它。您必须在代理服务器上启用其他端口。似乎有可能,但不受支持。声明不可能的地方在这里


0

您无权通过代理运行Steam。Steam订户协议规定:

您同意不会使用IP代理或其他方法来掩饰您的居住地,无论是规避游戏内容的地理限制,以不适合您所在地区的价格购买商品,还是用于任何其他目的。如果您这样做,我们可能会终止您对帐户的访问。

我知道并没有真正的帮助,但我只是想让您知道。


我认为这是不正确的。这只是说明您不能使用代理人来掩饰居住地,而不是根本不能代理人。(我不是律师,英语不是我的母语,所以我可能是错的。)但我认为协议的语法就是这样说的。
kubacapek 2015年

这不是IP代理。它是局域网代理。
cprn

0

即使您http_proxy设置了变量,但是如果通过GUI启动它也不起作用。但是,如果从您echo $http_proxy输出http://username:password@server:port命令的同一终端steam,一切正常,至少对我有用。


通过在命令前加上,可以从应用程序启动程序更改环境env VAR=VALUE [...]
David Foerster,2015年

对!所以,你应该编辑GUI启动改变steamenv http_proxy=http://username:password@server:port steam
marcotama

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.