SSH 隧道哪些因素影响转发失败?

SSH 隧道哪些因素影响转发失败?

我一直在探索 ssh 隧道,但没有得到我想要的结果。

首先,我尝试在本地机器上使用本地端口转发,效果很好。

1) ssh -L 8080:localhost:8081 localhost
2) nc -l 8081

3) echo "Super User" | nc localhost 8080

现在,8080 流量被转发到 8081,结果从“数控-L 8081“ 命令。

很公平。

现在,我尝试转发到网络服务器。

ssh -L 8080:www.techgig.com:80 localhost

效果很好。但是,当我尝试

ssh -L 8080:www.medium.com:80 localhost

我收到以下错误:

Error 1003 Direct IP access not allowed

问题:

所以,我的问题是,是什么因素导致一些网站可以工作,而另一些网站无法工作。归根结底,这都只是转发数据,对吧?请澄清一下

答案1

是的,它只是转发数据。问题是,你给它不同的数据与直接连接相比,进行转发。

在 Wireshark 中查看任何 HTTP 请求。你会发现几乎所有请求都有一个Host:标头,说明它们想要访问哪个域名。这是必要的,因为 TCP/IP 连接不要自动转发使用的主机名——Medium 网络服务器不知道您使用什么www.medium.com来访问它除非HTTP 请求告诉它这一点。

http://www.medium.com因此,当您在浏览器中访问时,它会发送一个 HTTP 请求Host: www.medium.com,因为这就是您输入的内容。

但是,当您设置转发并尝试访问时http://localhost:8080,浏览器也会发送,Host: localhost因为这就是您输入的内容。Web 服务器不知道您的转发 - 它只知道您的 IP 地址和 HTTP 标头 - 因此它正确地抱怨其配置未列出此类域。


至于 http_proxy 建议:如果你在 Web 服务器上创建转发,并尝试将其用作 HTTP 代理,它只会让你访问网络服务器。

虽然从技术上讲,它可以工作,但几乎所有的网络服务器都拒绝代理安全原因。(试想一下,如果允许这样做,不仅 Web 服务器会让您进入数据中心的专用网络,您还可以向全世界发送垃圾邮件,并假装是 Web 服务器做的。)

相关内容