恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: yunpeng0807

openwrt内网无法用域名访问的问题

  [复制链接]
 楼主| 发表于 2022-3-9 11:52 | 显示全部楼层
avin4 发表于 2022-3-9 11:21
如果是 IPV6 DDNS,则OP/网关要开启IPV6 DNS 解析,否则是无法内网访问域名的,IPV4 DDNS不存在这个问题, ...

是IPV4DDNS,我感觉还是拓扑结构的问题,客户端在华为AP下发起请求,路由器解析后,服务器地址又指向同一个AP下,这种情况是否需要特殊设置,看到有些人说是NAT回环问题,这块不太懂。
另外,这种方式用域名加端口访问openwrt是没问题的

点评

我手头的FAST百兆无线路由和华为soho无线路由都AP模式 比较好奇你OpenWrt是接无线路由器的wan还是lan?应该是wan吧。那无线路由器wan和lan网段是多少?查看下无线路由上的路由表看看。还有在OpenWrt上查看是否有  详情 回复 发表于 2022-3-9 17:16
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-3-9 13:19 | 显示全部楼层
yunpeng0807 发表于 2022-3-9 11:48
是IPV4,网段、网关、DNS应该都是相同的,都指向openwrt主路由

把NAS直接放OpenWrt下试试,可以排除OpenWrt问题。
我还是觉得AP设置问题,我没玩过无线路由AP模式,不知道具体设置是怎么样的。
不行你直接无线路由lan口接OpenWrt,关闭无线路由DHCP当交换机用试试。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-3-9 17:16 | 显示全部楼层
本帖最后由 lgs2007m 于 2022-3-9 17:25 编辑
yunpeng0807 发表于 2022-3-9 11:52
是IPV4DDNS,我感觉还是拓扑结构的问题,客户端在华为AP下发起请求,路由器解析后,服务器地址又指向同一 ...

我手头的FAST百兆无线路由和华为soho无线路由都无AP模式
比较好奇你OpenWrt是接无线路由器的wan还是lan?应该是wan吧。那无线路由器wan和lan网段是多少?查看下无线路由上的路由表看看。还有在OpenWrt上查看是否有分配IP给无线路由器wan?

点评

并没有明确的"AP模式"设置,op接无线路由器的lan口,把无线路由器作为交换机使用,这样所有设备都在同一个网段  详情 回复 发表于 2022-3-9 23:13
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-3-9 23:13 | 显示全部楼层
lgs2007m 发表于 2022-3-9 17:16
我手头的FAST百兆无线路由和华为soho无线路由都无AP模式
比较好奇你OpenWrt是接无线路由器的wan还是la ...

并没有明确的"AP模式"设置,op接无线路由器的lan口,把无线路由器作为交换机使用,这样所有设备都在同一个网段
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-3-10 01:19 | 显示全部楼层
atshot 发表于 2022-3-9 01:34
最简单的办法就是在openwrt的dnsmasq里面增加几条静态解析写成内网IP,简单粗暴

通过以下方式解决了静态解析的问题:
在/etc/config/dhcp
config dnsmasq段加入
        list address '/abc.def/192.168.1.3'
然后/etc/init.d/dnsmasq restart使配置生效

但是这种方法并不完美,我的不同端口是转发到不同主机的,按这种方式只能只向一台主机,请问是否还有别的方式解决这个问题

点评

确定是静态解析导致不能访问的这个问题吗? 好乱,先捋一捋 首先我认为外网访问内网,设置IPv4端口转发的时候一定要在防火墙->端口转发选项卡那里添加,不能在旁边的通信规则那里添加。 两者是不一样的。IPv4  详情 回复 发表于 2022-3-10 11:04
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-3-10 11:04 | 显示全部楼层
本帖最后由 lgs2007m 于 2022-3-13 14:54 编辑
yunpeng0807 发表于 2022-3-10 01:19
通过以下方式解决了静态解析的问题:
在/etc/config/dhcp
config dnsmasq段加入

