利用Aliddns进行端口映射,外网可以使用域名访问,在公司内网用域名访问不通。

利用Aliddns进行端口映射,外网可以使用域名访问,在公司内网用域名访问不通。这几天在公司的路由器上做了Aliddns,对公司的内部网络的一些服务映射到公网,在家里就可以访问到公司的一些服务。出现了一个问题:在外网利用域名+端口号可以正常访问到公司的服务,在公司内网的时候访问却没办法利用域名访问,只能用IP才能访问到相关服务找了一些资料,总结原因如下:例:在公司内网访问:访问者:代号A被访问者:代号B路由器:代号R由于在做DDNS时,在路由器上会把B绑定为公网…

大家好,又见面了,我是你们的朋友全栈君。

这几天在公司的路由器上做了Aliddns,对公司的内部网络的一些服务映射到公网,在家里就可以访问到公司的一些服务。
出现了一个问题:在外网利用域名+端口号可以正常访问到公司的服务,在公司内网的时候访问却没办法利用域名访问,只能用IP才能访问到相关服务
找了一些资料,总结原因如下:
例:在公司内网访问:
访问者:代号A
被访问者:代号B
路由器:代号R
由于在做DDNS时,在路由器上会把B绑定为公网IP,所以在访问者A访问域名时,解析出来的公网IP,这时候发送的包:
源地址为:A的内网IP,目的地址为:公网IP。SYN为1
在路由器上路由表对应的设备为访问者B,所以路由器会把包丢到被访问者B上,B收到包后会回应一个包:
源地址为:B的内网IP,目的地址为:A的内网IP。SYN=1,ACK=1
这时候,A就收到了一个源地址为:B的内网IP,目的地址为:A的内网IP的包,在A的请求记录中没有发送给B的内网IP的包,所以A认为这是一个错误的包,于是A就把包丢弃,继续等待公网IP回应的包,直到等待超时,
在B上,也一直等待A回应的TCP包,直到等待超时
如下图:
在这里插入图片描述由于TCP三次握手没有完成,所以内网通过域名访问不到内网资源,造成了NAT回流
(NAT回环)
解决方法如下所示:
在路由器上把NAT loopback设置成asus
NAT loopback在路由器—防火墙设置—一般设置里面

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134347.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python监控网页内容变化_使用Python监控文件内容变化代码实例

    python监控网页内容变化_使用Python监控文件内容变化代码实例利用seek监控文件内容,并打印出变化内容:#/usr/bin/envpython#-*-coding=utf-8-*-pos=0whileTrue:con=open(“a.txt”)ifpos!=0:con.seek(pos,0)whileTrue:line=con.readline()ifline.strip():printline.strip()pos=p…

    2022年7月17日
    19
  • 电子设备日常使用总结

    电子设备日常使用总结

    2021年5月17日
    122
  • java 激活码【最新永久激活】

    (java 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1PA3AFINM4-eyJsa…

    2022年3月31日
    76
  • 剑指Offer面试题:10.数值的整数次方

    一题目:数值的整数次方二实现思路(1)当指数为负数的时候:可以先对指数求绝对值,然后算出次方的结果之后再取倒数。(2)当底数(base)是零且指数是负数的时候:通过全局代码或异常告诉调用者参

    2021年12月19日
    40
  • C# TransactionScope「建议收藏」

    C# TransactionScope「建议收藏」TransactionScopeTransactionScope事务处理经常用到,老是用了又忘,做点记录。TransactionScope的定义跟使用介绍。TransactionScopeOptionTransactionScopeOption枚举型用来决定一个TransactionScope是用已有的事务,还是定义TransactionScope的新做一个事务,还是完全不用事务。默认是Required,Required表示如果已有事务,就加入该事务,否则新建一个事务。TransactionOp

    2022年7月19日
    18
  • Go Int转string几种方式性能测试[通俗易懂]

    Go Int转string几种方式性能测试[通俗易懂]Go语言内置int转string至少有3种方式:fmt.Sprintf("%d",n)strconv.Itoa(n)strconv.FormatInt(n,10)下面针对这3中方式的性能做一下简单的测试:packagegotestimport( "fmt" "strconv" "testing")funcBenchmarkSprintf(b*testing.B){ n…

    2022年10月21日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号