加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 从局域网内部访问DNAT的网络服务器

发布时间:2020-12-13 18:17:16 所属栏目:Linux 来源:网络整理
导读:我有一个带路由器的小型网络,它维护与Internet,服务器和本地网络中的一些工作站的连接. 服务器应该从Internet访问,并且在路由器iptables中设置了几个DNAT条目,如下所示: -A PREROUTING -i ppp0 -p tcp -m multiport --dports 22,25,80,443 -j DNAT --to-des
我有一个带路由器的小型网络,它维护与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.

例如:

配置重定向
期权目标’DNAT’
选项src’wan’
选项dest’lan’
选项proto’tcp’
选项src_dport’44322′
选项dest_ip’192.168.5.22′
选项dest_port’443′
选项名称’apache HTTPS server’
选项反射’1′

注意:根据指示的OpenWRT文档,默认情况下启用反射.在我的测试中,情况并非如此.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读