确定是静态解析导致不能访问的这个问题吗?

好乱,先捋一捋

首先IPv4外网访问内网,端口转发是在LuCI页面 防火墙->端口转发 选项卡那里添加。
IPv4有NAT,添加端口转发后防火墙会处理NAT的问题。

在防火墙->端口转发设置IPv4端口转发,例如你的公网IP+端口110.89.88.136:9999设置端口转发给内网NAS 192.168.1.55:9999,协议tcp,这样会在防火墙nat表添加3条nat表规则(只在nat表添加,没有在filter表添加规则)。假设主机192.168.1.33从内网访问NAS域名,即192.168.1.33:36786向110.89.88.136:9999发送请求,同时主机33需要得到110.89.88.136:9999的回复才能正常建立通信。这3条规则如何处理,可以看下:

SSH登录或者TTYD终端登录使用命令 iptables-save | grep 9999 查看防火墙包含文本9999的规则

*nat# 主机33内网访问NAS域名,数据从区域lan输入后:
# 判定是从区域lan进入的,是内网192.168.1.0/24访问wan口地址110.89.88.136:9999的数据包(就是你的公网IP:9999,你已经映射给NAS 192.168.1.55:9999),
# 则进行DNAT修改目标地址和端口为192.168.1.55:9999,修改后的数据就是192.168.1.33直接访问192.168.1.55:9999了。
-A zone_lan_prerouting -s 192.168.1.0/24 -d 110.89.88.136/32 -p tcp -m tcp --dport 9999 -m comment --comment "!fw3: test (reflection)" -j DNAT --to-destination 192.168.1.55:9999

# 访问NAS域名的数据从区域lan输出前:
# 从区域lan输出的,是内网192.168.1.0/24访问主机192.168.1.55:9999的tcp数据包,进行SNAT源地址会被修改为192.168.1.1,就是192.168.1.1访问192.168.1.55的数据包。# 因为NAS要回复访问请求,不能直接回复给主机33(因为主机33是访问110.89.88.136,不是直接访问192.168.1.55,192.168.1.55回复给主机33的数据会被主机33丢弃),
# 所以这里要把访问NAS域名的数据从区域lan输出前,把源地址改为网关192.168.1.1,这样NAS回复请求就会发送回网关192.168.1.1,网关将NAT转换恢复过来,
# 根据mapping表将源地址端口修改为110.89.88.136:9999,目的地址端口修改为192.168.1.33:36786,这样主机33就可以收到回复,建立通信了。
-A zone_lan_postrouting -s 192.168.1.0/24 -d 192.168.1.55/32 -p tcp -m tcp --dport 9999 -m comment --comment "!fw3: test (reflection)" -j SNAT --to-source 192.168.1.1

# 这对SNAT和DNAT就是NAT Loopback (Hairpin NAT / NAT Reflection)。添加端口转发规则,点击修改,最下方的“启用 NAT 环回”勾选,会生成这对SNAT和DNAT。

# 这里处理的就是外网访问内网NAS的数据。直接把数据包中目标地址和端口(你的公网IP),修改为了内网地址和端口。
# 从区域wan进入的,访问tcp 9999端口的数据,修改目标地址和端口为192.168.1.55:9999。
# NAS回复外网访问的请求,数据也会先到网关,网关这里将NAT转换恢复过来,数据就变成110.89.88.136回复外网的访问了。
-A zone_wan_prerouting -p tcp -m tcp --dport 9999 -m comment --comment "!fw3: test" -j DNAT --to-destination 192.168.1.55:9999

我的理解不够深,可以看下这里的解释How does NAT reflection (NAT loopback) work?

防火墙设置好端口转发,你是不需要管域名解析的问题的。域名解析让它保持解析为实际地址(你的公网IP)即可,防火墙会帮你处理好各个区域来的数据,你放心。

