linux nat 和web server同在一个ROUTER下,访问WEB SERVER的问题,求高人
如图的一个网络结构,WEB SERVER和我的LINUX SERVER都挂在同一个路由器下,且路由器上只有一个公网IP,web server为192.168.150.8 linux server 为172.168.0.1 linux server主要是充当网关功能,下面的机器全部通过我的Linux server再通过路由器访问外网。WEB SERVER则通过路由器分配的地址直接到外面,路由器上做了映射,可以转到192.168.150.8的80上。
现在主要问题是,我LINUX NAT下的PC 无法在浏览器上访问这个路由器下的web server(直接用www.xxx.com),WEB SERVER做好了域名解析了,解析到路由器的公网IP。但我在PC上ping www.xxx.com能通,nslookup 也行。
不知道怎么回事,我怀疑是不是WEB SERVER和我的LINUX NAT 是同一个公网出口,PC的数据包能出去,但回不来了,不知道回哪去了???
求高人帮忙!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
对web服务器所有的80端口的数据都作snat
应该就可以了吧?
加2条
当源地址为内网,对网关机外网ip ,dport 为80访问的请求时,DNAT 方式自动转到 内网ip那台机器的80口;(这条可能不一定必须要做,因为和前面的 外部访问内部这web重复)
当源地址为内网,对网关机外网ip ,dport 为80访问的请求时,SNAT 方式设置发起地址为网关机的内网ip
其实很好理解的: 根据tcp的三次握手。。。如果只做了dnat,那么web在返回时候,是直接朝客户机丢回应的,而这个时候,内网客户机会觉得很莫名其妙——我从来没有朝内网的web主机发过包呀,肯定是欺骗,丢掉~!!! 所以就造成了楼主的情形
按照我说的设置一下吧。。。dnat那条你可以先设置起,调试好了再试着取消掉(或许可以取掉的,因为你针对外网访问你的web那里也有条dnat,或许可以通用),snat那条是必须设的!!!!! (顺带一提,如果网关和内网之间有桥方式的第三方firewall,还必须在桥上允许才行)
[ 本帖最后由 skylove 于 2006-9-13 18:59 编辑 ]
可是就是要用访问公网的啊,源地址转换和目标地址转换下了一点功夫了,还是不行,求达人指点啊!!
linux nat 上用iptables做了转发了,linux nat下的PC访问其它任何网页都可以,就是无法访问路由器下的web server,郁闷
当然不行了,你只能用私网IP去访问啦,自己做个hosts或者DNS吧……
用公网IP也是可行的,只是要在源地址转换和目标地址转换上下功夫,三弯九倒拐,还不如用第一种……
谢谢,net_robber,还需要什么资料?
啊,比如190.168.0.x的电脑访问www.xxx.com(为我的web server的域名,当然也是指向到路由器的公网IP)时显示无法访问该页面.
楼主能否提供更加详细的资料呢???
相关信息提供的太少了,无法回答