为什么我在内网用公网IP访问不了我的WEB服务器之端口回流

        问题:在华为USG6303里,对公网IP地址的8010端口进行映射(虚拟服务),映射到我自己的web服务器的80端口,设置成功后,但在本机上(即192.168.99.99这台虚拟机)访问域名和外网ip时,都是无法打开,还以为是映射不成功或是被路由器屏蔽了呢?

2个小时没解决,只好开了vpn,让别人访问。

后来排查时发现用5G网络可以访问(外网地址),内网却不能访问。

遂开始脑补逻辑。

我需要在内网里面使用公网地址去访问内网的服务器。

有点拗口,通俗来说,就是用一个公网IP就能内外网通吃,不用内网一个和外网一个的记。

假设你的外网IP为 100.1.1.1内网有2台192.168.99.1  192.168.99.2

做了IP地址映射  100.1.1.1:80->192.168.99.1:80

1。公网PC1访问你的站点

PC1:X->100.1.1.1:80   (1个session 包含:[source ip:source  port , desti p:dest port]4个参数 )
地址转换后:  pc1:x->192.168.99.0:80

192.168.99.0 到数据后,发数据给源站点

192.168.99.2:80->pc1:x  经过地址转换 100.1.1.1:80->pc1:x

所以外网可以访问你映射的站点.

2。如果在内网访问

192.168.99.2:x->100.1.1.1:80  地址转换后 192.168.1.11:x->192.168.99.1:80 到达站点

站点返回数据:

192.168.99.1:80->192.168.99.2:x
这里是关键:192.168.99.1检查后发现目标ip为192.168.99.2为同一网段,
所以直接把数据发给192.168.99.1,不再通过100.1.1.1转发。

但是,192.168.99.2是向100.1.1.1发起连接,并没有和192.168.99.1连接,所以将丢弃192.168.99.1发回的数据。

也就是说 192.168.99.2访问100.1.1.1这辈子都连不上。

那么现在就需要一个功能:端口回流

        端口回流,学名 Hairpin NAT。望文生义,就是发夹弯一样的NAT,当我们内网电脑使用公网地址访问网站服务器的时候,我们路由器立刻转手帮回送给网站服务器,就不用去走公网。

但是在有些下一代防火墙来说,可能会使用DNS-Mapping这种方式,现在的路由,只需要在NAT下面开启hairpin NAT。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值