还有既然你说是直接接无线路由器的lan口(关掉DHCP)做“AP”,那就是个交换机,交换机在二层,不会管IP地址这种三层的事,不会出现你说的内网访问问题。

建议你先检查端口转发设置。点修改,查看转发端口的规则,最下方的“启用 NAT 环回”是否已经勾选。也可以iptables-save查看防火墙规则


点评

非常感谢您的耐心解答,网络知识之前没接触过,您说的防火墙规则之前完全不懂,进过您的解析,大致明白了,下来还得继续补课啊。 下面我解答一下您提到的问题: 1.“确定是静态解析导致不能访问的这个问题吗?”  详情 回复 发表于 2022-3-12 16:43
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-3-10 12:19 | 显示全部楼层
yunpeng0807 发表于 2022-3-10 01:19
通过以下方式解决了静态解析的问题:
在/etc/config/dhcp
config dnsmasq段加入

赞你的摸索精神和分享精神
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-3-10 12:52 来自手机 | 显示全部楼层
估计是端口回流问题,一般带docker的op都有这问题,解决方法是有的,我找一下
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-3-12 16:43 | 显示全部楼层
lgs2007m 发表于 2022-3-10 11:04
确定是静态解析导致不能访问的这个问题吗?

好乱,先捋一捋

非常感谢您的耐心解答,网络知识之前没接触过,您说的防火墙规则之前完全不懂,进过您的解析,大致明白了,下来还得继续补课啊。

下面我解答一下您提到的问题:
1.“确定是静态解析导致不能访问的这个问题吗?”
解答:这个问题可能是您理解错了,我的意思说我用静态解析来规避内网不能用域名访问的问题,而不是由于静态解析导致不能访问的问题。
2.“建议检查端口转发设置,是否勾选‘启用NAT环回’ ”
解答:端口转发应该是对的,否则外网也不能访问吧,“启用NAT环回”也勾选了

昨晚抽时间又搜索相关解决方案,经测试,目前该问题应该已解决,但是原理我不明白,您方便的时候是否能按我的解决方案解释一下原理,再次感谢!!

为了便于其他朋友阅读,我把解决方案单独放在下一条回复吧

点评

客气了,解决就好。 看来23楼的兄弟说对了,是lede的OpenWrt加入docker后产生的问题,我没有用带docker的OpenWrt,还不知道,涨知识~ 这种代码内核的问题,我等小白只能看大神解决,照搬方法了  详情 回复 发表于 2022-3-12 17:58
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2022-3-12 17:30 | 显示全部楼层
经过各位朋友的热心解答和网络搜索解决方案,我的问题目前已经得到解决,下面把解决方案总结一下,以便有类似需求的朋友能尽快解决问题。

【问题描述】
我的网络拓扑简述如下:
1. 在J4125工控机上安装ESXI,ESXI上安装openwrt作为主路由并拨号;
2. J4125共4个千兆网卡,其中2个分别接两台无线路由器,两台无线路由器均设置为AP模式(局域网内所有设备都在同一个网段);
3. 群晖NAS通过有线连接其中一台AP;
网络设置:群晖NAS设置DDNS,注册域名,openwrt上做端口转发;

如上设置后,有以下现象:
1.外网能通过域名访问NAS;
2.局域网内所有设备都能用内网IP访问NAS;

3.和NAS连接在同一台AP的手机电脑等不能用域名访问NAS,另一台AP下面的手机电脑等设备可以用域名访问NAS;
4.交换NAS连接的AP后,发现只有和NAS连接在同一个AP下的设备不能用域名访问NAS,其他AP下的设备可以用域名访问NAS;
5.把openwrt管理页面也做端口转发,则局域网内所有设备能用域名访问NAS。


我的网络拓扑可能不具有普遍性,只是使问题更有趣了,或更接近本质了,有待各位懂原理的大神解答。


