如何通过代理认证进行telnet?

如何通过代理认证进行telnet?

我在大学的代理服务器后面。它使用简单的用户名和密码身份验证。我连接到代理服务器的端口 3128。现在我想通过 telnet 简单地说互联网上的任何网站,例如

$ telnet www.google.com 80

这给了我

error telnet: could not resolve www.udacity.com/80: Name or service not known

如何定义 telnet 的代理设置?我已经设置了环境变量http_proxyHTTP_PROXY.还应用了系统范围的代理。

答案1

你可以做浏览器所做的事情,即连接到代理,

$ telnet proxy-server 3128

并与它交谈。如果没有身份验证,则带有完整主机名和协议的简单GET请求(后跟两个换行符 ( )),例如Enter

GET http://www.google.com/ HTTP/1.1

应该足够了。由于您需要身份验证,因此您需要在Proxy-Authentication标头中提供 Base64 编码的用户名和密码,例如

GET http://www.google.com/ HTTP/1.1
Proxy-Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

要创建 base64 字符串,您可以使用echo -n username:password | openssl base64

答案2

您可以为此使用代理链。

首先使用以下命令安装 proxychains:

$ apt-get install proxychains

/etc/proxychains.conf然后在文件中配置您的代理设置。

最后添加 HTTP 和 HTTPS 代理的这些行。

http    proxy-ip   proxy-port    username        password
https   proxy-ip   proxy-port    username        password

现在您可以使用以下命令进行telnet:

$ proxychains telnet www.google.com 80

相关内容