端口转发#
端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。
在网吧通过路由器或者代理连接到外网,而在内网建立和运行网络服务器或FTP服务器是没办法使外网用户直接访问的,通过在路由上的NAT开启建立相应端口转发的映射,你可以指示路由器转发对某一特定网端口(如80 ,为网络服务器或21为FTP服务器) 所有的信息为本地网络。 这意味着,如果一个外部主机试图通过HTTP访问外网的IP加相应端口,就可访问到相应的内网建立的服务器。 外部访问此服务器的用户并不知道服务器是处于内部网络上的。 这种方法被广泛应用于网吧或通过NAT共享上网在内网建立服务器的用户。公安监控系统即通过此方法来监控网吧数据的。
端口映射#
端口映射是NAT的一种,功能是把在公网的地址转翻译成私有地址, 采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。
端口映射就是将外网主机的IP地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。端口映射有动态和静态之分。
通俗来讲,端口映射是将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机;利用端口映射功能还可以将一台外网IP地址机器的多个端口映射到内网不同机器上的不同端口。 端口映射功能还可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等协议。理论上可以提供65535(总端口数)-1024(保留端口数)=64511个端口的映射。
VMware端口映射#
Vmware 虚拟机设置主机映射端口
需求: 在一个局域网中通过 Vmware 使用NAT模式创建了一个虚拟机(Linux服务器),实现局域网中所有的主机都能够访问
应用场景: 一个开发团队在同一个局域网中进行开发,每个人电脑都是 Windows 系统,但是一般服务器是Linux系统,因此一般开发者需要在自己的电脑中安装一个虚拟机,但是虚拟机一般使用 NAT模式创建,但是该模式下,虚拟机可以访问局域网的其他用户,其他用户却不能访问虚拟机,因此如果其他用户想要访问虚拟机,则可以通过端口映射的方式实现(使用桥连接的方式创建则不会出现以上问题,但是会占用局域网中的 ip 资源,个人认为不建议这么做)
实现步骤:
1 Vmware 虚拟网络设置
打开 Vmware — 点击「编辑」— 选择「虚拟网络编辑器」
在弹出框选择「NAT模式」 — 点击「更改设置」— 点击之后可以根据自己需要修改虚拟机网关
点击「NAT模式」— 选择「NAT设置」
在「端口转发」下边选择「添加」
添加端口,然后进行保存
2 通过映射的端口进行连接测试
端口连接测试
SSH 连接: ssh root@localhost -p 10022
登录之后查看 ip: ip addr
3 主机防火墙开放端口
同时按 Win + R ,输入 control 进入控制面板
选择「系统和安全」
选择「防火墙」设置
选择左侧的「高级设置」
进入防火墙的「高级设置」之后,选择「入站规则」,然后点击「新建规则」
选择「端口」
选择「TCP」— 选择「特定本地端口」,并填写端口(需要和前边 Vmware 中设置的一致)
给新建的规则起名
到这里,端口映射已经设置完毕
4 局域网中其他用户进行连接测试
下图为作者通过 ipad 连接测试,10066 端口为主机映射的虚拟机 tomcat 的 8080 端口
5 关于 win 10 可能出现的问题
如果你是 win 10 系统,即使全部按照上边的操作,可能还是连接不上,那是因为:
win 10 系统默认不允许同一局域网中各用户之间进行连接(即同一局域网中的用户相互之间 ping 不通)
需要进行一下防火墙的设置
还是在防火墙的「高级设置」面板
在「入站规则」和「 出站规则」中打开以下选项
文件和打印机共享(回显请求-ICMPv4-….)
端口映射和端口转发的区别#
转发与映射,按理解意思,是用不同的方法实现同样的目标。
端口转发:你给我了,我打开看看,发现这上面标志显示是要给张三,那么我就给张三去。如果标志是给李四,那我就再给李四去。
端口映射:你放到我左手,我就直接给张三;你放到我右手,我就直接给李四。这中间我不管你放我手上的是什么东西。
转发的重点在“转”上面。送快递的过来,把所有快递都交给门口保安,保安再根据每件快递上的收件人来分发。映射,就是在大门口给每个人装个柜子,送快递的直接按收件人名字,把快递放到对应的柜子里面。
就是做端口映射的。端口映射对于不专来的人来说,可能很难懂。说白了就是你在你的本机做个网站,怎么才能让所有人都能访问呢?你可以通过做个端口映射,把你本地的80端口映射出去。因为你如果是拨号的话,本机IP地址是私网IP,在INTERNET上私网IP是不能直接被传输的。所以要有公网IP别人才能访问你的网站。你现在拨号,拨通后运营商就会给你分一个公网IP地址,这样别人就可以通过这个公网IP访问你的网站了。说的了就是别人访问你的网站,先通过访问路由器上的80端口。因为路由器上是不能做网站的,然后路由器再把这个请求传送到你本机。就是这样。实现一个端口的对接。