下面我列出大家更可能遇到的拓扑结构:
光猫->openwrt(拨号)->无线路由器做AP->NAS或服务器以及各种有线/无线上网设备;
也就是服务器和其他上网设备都连接到无线路由器AP下面,则其他设备不能用域名访问服务器;


【解决方案】
解决方案参考下面两个链接:
https://blog.csdn.net/aplsc/article/details/122684437

http://www.kennylife.cn/index.php/x86_router/openwrt-NAT.html
具体如下:
1.ssh连接openwrt系统后,编辑/etc/sysctl.d/11-br-netfilter.conf文件。
net.bridge.bridge-nf-call-arptables=0
net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0
确认后面的值是0,如果不是,需要改为0
2.编辑/etc/sysctl.conf文件。文件内容可能是空的,把第一条的内容复制进sysctl.conf文件,保存退出。
3.ssh内输入sysctl -p命令,查看输出结果是不是上面提到的那三行内容。
4.输入/etc/init.d/sysctl restart
按上述内容设置后,问题完美解决!!!


【补充】


1.按解答问题的大佬的说法,这个问题是由于“部分openwrt自定义源码编译出的固件会导致无法自动生成这部分配置,就导致回流异常,手动配置一下自然就好了”。
2.想再请教一下各位大佬,内网用域名访问服务器,会消耗外网流量吗,网速会受外网带宽限制吗?












点评

跟帖,如果以上方式仍然没有解决问题,请注意是否同时在使用openclash且为fake-ip模式。如果是,则需要把ddns域名加入fake-ip-filter,具体位置为openclash-全局设置-dns设置-勾选高级设置-将你自己申请的ddns域名加  详情 回复 发表于 2022-9-27 23:44
特意登陆进来感谢,这个方法可以解决。  详情 回复 发表于 2022-9-15 13:40
请问我编辑完出现如下错误是什么原因? [attachimg]565580[/attachimg]  详情 回复 发表于 2022-7-24 10:28
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-3-12 17:58 | 显示全部楼层
yunpeng0807 发表于 2022-3-12 16:43
非常感谢您的耐心解答,网络知识之前没接触过,您说的防火墙规则之前完全不懂,进过您的解析,大致明白了 ...

客气了,解决就好。

看来23楼的兄弟说对了,是lede的OpenWrt加入docker后产生的问题,我没有用带docker的OpenWrt,还不知道,涨知识~
这种代码内核的问题,我等小白只能看大神解决,照搬方法了
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-7-24 10:28 | 显示全部楼层
yunpeng0807 发表于 2022-3-12 17:30
经过各位朋友的热心解答和网络搜索解决方案,我的问题目前已经得到解决,下面把解决方案总结一下,以便有类 ...

请问我编辑完出现如下错误是什么原因?
QQ截图20220724102726.jpg
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-9-15 13:40 | 显示全部楼层
yunpeng0807 发表于 2022-3-12 17:30
经过各位朋友的热心解答和网络搜索解决方案,我的问题目前已经得到解决,下面把解决方案总结一下,以便有类 ...

特意登陆进来感谢,这个方法可以解决。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-9-27 23:44 | 显示全部楼层
yunpeng0807 发表于 2022-3-12 17:30
经过各位朋友的热心解答和网络搜索解决方案,我的问题目前已经得到解决,下面把解决方案总结一下,以便有类 ...

跟帖,如果以上方式仍然没有解决问题,请注意是否同时在使用openclash且为fake-ip模式。如果是,则需要把ddns域名加入fake-ip-filter,具体位置为openclash-全局设置-dns设置-勾选高级设置-将你自己申请的ddns域名加入,保存并应用即可。
特此记录
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2023-1-29 14:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

| 江苏省互联网有害信息举报中心 举报信箱:js12377@jschina.com.cn 举报电话:025-88802724 | 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797
快速回复 返回顶部 返回列表