当我在浏览器中键入虚拟机的ip地址时,我希望看到google主页。我想输入我的Windows浏览器192.168.132.131:8080,然后重定向到google的主页(173.194.122.198:80)。192.168.132.131是我的Debian虚拟机的ip地址。我应该如何打开端口8080并配置iptables?我做了本教程的建议,但没有得到我想要的。http://www.debiantutorials.com/port-forwarding-with-iptables/请帮忙..。
发布于 2016-11-11 10:44:50
为了了解会发生什么,我用进行测试,而不是,因为我没有窗口。另外(我想)因为我不在美国,这个例子中的IP对我不起作用。我用了ping google.com的IP
我可以看出,您的教程中的示例仍然有效,如果您在windows telnet 192.168.132.131 8080上手动尝试,您将真正连接到google,前提是您做对了(使用iptables-save给出您的规则如何?)
什么不再起作用了?HTTP请求: HTTP嵌入ip地址并将其发送到不知道此URL的google,并将其用HTTP 301重定向到google,而URL中没有IP。唉,HTTP重定向保持了端口8080。由于您的debian没有路由这个,所以它无法拦截流,第二个请求将根本看不到。您在windows主机上得到一个SYN_SENT,试图连接到google服务器的端口8080。
为了克服这个问题,您可以(我确实)编辑windows的主机文件,并在192.168.132.131前面添加大量的google名称,以使第二个请求通过debian。这一次,google发送一个HTTP 302来设置cookie,并给出一个没有端口8080的新URL。如果幸运的话,您将从debian框中获得连接重置,因为端口80没有任何内容(使用web客户端,比如主机上的链接)。但通常谷歌也能看到你有一个现代化的浏览器(Firefox.)并在HTTP 302中进行HTTPS重定向。下一个连接是到端口443和加密..。
唯一起作用的是直接在http://www.google.XX:8080/上使用链接(而不是火狐),在更改主机文件(而不是使用http://192.168.132.131:8080/ )后,XX是我的国家代码。我可以得到搜索页面,甚至搜索。使用www.google.com (而不是在美国)将重定向到www.google.XX,也会失败。
解决方案:如果是HTTP,请使用HTTP工具,而不是TCP/IP工具:使用代理(squid,apache.)。
如果是用于拦截,您可以在此代理上使用重定向(带有iptables)和透明的代理设置,但请记住,如果它没有查看流量,因为它不在路由器或上行链路上,则不会正常工作。祝HTTPS好运,因为网络客户端最多只能抱怨中间人的攻击。
https://stackoverflow.com/questions/40524977
复制相似问题