1. 最近,到处看到有人问这个问题,怎么以前没人问,现在这么多人问呢?前两天我还在华为的论坛上仔细的说了这个问题,现在复制到这边来。希望能帮助大家理解这个问题。
  2. 这是个理论问题,我们先从NAT讲起:NAT有两种基本类型,一种是SNAT(Source   NAT),一种是DNAT(Dest.   NAT).SNAT即源NAT是改变数据包的IP层中的源IP地址,一般是用来将不合法的IP外出请求转换成合法的IP的外出请求,就是普通的用一个或者几个合法IP来带动一整个非法IP段接入。   DNAT即目的NAT,就是改变数据包的目标IP地址,使得能对数据包重新定向,可以用做负载均衡或者用于将外部的服务请求重定向到内网的非法IP的服务器上。
  3. 好了,罗嗦了一通,大致就是这样了。   那么之所以会出现无法在DNAT的内部网络通过DNAT服务的外部IP地址来访问的情况,是因为,如果服务从内部请求,那么经过DNAT转换后,将目标 IP改写成内网的IP地址,譬如172.16.10.254,而请求的机器的IP是   172.16.10.100,数据包被网关172.16.10.1顺利的重定向到172.16.10.254的服务端口,然后,192.16.10.254根据请求发送回应给目的IP地址,就是172.16.10.100,但是,问题出现了,因为172.16.10.100请求的地址是外部IP   假设是221.232.34.56,所以他等待着221.232.34.56的回应,而172.16.10.254的回应请求被看做是非法的,被丢弃了。这就是问题的所在了。
  4. 呵呵,写的有点混乱,不好意思。不知道大家明白没有.那么如何解决这个问题,我说个用iptables实现的例子,
  5. #我们先把发向外网IP221.232.34.56   80号端口的数据重定向到172.16.10.254   理论上来讲,如果只要从外网访问,这就完成了。
  6. iptables   -t   nat   -A   PREROUTING   -p   tcp   -d   221.232.34.56   --dport   80   -j   DNAT   --to-destination   172.16.10.254
  7. #解决内网通过外网IP访问的情况
  8. iptables   -t   nat   -A   POSTROUTING   -p   tcp   -d   172.16.10.254   --dport   80   -j   SNAT   --to-source   172.16.10.1
  9. 我们将内网的请求强行送回到网关172.16.10.1,依靠网关在内核建立的状态表再转发到真实的请求地址172.16.10.100.
  10. 当然,这并不是最好的解决方法,最好的解决方法是将服务器放在另外一个网段,也就是说所谓的DMZ(解除武装区),这样就不会出现上面所说的问题了。
  11. 如果大家还不清楚,给个参考文档:
  12. http://iptables-tutorial.frozentux.net/iptables-tutorial.html#DNATTARGET

