我内部有一台web服务器对外提供服务,要求外部和内部pc都可以通过域名访问web服务器,内部所有pc的dns地址设置为路由器内网口地址,由路由器作为dns代理代为解析。已经在路由器出口做了nat server,已配置dns mapping同时也打开了nat alg,现在出现一个奇怪的问题,当内部pc的dns设置为公网的dns的时候,dns的回应报文正确的解析成了web服务器的私有地址,pc成功的访问到web服务器,但是将pc的dns设置成路由器的内网口地址时由路由器代为解析时,返回的dns回应报文解析的地址是出口的公网地址,说明nat alg和dns mapping根本就没有替换dns回应报文中的公网地址为私网地址,导致pc不能通过域名访问web服务器。为什么会出现这样的问题呢?按理说都应该将dns回应报文中数据部分的公网地址替换成web服务器的私有地址呀!哪位老师能解答一下我的问题?谢谢!!!!
(0)
最佳答案
按理路由WAN是公网IP的话,通过路由转发是可以让外网访问的。
如果没有公网IP,则需要做内网穿透,类似如花生壳、nat123、金万维等,先在本地将内网IP端口转换绑定域名让外网访问。
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
您的意思是说,如果是从设备本身发出的dns请求报文对应的dns回应报文是不会触发dns mappiing 和nat alg只有转发报文(通过设备转发的报文)才会触发
你直接用端口映射+nat hairpin就可以解决,现在基本都是这么用的,终端虽然解析的地址是公网地址,流量绕一下路由器,但是不上公网