使用带身份验证的代理时如何从终端连接到互联网


14

我必须使用代理服务器连接到Internet。我已经在系统代理设置中设置了所有代理。现在,我可以使用浏览器和应用程序连接到Internet。

但是我无法从终端连接到Internet。

我试过了

export http_proxy="http://username:password@proxyserver:port/" 

但是终端应用程序仍然无法连接到Internet。


1
您在终端中执行哪个命令以“连接到互联网”?或者,您如何看待无法连接?
nohillside

1
您在这里谈论的代理服务器(不带s)是在中继您的web连接,而不是您所有的Internet连接。web连接使用端口80、443…。Internet连接可能会使用65536组的所有其余端口。作为示例,ssh连接将使用端口22,该端口不会通过http代理服务器。因此,patrix问题可以帮助您获得更好的答案。
2013年

@patrix ping google.com
TLE

@TLE Ping是该规则的例外,即使http_proxy已设置,实际上也根本不使用代理。Ping需要直接连接,并且在许多情况下使用代理时,尽管代理仍可以成功连接,但ping会失败。
BinaryMisfit

3
尝试curl -o /dev/null www.google.com代替ping
nohillside

Answers:


12

终端不使用网络首选项窗格中配置的代理设置,因为它不进行任何连接。终端只是让您触发将以不同方式使用网络的命令。

设置您的http_proxyhttps_proxy环境变量时,不应包含http:https:前缀。

因此,您的情况下的环境变量应为:

http_proxy=username:password@proxyserver:port

注意:许多旧程序在通过代理服务器进行连接时会出现问题,在连接之前需要进行身份验证。

附加提示:

由于我们的基础架构,我们发现让用户在本地运行SquidMan并将其配置为连接到我们的主代理要容易得多。这允许本地计算机直接充当代理,并消除了在Mac计算机上使用代理服务器时(特别是在混合和AD环境中)的许多身份验证问题等。

在使用此方法的情况下,我们的http_proxyhttps_proxy将是:

http_proxy=localhost:3128

您的意思是我必须写export http_proxy =“ username:password @ proxyserver:port”
TLE

@TLE正确。终端不需要知道协议,因为它已经知道它是HTTP连接。
BinaryMisfit

但是我仍然无法连接到Internet。
TLE

@TLE然后问题很可能与身份验证有关。尝试设置代理而不包含用户名和密码,这意味着在尝试连接时会提示您输入信息。通常表明代理本身不支持来自终端的连接。内部有一个类似的问题,这就是为什么我建议使用SquidMan解决方案。
BinaryMisfit

还是行不通??
TLE

0

我最近遇到了这个问题,并在搜索中找到了此帖子。添加一些对我来说很成功的点(在Mac上,使用Terminal):

export http_proxy=http://username:password@proxyserver:port
export HTTP_PROXY=${http_proxy}

对于https:

export https_proxy=https://username:password@proxyserver:port
export HTTPS_PROXY=${https_proxy}

从这个我能够使用gitbrew没有任何问题(以及通过代理认证)。


-1

您可以在“终端窗口”中使用以下命令。

networksetup -setairportnetwork $Interface $ssID $Password

此处 $Interface是AirPort卡的“ enX”样式标识符(通常为en1,但在MacBook Air中为en0,在Mac Pros中为en2,并且由于其他原因也会有所不同)

$ssID是您的网络名称,例如“ Simon的SSID”。如果包含空格,请用引号引起来。

$Password 是您的WEP,WPA-PSK或WPA2-PSK密码。


1
这配置了网络,不允许终端本身通过代理连接。
BinaryMisfit
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.