iptables后,外网访问网站可以,内网无法访问【已解决】的更多相关文章

  1. 配置NAT回流导致外网解析到了内网IP

    单位有3个域名,用量很大,2014年开始本人研究部署了Bind+DLZ +Mysql的三机智能多链路DNS,非常好用,优点是: 1.使用Mysql管理记录,配置.管理.查询方便. 2.自动判断运营商, ...

  2. frp内网 穿透映射使内网svn可外网访问

    起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...

  3. tomcat manager 禁止外网访问 只容许内网访问

    参考:http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html A default Tomcat installation includes ...

  4. 用户iis可以用外网ip访问,用内网访问报错404

    如下,没有添加内网ip绑定

  5. windows(Linux)创建”内网穿透“工具(通过自定义域名访问部署于内网的 web 服务,可以用于调试微信支付,支付宝支付,微信公众号等开发项目)

    此方法需要自有服务器和域名,如果没有这些的开发者, 可以参考钉钉提供的内网穿透方式:https://www.cnblogs.com/pxblog/p/13862376.html 一.准备工作 1.域名 ...

  6. 利用阿里云搭建frp实现外网远程桌面链接内网电脑

    主要应用场景:针对学生放假回家使用外网无法远程操作学校的服务器或者电脑,这里通过阿里云的云服务器搭建一个frp服务,实现内网穿透,从而可以直接通过远程桌面或者其他工具实现对校园网内的服务器或者电脑进行 ...

  7. 在外网使用ssh连接内网中的多台Linux服务器

    最近因为要对全球工控机网络进行协议扫描,需要在实验室配置几台服务器,因为我们只有一个IP地址,所以是用路由器搭建了一个内网(拓扑结构如下图).但是这样做了之后无法在宿舍通过ssh直接连接服务器,因为那 ...

  8. SSH反向连接让外网也可远程访问内网机器

    最近把树莓派折腾了一番,放在了家里,但是家里是内网,出门在外,不方便直接ssh上来,于是请教了秦兄,指点迷津,发现SSH反向链接可以实现这个功能. 1. ssh反向链接的概念 A主机:外网,ip:11 ...

  9. JAVA 优先获取外网Ip,再获取内网Ip

    1.获取内网Ip private String getLocalhostIp(){ String hostAddress = ""; try { InetAddress addre ...

  10. 【网络】内网穿透方案&FRP内网穿透实战(基础版)

    目录 前言 方案 方案1:公网 方案2:第三方内网穿透软件 花生壳 cpolar 方案3:云服务器做反向代理 FRP简介 FRP资源 FRP原理 FRP配置教程之SSH 前期准备 服务器配置 下载FR ...

随机推荐

  1. c#代码分析

    代码分析是在一个IT行业计算机程序员必须要具有的基本专业技能,在了解一定的专业基础之上去看懂别人编写的代码,分析别人代码实现的功能,以及基本的维护和扩展测试.不同的人有不同的代码风格,要使自己的能要别 ...

  2. Practice3 阅读《构建之法》1-5章

    第一章:概论 本章主要是讲了软件工程的基本概念,软件工程的最终目标是创造“足够好”的软件. 提出问题:什么是BUG?(出自1.2.5节) 答:就我个人而言,在许多游戏中也有许多的BUG,BUG这一词在 ...

  3. PAT 1041 考试座位号

    https://pintia.cn/problem-sets/994805260223102976/problems/994805281567916032 每个PAT考生在参加考试时都会被分配两个座位 ...

  4. Docker Clustering Tools Compared: Kubernetes vs Docker Swarm

    https://technologyconversations.com/2015/11/04/docker-clustering-tools-compared-kubernetes-vs-docker ...

  5. Java7和8在虚拟机上的差异:Perm Generation vs. Metaspace

  6. Linux下数据库备份恢复过程

    1. 远程进入Linux服务器. 2. 一般登录的是root用户, 第一步切换到Oracle用户, 命令: su - oracle 3. 查看服务器上面数据库的监听的状况 lsnrctl 之后输入命令 ...

  7. PRML读书笔记_绪论曲线拟合部分

    一.最小化误差函数拟合 正则化( regularization )技术涉及到给误差函数增加一个惩罚项,使得系数不会达到很大的值.这种惩罚项最简单的形式采用所有系数的平方和的形式.这推导出了误差函数的修 ...

  8. NVIDIA面目生成器再做突破

    导读 NVIDIA创建的AI系统“GAN”可以通过对图像数据库的学习,来随机生成超逼真人脸照片而一炮走红,经过长时间的研发与晚上目前这套系统已经有了极大的进步.除了可以自主学习之外,生成的内容逼真,让 ...

  9. 云时代的IT运维面临将会有哪些变化

    导读 每一次IT系统的转型,运维系统和业务保障都是最艰难的部分.在当前企业IT系统向云架构转型的时刻,运维系统再一次面临着新的挑战.所以在数据中心运维的时候,运维人员应该注意哪些问题? 在云计算时代, ...

  10. quartz 配置

    <bean id="quartzJob" class="com.wistron.swpc.detaillog.common.SwfitFileAnalysis&qu ...