2016-11-10 198 views
0

我想在我的浏览器中键入虚拟机的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/ 请帮助...端口和IP从本地机器转发到googel.com

回答

0

要看看会发生什么我做了一个Debian的背后,一个Linux的测试,而不是Debian的背后,一个窗口,因为我没有窗户。另外(我认为),因为我不在美国,这个例子中的知识产权对我来说不起作用。我使用的IP我ping google.com

让我可以告诉大家,在你的教程为例仍然有效,如果你对telnet 192.168.132.131 8080你真的连接到Google的窗户尝试用手,假设你正确地做它(关于给你的规则与iptables-save?)

什么是不工作(再??)是HTTP请求:HTTP嵌入IP地址,并将其发送到谷歌不知道这个URL,并将重定向与HTTP 301到谷歌没有 IP在URL中。唉HTTP重定向保持端口8080.由于你的debian不是路由这个它不能拦截流和第二个HTTP请求将不会被它看到。您的Windows主机上会尝试连接到谷歌服务器的端口8080上的SYN_SENT。

为了克服这个问题,你会(然后)编辑你的windows主机文件,并在192.168.132.131之前添加大量的谷歌名称,以让第二个请求通过debian虚拟机。这一次,Google发送一个HTTP 302来设置cookie,并给出一个不带端口8080的新URL。如果幸运的话,您将从debian框中重置连接,因为80端口没有任何东西(使用Web客户端,如链接在主机上)。但通常谷歌也可以看到你有一个现代的浏览器(Firefox ...),并在HTTP 302 HTTPS重定向。现在下一个连接是端口443和加密...

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

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

如果是用于拦截,您可以使用重定向(使用iptables)和透明代理服务器设置在这个代理,但请记住,如果它不seing交通,因为它不是在路由器或某处上行,事情将无法正常工作。 HTTPS的好运气,因为网络客户端充其量会抱怨中间人的攻击。

+0

非常感谢您的全面解答。我发现这个问题在发布这个问题后的3到4个小时内是什么问题!我没有通过iptables-save保存规则。并打开端口8080我安装tomcat7,因为它显然听它的端口8080.我不知道如何打开一个特定的端口,这是我的主要问题... – Arman

+0

需要工具来做测试? nc(netcat)甚至更好,socat? –