在IP地址和子网掩码中说了IP地址,在网卡的真正硬件地址MAC 中说了MAC地址,在端口是个什么鬼? 中说了端口。但实际上我们大部分时候更关心的是IP地址和端口。至少在今天我要说的端口映射中是用到了IP地址和端口。为什么我们要端口映射?端口映射在什么情况下用?
端口映射中的端口就是逻辑层面的端口而非路由器,交换机上的端口,其实在大部分的情况下我们所说的端口都是指这种逻辑层面的端口号。通俗的说端口映射就是把其中一个端口号和另一个端号联系起来,记录下来,看到这个端口号就知道指的是经过变换后的端口号。这就像指鹿为马一样。当然这里的指鹿为马和赵高的指鹿为马有本质的不同。
我们之所以要端口映射其实是因为NAT技术。NAT下的保安和张三 中说到NAT技术就像一个小区,只允许里面的人主动联系外面 的人,而不允许外面的人主动联系里面的人。这在一定程度上保护了内部的安全,同时也带来一个问题,如果外面的人要主动的访问控制处于NAT里主机则无法实现。比如实际中有远程控制的需求。这个时候我们就需要端口映射这样的操作用来把目的端口是指定端口号的数据包和指定的主机端口号联系起来以方便远程控制这样的需求。
当你有从互联网要主动访问处于NAT(路由器)后面的主机这样的需求时你就可以做端口映射。端口映射通常是做在进入内部网络的汇聚设备上比如路由器。在路由器中有叫做虚拟主机或虚拟服务器也有直接叫端口映射的,他们统一的类别是转发规则。这也说明了实际上端口映射就是为了特殊转发存在的。
操作方面大同小异。首先进入路由器的管理后面界面,找到虚拟主机或者转发规则下的虚拟服务器或者端口映射。
在上图中带有*号的是必填的。其中指定出口在一般的路由器默认都是WAN或是PPPOE拨号口。协议根据自己的需求如果不知道可以选择TCP+UDP或者ALL。外部端口就是从互联网上进来的目的端口,比如我们用浏览器打开网页默认的目的端口就是80或都443。内部IP是指提供服务的内部网络的主机地址比如有一个IP地址是192.168.1.100的主机提供网页服务那么就是这个地址。内部端口就是指这个提供服务的主机的开放端口,比如网页服务默认是80如果有更改需要填写更改后的端口。(有一些路由器可以没有内部端口这个填写项)
上面的意思就是说路由器检测到了从WAN口主动进来的数据包里的目的端口号是主人指定的外部端口的话,把外部端口更改为内部端口(如果没有就不用更改了)然后再交给内部IP为192.168.1.100的主机处理,至于是死是活不关路由器的事了。