linux – 从局域网内部访问DNAT的网络服务器
我有一个带路由器的小型网络,它维护与Internet,服务器和本地网络中的一些工作站的连接.
服务器应该从Internet访问,并且在路由器iptables中设置了几个DNAT条目,如下所示: -A PREROUTING -i ppp0 -p tcp -m multiport --dports 22,25,80,443 -j DNAT --to-destination 192.168.2.10 外部数据包通过ppp0接口进入路由器,内部数据包来自br-lan,实际上包括交换机和WLAN适配器.问题是,虽然外部访问工作正常,但尝试通过DNS解析的外部IP(分配给ppp0)从LAN内部访问服务器失败. 我能够发明的唯一解决方案是向路由器的/ etc / hosts添加静态条目,指向内部IP,但由于没有通配符(我至少有三个顶级域分配给该系统,不计算数十子域名),这是相当脆弱和容易出错的.你能提出更好的建议吗? 我只找到了这个question,这不是很有用. 如果这是相关的,路由器使用dnsmasq运行OpenWRT 10.03 Kamikaze. 解决方法
我很惊讶,在将近8年后,没有人使用OpenWRT中默认使用的UCI配置系统解释如何以正确的方式执行此操作.
Steven Monday的答案是正确的,但它直接使用iptables命令,这是一个比UCI配置系统更低的层,如果可能的话,大多数OpenWRT用户最好不要使用它. 通过UCI中另一个内部主机的公共IP /端口组合访问内部服务器的正确方法是在文件/ etc / config / firewall中的每个特定DNAT目标下启用配置选项反射.记录此行为here. 例如: 配置重定向 注意:根据指示的OpenWRT文档,默认情况下启用反射.在我的测试中,情况并非如此. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |