nat端口映射,nat端口映射命令
NAT端口映射: napt,upnp以及nat-pmp
我喜欢用很简单的话来概括:
natp是内部机器通过路由器也就是网关向外部发送网络请求时,路由器记住内部机器的ip和端口,同时跟真正发送数据的外网端口绑定,产生一个临时映射表,当收到外网数据以后通过这个映射表将数据转发给内部机器。nat的多种映射类型以后再说。
upnp和nat-pmp差不多,就是在路由器和内部机器提供一个中间服务,内部机器请求upnp将其使用到的端口跟某个外网端口绑定,这样当路由器收到外网请求时先去upnp里查找是否此外网端口已经被upnp映射,如果被映射则将数据转发到内部机器对应的端口。
napt是路由器肯定带的功能 ,其产生的nat映射表有多种类型,但都 有时效 ,也就是超过一段时间原来的nat映射就无效,然后新建新的nat映射。 nat映射必须先由内部机器向外部网络发起请求才会产生。
upnp是把映射关系长期保存下来, 外部机器可以主动向内部机器请求网络连接。 所以首先要路由器开启upnp功能(一般由用户去路由器设置里手动开启upnp) ,然后内部机器的程序要自己实现upnp客户端功能:主动查找upnp服务,主动增加映射、删除映射等。
客户端无法控制natp的映射,可以主动控制upnp映射。
从我目前对go-ethereum源码中p2p的研究来看,以太坊只做了upnpt和nat-pmp的端口映射,而且实现是调用了第三方开源库,但是没有做NATP udp打洞。
比特币源码还没看,不过应该也没有做udp打洞穿越NAT.
端口映射与NAT的区别是什么?
一、性质不同
1、NAT:网络地址转换方法。
2、端口映射:NAT的一种,外网主机的IP地址的端口映射到内部网络中的机器上,以提供相应的服务。
二、功能不同
1、NAT功能:
(1)宽带分享:这是 NAT 主机的最大功能。
(2)安全防护:NAT之内的PC联机到 Internet上面时,显示的IP是NAT主机的公共ip,所以客户端的pc当然具有一定的安全性。当外界进行端口扫描时,就侦测不到源Client 端的PC 。
2、端口映射功能:把在公网的地址转翻译成私有地址,采用路由方式的adsl宽带路由器具有动态或固定的公网ip。ADSL直接连接到集线器或交换机,所有计算机共享互联网。
扩展资料:
借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的ip地址。局域网只需要少量的ip地址(甚至一个)就可以满足专用地址网中所有计算机与internet的通信需求。
NAT将自动修改IP报文的源IP地址和目的IP地址,NAT处理时会自动完成IP地址验证。有些应用程序将源IP地址嵌入到IP消息的数据部分,因此有必要同时修改消息的数据部分,以匹配IP头中已修改的源IP地址。否则,在报文数据中嵌入IP地址的应用程序将无法正常工作。
参考资料来源:百度百科-nat
参考资料来源:百度百科-端口映射
NAT端口映射是什么来的?
我们用adsl+路由共享上网时,路由器默认是允许内网机器主动访问外网,但拒绝外网机器主动访问内网机器的。
端口映射的作用就是能让外网机器主动访问到内网机器,这样就要在路由器上设置一个通道,让路由器把访问这个通道的信息转发到内网机器上去。
举个例子:A为外网机器,IP为101.101.101.101,B为路由器外网IP为202.202.202.202,内网IP为192.168.1.1,C为内网机器,IP为192.168.1.2,正常情况,C用1234端口主动与A机器4567端口通信时,会通知B代为连接C的4567,A会接受并建立连接。但是若A用1235想主动与C的4568连接时,只能与B的4568连接,但是B只是路由器不会接受,丢弃这个连接请求连接就不成功。
这时,我们在B上设置端口映射,将B的4568映射到C的4568上去,A再主动与B的4568连接时,B就知道这个连接是想连到C的4568上去,于是转发到C的4568上去,若C这时正有程序监听这个端口,就会接受并与A建立连接,AC开始通信。
由上可知:
1、是,为了让外网机器能访问内网机器
2、是,就是在路由器上监听一个端口,转发到一个内网机器的端口上
3、有关,端口映射的机器IP必须为固定IP,不然这个机器就接受不到这个请求了
如何实现nat123全端口映射方法
环境描述:
Mysql数据库服务器部署在内网环境,局域网内可以访问mysql数据库,内网也可以上外网。如何实现外网访问内网mysql数据库?
解决方案:
内网使用nat123端口映射之全端口映射,将内网mysql数据库主机地址,映射到外网,实现外网的访问。
实现过程:
1,确保内网应用正常。
明确内网mysql数据库访问地址,并确保mysql数据库服务正常。如本地mysql数据库访问地址是localhost:3306。
2,nat123端口映射之全端口映射。
在mysql数据库服务器局域网内安装nat123客户端,并使用它。
使用自己的帐号登录。如没有帐号,可以“注册帐号”进入网站进行注册。
主面板/端口映射列表/添加映射。
设置映射信息。选择全端口映射类型。全端口映射P2p模式是免费模式。全端口映射转发p2p是VIP模式,需要VIP才能使用。填写内网mysql数据库服务器IP地址,和外网访问的域名。可以使用自己的域名,也可以使用免费二级域名。将鼠标放在输入框有向导提示。
添加映射后,可查看映射状态。将鼠标放在映射图标上有提示当着状态信息。新添加映射一般几分钟内生效。
3,外网访问端安装nat123客户端并使用访问者。
访问者打开mysql全端口映射后的域名和访问端口。如在添加访问地址时,同时勾选允许局域网访问,则在访问者局域网内都可以访问。
查看访问者状态。鼠标放在访问者图标上,提示当前状态信息。
在使用访问者本机,可以进行访问mysql数据库。访问地址是本地访问者打开的域名端口。
全端口映射P2P模式:免费模式,点到点通信,在一些特别复杂网络下可能会穿透失败不可用。
全端口映射转发P2P:有服务器支持的VIP模式,100%可用,需购买支持全映射VIP使用。
在内网环境,同样可以使用非网站应用映射方法实现外网访问内网mysql数据库,此方法不需要在访问端使用访问者。
NAT和端口映射是什么?
内网有需要让外网访问的共享资源或者设备,就需要端口映射来实现。
比如家用路由器,内网都是c类地址,但是全世界有n个。这时候想要在外面访问家里的路由器,就需要把内网的地址端口映射到外网。也就是公网,因为公网地址是唯一的。
映射的前提是有公网地址,或者花生壳第三方之类的。
如何设置路由器的NAT端口映射
设置路由器上的端口映射的方法步骤如下:
1.首先要有路由器完全权限的账户;
2.输入路由器的地址,一般默认都是
192.168.1.1。登录路由器管理界面;
3.进去时一般是在“应用”——“高级NAT配置”里,点击“虚拟主机配置”选项。
4.图中看出,我现在映射的端口为4600,映射的主机是本机:192.168.1.46,按确定之后就生效了。
端口映射是NAT的一种,功能是把在公网的地址转翻译成私有地址,
采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。
端口映射分为动态和静态。详细介绍如下:
动态端口映射:假设内网中的一台电脑要访问新浪网,会向NAT网关发送数据包,包头中包括对方(就是新浪网)IP、端口和本机IP、端口,NAT网关会把本机IP、端口替换成自己的公网IP、一个未使用的端口,并且会记下这个映射关系,为以后转发数据包使用。然后再把数据发给新浪网,新浪网收到数据后做出反应,发送数据到NAT网关的那个未使用的端口,然后NAT网关将数据转发给内网中的那台电脑,实现内网和公网的通讯.当连接关闭时,NAT网关会释放分配给这条连接的端口,以便以后的连接可以继续使用。动态端口映射其实也就是NAT网关的工作方式。
静态端口映射:在NAT网关上开放一个固定的端口,然后设定此端口收到的数据要转发给内网哪个IP和端口,不管有没有连接,这个映射关系都会一直存在。就可以让公网主动访问内网的一个电脑。
参考资料
脚本之家.脚本之家[引用时间2018-1-19]