用人话来说端口映射跟端口转发

端口映射/端口转发:

端口映射:将外网主机的某个端口映射为内网主机的某个端口。比如操作系统中的host文件将ip映射成域名然后通过域名去访问。

端口转发:将来自外网主机的某个端口的数据通过中间设备转发到内网主机的某个端口。

实验:

 如下,假设图中的路由器使用的是公网地址;route公网ip为:21.21.12.12;内网电脑ip:192.168.1.1;内网web站搭建在192.168.1.1这台电脑上采用http协议,端口为80。如果我要让“Internet上的电脑” 访问“内网搭建了web网站的电脑”上的web网站怎么实现?

分析:

按照“ NAT协议(地址转换协议)”的原理我们中间使用了路由器(route)将路由中的一个公网地址NAT成多个私网地址。那“Internet上的电脑”肯定是无法访问通过路由器nat出来的私网地址的,但它却可以访问路由器的ip。因为该ip是个公网ip。那么我们就可以使用端口转发,通过route转发给我内网主机或端口映射对其ip进行映射。

举例说明:

说明之前先看看路由端口映射跟端口转发的设置图:

端口映射:

端口转发:

再来一个假设:假设我想设置外网端口为:2022。内网端口我们已经知道了是80;内网主机是192.168.1.1。外网ip其实就是我们的公网地址啊!为什么路由器中不用设置外网地址?因为该设备只有一个WAN口当然就有一个外网地址咯,所有这里还需要填吗?很明显不需要。

因为Internet上的电脑可以访问到我们的路由器,所以我们可以在路由器上设置端口转发(将来自Internet电脑的2022端口数据通过路由器转发给内网电脑192.168.1.1:80)或者端口映射(将内网电脑192.168.1.1:80映射成21.21.12.12:2022)。做完端口映射或者端口转发的设置之后就可以通过21.21.12.12:2022对内网电脑192.168.1.1上的web网站进行访问了,就是这么easy。

说人话:比如我家在深圳,我在北京,现在我要寄一个快递给家里,从北京寄到深圳,难道我自己送过去吗 ?不可能吧,我又不知道怎么走,我只知道我家在深圳,深圳是有快递驿站的。那怎么办呢?可以交给北京的快递驿站啊,由北京的快递驿站在交给深圳的快递驿站,再由的深圳的快递驿站送到我家里。翻译过来就是我要在公司访问我家里的电脑。但是在此之前你也确保你在公司网络能访问到你家里的路由器!就好比我把自己比喻成外网主机,北京快递驿站比作是家里的路由器,深圳快递驿站比作家里连接到路由器的电脑,我家就比作电脑中的程序,所以我要确保我能把快递交给北京快递驿站,还要确保北京快递驿站能到达深圳快递驿站,因为我无法直接越过它们将快递送到我家,但只要到了深圳快递驿站就一定能送到我家里,所以只能转交给北京快递驿站运送到深圳然后送到我家里。

端口映射与端口转发适用的情景:

如有三台主机:A、B、C,主机A跟主机B相连,主机B跟主机C相连,主机A可以跟主机B进行通信,而无法直接与主机C进行通信,但主机B又可以和主机C通信。所有这时候我们就可以通过端口映射或者端口转发,将来自主机A的数据通过主机B转发给主机C或通过主机B映射给主机C来进行通信。

可以设置端口映射与端口转发的常见设备:

端口转发:路由器,操作系统(比如windows、linux……)。

端口映射:软件(如花生壳这样软件),路由器。

在cmd中设置端口转发:

设置端口转发将主机192.168.1.1的远程桌面3389端口数据转发到主机192.168.2.1的13389端口。如外网可以访问主机192.168.1.1,无法访问内网主机192.169.2.1,但是192.168.2.1与192.168.1.1可以相互访问,那这时候就可以将来自外网的数据通过192.168.1.1转发给192.168.2.1。

cmd设置端口转发:(ps:在主机192.168.1.1中设置)
netsh interface portproxy add v4tov4 listenaddress=192.168.1.1 listenport=3389 connectaddress=192.168.2.1 connectport=13389

查看所有的端口转发:
netsh interface portproxy show all

删除端口转发
netsh interface portproxy delete v4tov4 listenaddress=192.168.1.1 listenport=3389

ps:因为现在运营商分配的家庭网络ip都不是真正的公网ip。怎么查自己的家里路由器的ip是不是公网ip呢?先查看自己的路由器ip是多少然后百度输入ip查询,如果百度查到的跟你路由器上的不一样就说明你的不是真正的公网ip!

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值