端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,使得一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。
简介端口映射与端口转发用于发布防火墙内部的服务器或者防火墙内部的客户端计算机,有的路由器也有端口映射与端口转发功能。端口映射与端口转发实现的功能类似,但又不完全一样。端口映射是将外网的一个端口完全映射给内网一个地址的指定端口,而端口转发是将发往外网的一个端口的通信完全转发给内网一个地址的指定端口。端口映射可以实现外网到内网和内网到外网双向的通信,而映射转发只能实现外网到内网的单向通信1。
功能因为某些原因,用户只能经过一个非安全的主机才能连接到一个安全的主机,在这种情况下,ssh提供了一个名为端口转发的功能。利用“端口转发”功能,用户就能够加强连接路由上非安全路段的安全性。用户需要做的只是简单地在非安全主机上指定一个端口,非安全主机将通过这个端口与安全主机建立连接。这就在本地主机和远程主机之间以那个非安全主机为跳板建立了一个直接的连接。用户可以对远程主机或者自己的本地主机上的端口设置端口转发功能。如果是把远程主机的一个端口转发到本地主机上的某个端口,需要使用ssh命令的-R选项,后面分别跟着本地端口、远程主机地址以及将要被转发的远程端口,彼此之间用冒号隔开。它的工作原理是分配一个套接字来监听远程方面的那个端口。只要有连接建立在这个端口上,该连接就会被转发到一个安全的通道上,也就建立起一个从本地机器到远程端口的连接。2
应用在网吧通过路由器或者代理连接到外网,而在内网建立和运行网络服务器或FTP服务器是没办法使外网用户直接访问的,通过在路由上的NAT开启建立相应端口转发的映射,你可以指示路由器转发对某一特定网端口(如80 ,为网络服务器或21为FTP服务器) 所有的信息为本地网络。 这意味着,如果一个外部主机试图通过HTTP访问外网的IP加相应端口,就可访问到相应的内网建立的服务器。 外部访问此服务器的用户并不知道服务器是处于内部网络上的。 这种方法被广泛应用于网吧或通过NAT共享上网在内网建立服务器的用户。公安监控系统即通过此方法来监控网吧数据的。 转发端口,比用其它方法更安全更易用, 企业内部可能有很多专业化的服务,比如 ERP 系统,监控系统, OA 系统, CRM 等等,用户不需要移植或者更新现有的服务而单独申请专用的外部IP地址,只需要简单的配置一下网关路由的端口转发功能,即可使互联网上的用户使用这些服务。端口转发一般常常用于虚拟机与宿主机之间通信时使用。最经常用的如:通过linux的ssh方式通信,本机端口转发连接VMware虚拟机。再者:VirtualBox NAT设置和端口转发等等。
有关术语端口映射
端口映射就是将外网主机的IP地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。端口映射有动态和静态之分。
通俗来讲,端口映射是将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机;利用端口映射功能还可以将一台外网IP地址机器的多个端口映射到内网不同机器上的不同端口。 端口映射功能还可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等协议。理论上可以提供65535(总端口数)-1024(保留端口数)=64511个端口的映射。
举例说明如何设置端口映射:例如要映射一台IP地址为192.168.111.10的WEB服务器,只需把服务器的IP地址192.168.111.10和提供web服务的TCP端口80填入到路由器的端口映射表中即可。
SSH
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
本词条内容贡献者为:
孙锐 - 教授 - 合肥工业大学