NAT技术中的Port Forwarding & Port Triggering
来源:互联网 发布:maka制作软件 编辑:程序博客网 时间:2024/05/26 16:00
看这篇文章之前要看另一篇:NAT再解析
这一篇文章就是对上一篇东西用专业术语解释 Port Forwarding就是上一篇的动态映射 Port Triggering就是上一篇的静态映射
inbound port 就是外网要访问你内网中的服务器的时候外网中要填的目的端口,private port就是你内网上的这个服务的实际端口,这两个端口被路由器映射在一起 port mapping。
在使用NAT的网络中,内部终端的IP地址为私网地址,发出去的IP包在NAT网关处进行地址转换,以公网地址与外部联系。在转换过程中,网关建立映射表,并维护对应连接的状态。当来自公网的包返回时,按照目的地址查找映射表,找到对应的私网地址,然后再次转换后发送给内部终端。这样,映射表中条目的增加是由内部发往外部的数据流触发的。因此,如果外部想直接访问内部是不可能的。
在实际应用中,被NAT网关隐藏起来的内网很可能架设FTP服务器、HTTP服务器、邮件服务器等等,那么如何从外部访问这些服务器呢?Port Forwarding提供了这样的机制。Port Forwarding根据来自公网的IP包的端口,将其转发到指定的内部IP地址上。例如,一个NAT网关的WAN侧地址为123.4.5.6,内部架设了一台FTP服务器,地址为192.168.0.8,端口21,及一台HTTP服务器,地址为192.168.0.9,端口8080NAT网关(可能是路由器)上设置Port Forwarding规则:
若Inbound的IP包目的地址为123.4.5.6,端口21,则将其地址转换为192.168.0.8,端口21,然后向内网转发;若Inbound的IP包目的地址为123.4.5.6,端口80,则将其地址转换为192.168.0.9,端口8080,然后向内网转发。
这样,通过设置Port Forwarding,从外网可以直接访问到内网的服务器。这里还有一个好处,对于某些linux服务器,只有root权限才可开放端口号小于1024的服务,而使用root帐号具有一定的风险,因此如上例,可设置内网HTTP服务器端口为8080,当外部采用常规的HTTP 80端口访问时,会映射到8080端口。
路由器某一接口 inbound为 流入;outbound为流出。
Port Triggering,是指当Outbound的流来自指定的内网端口(triggered port),自动打开网关WAN侧接口的指定端口(forwarded port),并将指向forwarded ports的流转发到内网触发triggered ports的终端上。引用wiki上关于port triggering的一个例子,IRC(Internet Relay Chat)使用Ident协议(113端口)来验证用户。当连接IRC时,客户电脑通常以端口6667与服务器建立连接,然后IRC服务器建立到客户电脑113端口的连接来验证用户。如果只有NAT,inbound到端口113的流将被丢弃,因为NAT网关无法知道是内网哪台机器发出的outbound流。而Port Triggering则解决了这个问题。
与静态配置的Port Forwarding相比,Port Triggering提供更大的灵活性,因为无需指定具体的内网终端地址,网关会在trigger时自动记录。
Port Forwardig中的外网端口是一直开放的,而Port Triggering中外网端口是只在trigger后才开放。
从配置的角度来说,Port Forwarding需要配置内部服务器的IP地址和端口,以及外网地址的端口,Port Triggering只要配置Outbound流的端口(triggered port)和Inbound流的端口(forwarded port)。
总结:port Forwarding是将外网IP地址和端口固定映射到内网某个IP地址和端口。Port Triggering是内网访问外网的时候动态为访问外网的IP地址和端口分配一个外网IP地址和端口,这个内网的IP地址和端口叫做triggered port,动态分配的外网的IP地址和端口叫做forwarded port。
- NAT技术中的Port Forwarding & Port Triggering
- NAT&Port Forwarding&Port Triggering
- Port Forwarding & Port Triggering
- Port Forwarding & Port Triggering
- 路由器端口触发与转发---Port Forwarding & Port Triggering
- Configure port forwarding with NAT
- port forwarding
- VirtualBox NAT Port Forwarding Settings(Windows XP)
- SSH Port Forwarding
- What is Port Forwarding?
- ssh port forwarding
- What is Port-Forwarding ?
- iptables remote port forwarding
- (OK) How to access a NAT guest from host with VirtualBox - NAT Port Forwarding
- (OK)(OK) using adb with a NAT'ed VM - VirtualBox - NAT Port Forwarding
- ssh端口转发(port forwarding)
- Netsh Port Forwarding in Windows
- Tools - rinetd - port forwarding/redirection
- 图文详解YUV420格式
- mvc3 razor 自定义方法
- ubuntu下安装fcitx-sunpinyin
- CMake详细的指令
- 状态模式--对象行为型模式
- NAT技术中的Port Forwarding & Port Triggering
- SQL 左外连接,右外连接,全连接,内连接
- Java的异常处理
- js调用qq互联api实现第三方登录
- Apache [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
- 一个经常出现却又困扰n天的问题
- 查看NSMutableArray数组中是否相同对象,没有插入,有则删除
- ping命令的几个简单使用
- Qt 多线程与数据库操作需要注意的几点问题