测试环境如下:

monitor: msc1:
公网IP:103.6.164.128 eth0 内网IP:192.168.0.57 eth0
内网IP:192.168.0.16 eth1

通过访问monitor的外网地址的20003端口,访问到msc1的20003端口:

1.设置monitor服务器允许IP转发:
$echo "1" >/proc/sys/net/ipv4/ip_forward
或者编辑/etc/sysctl.conf修改内容:
net.ipv4.ip_forward = 1

修改后执行:
$sysctl -p
使配置生效

2.做端口映射:
$iptables -t nat -A PREROUTING -s 0/0 -d 103.6.164.128 -p tcp --dport 20003 -jDNAT --to 192.168.0.57
$iptables -t nat -A POSTROUTING -d 192.168.0.57 -p tcp --dport 20003 -o eth1 -j SNAT --to 192.168.0.16

NAT原理简介:

NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force,

 Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。
顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。

简单地说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,

 打个比方就像院子的门一样)处,将 内部地址替换成公用地址,从而在外部公网(internet)上正常使用,
NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共 IP地址紧缺的问题。通过这种方法,
您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,
所有 内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。

这里提到的内部地址,是指在内部网络中分配给节点 的私有IP地址,这个地址只能在内部网络中使用,不能被路由(一种网络技术,

可以实现不同路径转发)。虽然内部地址可以随机挑选,但是通常使用的是下面的地址:
10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168.255.255。
NAT将这些无法在互联网上使用的保留IP地址翻译成可以在互联网上使用的合法IP地址。而全局地址,是指合法的IP地址,
它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻址的地址。

NAT技术类型:

  NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。
其中静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。

而动态地址NAT则是在外部网络中定 义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT则是把内部地址映射到外部网络
的一个IP地址的不同端口上。根据不同的需要,三种 NAT方案各有利弊。

动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以

采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。

网络地址端口转换NAPT(Network Address Port Translation)是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中,

 它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与 动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,
同时在该地址上加上一个由NAT设备选定的TCP端口号。
  
  在Internet 中使用NAPT时,所有不同的信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,
通过从ISP处申请的一个IP地址,将多个连接通 过NAPT接入Internet。实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。
这样,ISP甚至不需要支持NAPT,就可以做到多个 内部IP地址共用一个外部IP地址上Internet,虽然这样会导致信道的一定拥塞,
但考虑到节省的ISP上网费用和易管理的特点,用NAPT还是很值得的。 

Linux将公网ip映射到局域网ip的更多相关文章

  1. wstngfw中使用虚拟IP映射内网IP

    wstngfw中使用虚拟IP映射内网IP -------------------------------- Server01: IP: 192.168.195.73/24 GW: 192.168.19 ...

  2. 脑残式网络编程入门(六):什么是公网IP和内网IP?NAT转换又是什么鬼?

    本文引用了“帅地”发表于公众号苦逼的码农的技术分享. 1.引言 搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么?又有什么关系呢 ...

  3. 局域网IP地址

    A类: 10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址). 127.X.X.X是保留地址,用做循环测试用的. B类: 172.16.0.0---172.31.255 ...

  4. 公网IP映射修改后,原先的图片访问却不行了

    描述:www与img在一个公网的nginx下时,www访问img没问题   ip:*.*.*.26 www与jimg同样还在同一组nginx,改另一个公网IP映射进来的时候,却访问不了  ip:*.* ...

  5. C#获取本机局域网ip和公网ip

    1.获取局域网ip IPAddress ipAddr = Dns.Resolve(Dns.GetHostName()).AddressList[0];//获得当前IP地址 string ip=ipAd ...

  6. .NetCore.RazorPages 获取访客的公网IP与局域网IP

    dotnet.core 获取访客的公网IP与局域网IP 现在奉上代码 public void OnGet() {var ip = Content(HttpContext.Connection.Remo ...

  7. 查看linux系统 公网ip

    查公网IP时候, 百度输入 IP可看 linux 系统(无界面) : curl cip.cc

  8. Linux查看公网IP

    curl cip.cc   查看公网IP curl  -s  icanhazip.com  查看公网IP, 只显示IP,没有供应商信息

  9. 公网Ip和私网ip

    IP可以分为Public IP 和 Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络,所以对于那些公司,学校, ...

随机推荐

  1. Hudson管理平台自动化部署war包

    继上一篇:Hudson持续集成管理平台搭建 后,我们需要进行项目的自动化部署. 首先:我们先配置<系统管理>中的[系统设置] 然后返回到首页,点击项目名称进入项目内,点击设置: 翻到最底下 ...

  2. THE DEFINITIVE GUIDE TO DEBUGGING JAVASCRIPT

    FIGURING OUT WHERE THE ERROR COULD BE READ THE CODE USING THE CONSOLE THE CHROME DEV TOOLS THE DEBUG ...

  3. idea 快捷键ctrl+shift+f失效的解决方案

    我是使用微软自带的拼音输入法,右下角图标--右键--设置--按键,拉到最下面 ---快捷键(简体繁体切换),取消勾选 即可

  4. Timus 1132 Square Root(二次剩余)

    http://acm.timus.ru/problem.aspx?space=1&num=1132 题意: 求 x^2 ≡ n mod p  p是质数 的 解 本题中n>=1 特判p=2 ...

  5. logstash日志采集工具的安装部署

    1.从官网下载安装包,并通过Xftp5上传到机器集群上 下载logstash-6.2.3.tar.gz版本,并通过Xftp5上传到hadoop机器集群的第一个节点node1上的/opt/uploads ...

  6. 如何更改vs2013中git的远程仓库url地址

    可以通过修改Git库配置文件实现,请看下图:

  7. 产线nginx路径跳转问题

    问题描述 应用在客户产线环境部署时,要求只需要输入域名就可以直接访问到应用,而不用输入完整的应用访问路径. 项目架构 前端使用nginx作为反向代理和负载均衡,后端部署多个tomcat实例. Web应 ...

  8. redis集群之主从架构

    https://redis.io/topics/replication1. redis主从架构概述(1)一个master可以配置多个slave(2)slave与master之间使用异步复制进行数据同步 ...

  9. Mongodb aggregation 基本操作示例

    MongoDB二个主要的操作:一个是查询,另一个是统计.对于查询而言,主要是find()方法,再配合Filters组合多个查询条件. 对于统计而言,则主要是aggregate操作,比如 group.s ...

  10. luogu 1966 火柴排队 离散化+逆序对

    题意:找到最小改变对数使a数组的第i大和b数组的第i大相等 则先将a,b,数组编号再排序,则数组显示的就是排名第i的数的编号 再关键一步:c[a[i].id]=b[i].id 实质上就是新建一个数组, ...