`

端口映射让外部用户同时访问内部多个应用

 
阅读更多

端口映射让外部用户同时访问内部多个应用

 

如下图所示,这是企业部署 NAT 服务器的典型案例。如果现在企业内部有两台服务器,分别为 WEB 服务器 (192.168.0.3) ERP 服务器 (192.168.0.2) 。现在企业想让出差在外的员工,也可以通过互联网访问企业内部的这两个应用,该如何设计呢 ?

 

    一、基于端口访问的一般原理。

  在讲解 NAT 服务器的具体端口映射配置之前,笔者觉得读者有必要先了解一下基于端口访问的一般原理。这有利于读者了解下面的具体配置。下面笔者以员工访问 WEB 服务器为例,谈谈基于端口访问的基本步骤。假设现在某个用户需要访问 WEB 服务器,则客户端的浏览器 ( 假设采用的端口为 3000) WEB 服务器 ( 假设采用的端口为 80) 是如何来进行通信的呢 ?

  第一步:发起连接请求。当用户需要查看公司网页时,用户所用的主机会像 WEB 服务器发送请求。在这个发起请求的过程中,会有一些参数传递。如在发送请求的过程中,用户所用的主机需要知道 WEB 服务器的 IP 地址、所采用的协议 (HTTP) 等。另外就是两个端口信息。一是用户浏览器所用的端口,即为 3000 。二是 WEB 服务器网站所用的端口 ( 如果采用的是 HTTP 服务,则默认为 80 端口 )

  第二步: WEB 服务器转发请求。当服务器接受到这个请求后,会分析数据包。他经过分析包发现,这个请求是要求端口为 80 的应用软件来负责的。服务器确定了负责人之后,就会把这个请求转发给具体的负责人,即 WEB 应用服务器来处理。

  第三步:服务器会把从 WEB 应用服务那边反馈回来的网页传送给用户所用的计算机。在传送的时候,其也会制定要把这个网页给你的那个 3000 端口 ( 浏览器 ) 对应的应用软件。

第四步:用户的计算机收到数据包之后,也会对这个数据包进行分析,来判断需要把这个数据包转发给哪个端口 ( 应用服务 ) 。分析后发现是转交给 3000 端口的,就会把这个数据包转发给浏览器。

 

  二、基于端口映射的 NAT 服务器配置。

  其实基于端口映射的 NAT 服务器其工作原理就跟上面这个基于端口访问的工作过程类似。只是这里的 NAT 服务器就相当于用户主机,而用户相当于内部的服务器。由于用户需要通过外网访问企业内部应用的话,通常情况下要求内网服务器也要求有合法的外网 IP 。只有私网 IP 地址的服务器是无法直接跟外部客户进行通信的。为此,如果没有端口映射的话,用户如果要同时访问内部的 WEB 服务器与 ERP 服务器,则就需要有两个公网 IP 地址。但是,大家都知道现在公网 IP 地址严重缺乏。在没有足够多的 IP 地址的情况下,该如何实现这种需求呢 ? 那就知道通过端口映射来完成。

  如上图所示,用户需要访问企业内部的 WEB 服务与 ERP 服务器,他只需要知道 NAT 服务地址与 WEB 服务器与 ERP 服务器所采用的端口即可。如果 WEB 服务器采用的端口为 80 ,而 ERP 服务器所采用的端口为 5050 。而 NAT 服务器的 IP 地址假设为 202.96.92.100 的话,那么当用户访问 WEB 服务器时,只需要输入 http:// 202.96.92.100 即可。由于 HTTP 协议默认采用的是 80 端口,故这里不用配置端口号。如果 WEB 服务器中把这个端口改为了 3000 ,则在访问的时候就需要使用 http:// 202.96.92.100:3000( 地址 + 端口号 ) 的形式了。用户要访问内部的 ERP 服务器也是类似的,只要把 NAT 服务器的地址以及 ERP 服务器所采用的端口在客户端上进行配置即可。

  可见通过 NAT 服务器的端口映射功能,可以让外部用户同时访问企业内部的 WEB 服务器与 ERP 服务器。那要实现这个需求具体该如何配置呢 ?

   NAT 服务器让内部的局域网用户可以连接到互联网,以便用户能够收发互联网邮件、浏览互联网上的网站等等。但是默认情况下外部用户是不能够访问内部的服务器。如果需要实现以上功能的话,就需要进行专门的配置。

  如上图中,内部局域网计算机 (192.168.0.2) WEB 服务器,其采用的端口为 80 。如果现在外部用户需要访问这个 WEB 服务器站点,则用户只知道这个 WEB 服务器的地址为 202.96.92.100(NAT 服务器的地址 ) 。而 WEB 服务器默认采用的端口为 80 。当外部用户通过浏览器访问企业内部的 WEB 服务器时,他会在浏览器中输入 http:// 202.96.92.100 路经来连接网站。 NAT 服务器会将此请求发送给内部的计算机 WEB 服务器 (192.168.0.2) ,并由 WEB 服务器将这个请求转发给端口为 80 的软件来负责。 WEB 服务器会将网页传送给 NAT 服务器,再由 NAT 服务器负责将网页传送给外部用户的计算机。如果用户要访问内部的 ERP 服务器,其过程也是如此。那么现在的问题是, NAT 服务器怎么判断要把用户 HTTP 请求发送给服务器 (192.168.0.2) 而不是发送给 (192.168.0.3) ?

这主要是根据端口来判断的。也就是说在 NAT 服务器中有一个端口映射的规则,只要用户访问的目的端口是 80 ,就把这个请求转发给 WEB 服务器 ; 若请求的端口是 5050 ,则就把这个请求发送给 ERP 服务器。这就是端口映射的实质。了解这个内容之后,那么了解下面的配置也就简单多了。

打开路由和远程访问主控制窗口,选择要配置的服务器。然后选择 IP 路由选择、 NAT/ 基本防火墙。并双击右方对外连接的网络接口 ( 注意这里不要选择连接内网的网络接口 ) ,选择服务和端口标签。然后直接从服务列表中选取要对外开发的服务,如选择 WEB 服务器。在公用地址中选择在此接口,表示由互联网服务提供商指派的 NAT 服务器的公网 IP 地址。然后再设置,如果把这个服务请求转发给内部的 IP 地址为 192.168.0.2 WEB 服务器。通过这个简单的配置,就实现基于端口的映射。

    三、改善 NAT 服务器的性能与便利性。

  可见这个端口映射配置是很简单的。但是其难点在于如何提高这个 NAT 服务器的性能,如何让用户使用的更加方便。这是网络管理员所需要考虑的。对此笔者有如下几个建议可供大家参考。

   1 、利用域名来代替 IP 地址。当用户访问企业内部的网站服务器时,如果让他们输入服务器的 IP 地址,对普通用户来说可能有点难度。要记住这 202.96.92.100 十一个没有丝毫关系的数字有很大的难度。如果能够把这个 IP 地址转换为有实际意义的网址那就最好了。在企业内部,可以自己部属一个 DNS 服务器,把 IP 地址转换为网址。那么内部员工可以直接通过网址来访问 WEB 服务器。但是在互联网上,企业可不能自己随便定义域名。为了提高用户访问的便捷性,企业网络管理员最好能够像当地的域名注册机构,申请一个合适的域名并关联到自己的 NAT 服务器公网 IP 地址。那么以后外部用户访问内部 WEB 服务器时,只需要输入像新浪那样的地址就可以了。而不用输入这些难以记忆的地址。

   2 、如果企业可以申请到多个 IP 地址的话,那么最好能够分开来部署。即企业可以申请两个 ADSL 帐号。其中一个专门用来连接内部的服务器 ; 而另外一个用来内部员工跟互联网的通信。这么做主要是为了减轻 NAT 服务器的压力,提高其性能。如企业只有一个 ADSL 帐号的话,那么无论是外部用户访问企业内部服务器 ; 还是企业内部员工访问互联网,其数据流都要通过这台 NAT 服务器来处理。为此,如果企业数据流量比较大或者 NAT 服务器配置不怎么理想的话,那么很可能这个 NAT 服务器就成为了企业网络访问的瓶颈资源。如果把他们分开,则可以减轻 NAT 服务器的压力,提高外部用户访问企业内部服务器的效率。

   3 、配置合适的 ICMP 数据包策略,以加强阻挡黑客利用 ICMP 的攻击行为。使用 ICMP 攻击的原理实际上就是通过 Ping 大量的数据包使得 NAT 服务器的 CPU 使用率居高不下而崩溃。一般情况下黑客通常在一个时段内连续向计算机发出大量请求而导致 CPU 占用率太高而死机。而且会使用多台肉鸡同时向 NAT 服务器发送数据包。基于 ICMP 的攻击可以分为两大类,一是 ICMP 攻击导致拒绝服务 ; 另外一个是基于重定向的路由欺骗技术。无论是哪一类攻击,都会给 NAT 服务器产生致命的影响。为此为了 NAT 服务器的安全,最好配置合适的 ICMP 包策略。如可以拒绝响应别人的 ICMP 请求。如此攻击者就无法对 NAT 服务器发起 ICMP 攻击了。

 

分享到:
评论

相关推荐

    路由器端口映射 端口映射

    端口映射是网络连接中的一个重要概念,尤其在家庭或小型办公室网络环境中,它对于实现外部访问内部网络服务,如远程桌面、FTP服务器、在线游戏等具有关键作用。本文将详细探讨路由器端口映射的相关知识,包括其原理...

    端口映射工具 游戏私服 网站必备工具

    综上所述,端口映射工具在游戏服务器和私人网站的运营中扮演着重要角色,它使得内部网络的服务能够被外部用户访问,同时提供了管理和保护内部网络的安全手段。正确理解和使用这种工具,能有效提升网络服务的可用性和...

    ros端口映射和回流详解

    例如,在建立一个CS服务器时,如果其IP地址是192.168.0.235,端口为27015,要让外部用户能够访问,就需要在路由器上配置端口映射,将外网的某个端口(比如8080)映射到这个内网IP和端口。 在ROS 2.96中,进行端口...

    好用的端口映射工具

    2. **多端口映射**:一些高级的端口映射工具支持同时映射多个端口,这可以方便地管理并提供多个服务。 3. **动态端口映射(端口转发规则)**:对于动态IP地址的家庭用户,通过动态DNS服务结合端口映射工具,可以...

    Windows端口映射实现外网访问内网 端口映射.doc

    Windows端口映射是一种将内部网络中的某台机器对外部提供服务的技术,可以让外网用户访问内部网络中的特定服务,如WWW服务、FTP服务等。通过端口映射,可以将内部网络中的机器隐藏在外部网络中,提高网络安全性。 ...

    局域网的端口映射工具

    4. **多设备管理**:对于有多个内部设备需要映射的情况,端口映射工具可以管理多个端口映射规则,为每个设备或服务指定不同的端口。 5. **远程访问**:端口映射工具也能帮助用户从外部网络访问家中的服务器,例如...

    用于设置端口映射的工具

    端口映射是一种网络技术,它允许用户将一个或多个外部网络端口的连接重定向到内部网络中的不同端口,通常用于访问位于内网的服务器或者服务。这个压缩包文件包含了一个名为“映射工具”的实用程序,可能是用于帮助...

    端口映射器,绿色免安装注册版

    2. 批量映射:对于需要同时管理多个端口映射的情况,端口映射器支持批量设置,节省了大量的配置时间。 3. 绿色软件:无安装步骤,不占用系统资源,方便携带和使用,同时避免了可能的系统冲突问题。 4. 注册版:虽然...

    stone23xp 端口映射工具

    端口映射是网络技术中的一个重要概念,它允许一台机器上的多个服务共享一个或多个网络连接,通过将不同服务的监听端口映射到不同的逻辑端口,使得外部请求可以根据目标端口找到相应的服务。"stone23xp 端口映射工具...

    TCP端口映射器程序小巧端口映射极简单

    TCP端口映射是网络通信中的一个重要概念,它允许一台机器上的多个服务通过不同的端口号对外提供服务。在本文中,我们将深入探讨TCP端口映射的原理、用途以及如何使用小巧的TCP端口映射器程序进行端口映射。 首先,...

    c++实现的端口映射

    首先,端口映射允许内网设备通过共享的公网IP地址访问互联网,同时让外网可以访问到内网中的特定服务。这在家庭和企业网络环境中非常常见,因为大多数ISP分配的都是动态或单一的公网IP。端口映射通过将外部网络请求...

    2003 路由与远程访问端口映射

    NAT代理使得内部网络能够共享公网IP上网,而端口映射则允许我们对外发布内部服务器的应用和服务,这对于中小型企业来说是一种经济且实用的解决方案。正确配置和使用这些功能,可以有效地提升网络效率和安全性,同时...

    简单好用的端口映射器

    端口映射是一种网络技术,它允许通过一个公共或外部IP地址访问到内部网络中的特定设备或服务。这种技术在很多场景下非常有用,比如在家庭网络中运行服务器,或者在公司环境中对外提供内部服务。标题提到的"简单好用...

    手动端口映射操作说明

    端口映射是一种网络技术,它允许外部网络通过一个特定的端口号访问内部网络中的某台设备或服务。这项技术常用于解决内网设备无法被外网直接访问的问题。端口映射可以通过路由器实现,将外网IP地址和端口号映射到内网...

    端口映射端口转发的c#代码

    端口映射,又称为端口转发,其基本原理是将一个外部端口的流量重定向到内部网络的一个或多个不同端口上。这种技术在多种情况下很有用,例如: 1. **NAT穿透**:当设备位于NAT(网络地址转换)背后时,端口映射允许...

    端口映射 v1.0

    端口映射技术在日常的网络应用中非常重要,尤其对于那些需要从互联网访问内网资源或者希望在多个设备间共享服务的用户。使用"端口映射 v1.0"这样的工具,可以有效地解决网络环境中的访问限制,提高网络服务的可用性...

    windows端口映射软件.rar

    总的来说,tcpmapping202作为一款便捷的端口映射工具,可以帮助Windows用户轻松地管理网络服务的访问,使得内部网络资源能够更好地与外部世界交互。通过学习和掌握端口映射的概念及工具的使用,不仅可以提升工作效率...

    端口映射工具

    端口映射的核心在于NAT,它允许有限的公网IP地址为多个内部网络设备提供服务。通过端口映射,一台拥有公网IP的路由器可以将来自外部的请求转发到内网中没有公网IP的设备上。例如,如果你在家中运行一个Web服务器,但...

    delphi编写的端口转发,端口映射的例子

    通过端口映射,可以为每个设备分配一个唯一的外部端口,这些端口映射到同一内部FTP服务器,从而实现多个设备同时使用同一服务。 在Delphi中实现端口转发和端口映射,我们需要使用网络编程库,如 Indy 或 Synapse。...

Global site tag (gtag.js) - Google Analytics