【问题标题】:port and ip forwarding from local machine to googel.com从本地机器到 googel.com 的端口和 ip 转发
【发布时间】:2020-01-10 14:13:47
【问题描述】:

当我在浏览器中输入虚拟机的 IP 地址时,我想查看 google 主页。我想在我的 Windows 浏览器中输入 192.168.132.131:8080 并被重定向到谷歌的主页 (173.194.122.198:80)。 192.168.132.131 是我的 Debian 虚拟机的 ip 地址。 我应该如何打开8080端口并配置iptables? 我按照本教程的建议做了,但没有得到我想要的。 http://www.debiantutorials.com/port-forwarding-with-iptables/ 请帮忙...

【问题讨论】:

    标签: debian port iptables forwarding


    【解决方案1】:

    为了看看会发生什么,我使用 debian-behind-a-linux 而不是 debian-behind-a-windows 进行了测试,因为我没有 Windows。另外(我认为)因为我不在美国,所以示例中的 IP 对我不起作用。我使用了ping google.com获得的IP

    我只能说你教程中的例子仍然有效,如果你在 Windows telnet 192.168.132.131 8080 上手动尝试,你真的连接到谷歌,假设你做对了(用 iptables-save 给你的规则怎么样?)

    什么不起作用(不再?)是 HTTP 请求:HTTP 嵌入 IP 地址并将其发送到不知道此 URL 的谷歌,并将使用 HTTP 301 将其重定向到谷歌没有 em> URL 中的 IP。唉,HTTP 重定向保留了 8080 端口。由于你的 debian 没有路由这个,它无法拦截流,并且它根本看不到第二个 HTTP 请求。您在尝试连接到 google 服务器的端口 8080 的 Windows 主机上收到 SYN_SENT。

    为了克服这个问题,您将(我确实)编辑您的 Windows 主机文件并在 192.168.132.131 前面添加很多谷歌名称,以便第二个请求也通过 debian VM。这次谷歌发送一个 HTTP 302 来设置 cookie 并提供一个没有端口 8080 的新 URL。如果你幸运的话,你会从 debian 框中重置连接,因为那里没有任何端口 80(使用像链接这样的网络客户端在主机上)。但通常谷歌也可以看到你有一个现代浏览器(火狐......)并在 HTTP 302 中给出一个 HTTPS 重定向。现在下一个连接是到端口 443 并加密......

    唯一或多或少起作用的是在更改主机文件后直接在http://www.google.XX:8080/ 上使用链接(不是Firefox),其中XX 是我的国家代码(不是使用http://192.168.132.131:8080/)。我可以得到搜索页面,甚至可以进行搜索。使用 www.google.com(并且不在美国)会重定向到 www.google.XX 并且也会失败。

    解决方案:如果是关于 HTTP,请使用 HTTP 工具,而不是 TCP/IP 工具:使用代理(squid、apache...)。

    如果是为了拦截,您可以在此代理上使用重定向(使用 iptables)和透明代理设置,但请记住,如果它没有看到流量,因为它不在路由器或上行链路上,事情将无法正常工作。祝 HTTPS 好运,因为 Web 客户端充其量只会抱怨中间人攻击。

    【讨论】:

    • 非常感谢您的全面回答。在我发布这个问题 3 或 4 小时后,我弄清楚了问题所在!我没有通过 iptables-save 保存规则。为了打开端口 8080,我安装了 tomcat7,因为它显然监听端口 8080。我不知道如何打开特定端口,这是我的主要问题...
    • 需要工具来做测试? nc (netcat) 或者更好的 socat 呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 2021-08-29
    • 2017-03-14
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多