1. NAT:(Network Address Translation)是网络地址转换。

我们有这样一种场景,在专用网内部的一些主机本来已经分配到了本地IP地址,但现在又想和因特网上的主机通信,我们可以设法再申请一些全球IP地址,但是这个是不容易做到的,因为全球IPv4地址已经不多了,那么此时我们用的最多的就是使用网络地址转换技术。这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网相连。

举个例子,当专用网主机A向因特网主机B上发送IP数据报,比如源IP地址为192.168.0.3,目的IP地址为213.18.2.4,NAT路由器会把IP数据报的源IP地址转换为新的源IP地址172.38.1.5,然后转发出去,因此主机B收到IP数据报时,以为A的地址是172.38.1.5,当B给A发送应答的时候,IP数据报的目的地址是NAT路由器的IP地址172.38.1.5。B并不知道A的专用地址192.168.0.3,即使知道了,也不能使用。因为因特网的路由器都不转发目的地址是专用网本地IP地址的IP数据报。当NAT路由器收到因特网上的主机B发来的IP数据报时,还要进行一次IP地址的转换。通过NAT地址转换表,就可把IP数据报上的旧的目的IP地址172.38.1.5,转换为新的目的IP地址192.168.0.3。

工作原理:

当内部网络中的一台主机想传输数据到外部网络时,它先将数据包传输到NAT路由器上,路由器检查数据包的报头,获取该数据包的源IP信息,并从它的NAT映射表中找出与该IP匹配的转换条目,用所选用的内部全局地址(全球唯一的IP地址)来替换内部局部地址,并转发数据包。当外部网络对内部主机进行应答时,数据包被送到NAT路由器上,路由器接收到目的地址为内部全局地址的数据包后,它将用内部全局地址通过NAT映射表查找出内部局部地址,然后将数据包的目的地址替换成内部局部地址,并将数据包转发到内部主机。

2. 代理服务器

所谓“代理”,就是代而劳之的意思。代理服务器就是代理网络用户去取得网络信息,形象的说:它是网络信息的中转站,使得一个网络终端和另一个网络终端不直接进行相连,代理网络用户去取得信息。主要工作在OSI的会话层中。

一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接或者获得目标服务器的指定资源(如文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至缓存,如果客户端索要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接返回了缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。代理服务器的选项和设置在计算机程序中,通常只包括一个“防火墙”,允许用户输入代理地址,他会这该他们的网络活动,可以允许绕过互联网过滤实现网络访问。

代理服务器(Proxy Server)是Internet链路级网关所提供的一种重要的安全功能,主要的功能有:

1.突破自身IP访问限制,访问国外站点。教育网,过去的169网等。2.提高访问速度:通常代理服务器都设置了一个较大的硬盘缓冲区,当有外界的信息通过的时候,同时也将其保存在缓冲区中,当其他用户在访问相同的信息时,则直接有缓冲区取出信息,传给用户,以提高访问速度3.链接内网与Internet,充当防火墙:因为所有的内部网用户通过代理服务器访问外界时,只映射一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限4.节省IP开销:代理服务器允许使用大量的伪IP地址,节约上网资源,即代理服务器可以减少对IP地址的需求,对于使用局域网方式接入Internet,如果为局域网(LAN)内的每一个用户都申请一个IP地址,其费用可想而知。但使用代理服务器之后,只需代理服务器上有一个合法的IP地址,LAN内其他用户可以使用10.*.*.*这样的私有IP地址,这样可以节约大量的IP,降低网路的维护成本。5.隐藏真实IP:上网者可以通过这种方式隐藏自己的IP,以免受到攻击;6.设置用户验证和记账功能,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。

[Linux]NAT和代理服务器相关推荐

  1. 10个关于linux中Squid代理服务器的实用面试问答

    10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到"代理服务器"这个词,我们也经常听到.代理服务器已经成为一种企业常态,而且经常会接 ...

  2. linux ip_conntrack_max,解?Linux NAT ip_conntrack: table full的方法

    解?Linux NAT ip_conntrack: table full的方法 发布时间:2007-09-07 00:28:48来源:红联作者:DominSer 原本Linux NAT用得好好的,没想 ...

  3. VMware虚拟机 linux NAT网络模式下 网关地址默认为192.168.1.2

    VMware虚拟机 linux NAT网络模式下 网关地址默认为192.168.1.2   默认0-2端口都被占用 不能将网关地址强制设置为192.168.1.1       因为.1被占用 网关地址 ...

  4. 网络地址转换NAT和代理服务器

    网络地址转换NAT 首先我们讨论一种实际情况,在专用网内部一些主机已经分配到本地IP 地址(仅限在本地网络内使用),又想访问互联网,可以采取 什么措施呢? 最简单的办法就是多申请一些全球IP地址,但是 ...

  5. linux nat软件,linux下nat的应用(转)

    linux下nat的应用(转) 随着Linux的应用普及,Linux在网络方面的强大逐步为大家所认识,越来越多的单位选择使用Linux来作为服务器的操作系统.今天笔者想就Linux在校园网NAT方面的 ...

  6. Linux NAT网络连接权威指南

    [1]准备工作,写在前面 1.1)检查服务(cmd>>services.msc,我用的是VM) 1.2)确保Vmnet8 连接处于启动状态 + 获取ipv4(ipv6)地址 (在网络连接不 ...

  7. NAT技术代理服务器

    一.NAT ★什么是NAT 网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用 ...

  8. centos代理服务器搭建(linux搭建http代理服务器)

    centos 7怎么配置代理服务器 1.全局的代理设置: vi/etc/profile 添加下面内容 http_proxy= :password@yourproxy:8080/ ftp_proxy= ...

  9. NAT和代理服务器解析

    代理服务器是一个服务器,它作为一个中介用于从请求客户端从其他服务器寻求资源.客户端连接到代理服务器,请求一些服务,如一个文件,连接,网页,或可从不同的服务器和代理服务器等资源评估的要求,以此来简化和控 ...

最新文章

  1. 【Python-ML】SKlearn库性能指标ROC-AUC
  2. 三角形分类(洛谷P5717题题解,Java语言描述)
  3. Android桌面悬浮窗仿QQ手机管家加速效果
  4. Spring的junit4测试集成
  5. 阶段3 1.Mybatis_09.Mybatis的多表操作_6 分析mybatis多对多的步骤并搭建环境
  6. 如何在magento后台增加一个自定义订单状态
  7. 【HDU3336】Count the String(kmp--每个前缀出现的次数)
  8. Linux查看JDK版本和安装位置
  9. Halcon教程十:把Halcon程序放入WPF程序里
  10. [KALI] 开启ssh远程连接
  11. JVM - 【字符串常量池】-XX:StringTableSize
  12. 计算机视力集合训练程序,【视觉训练】集合功能训练的方法及步骤
  13. tfs管理java代码_TFS2010 版本控制权限设置
  14. logstash~filter.mutate插件使用教程(附带示例)
  15. 灵活高效可支撑复杂业务系统的BPM平台
  16. Percentile
  17. android实现天气预报App(0)
  18. 仿朋友圈图片查看功能
  19. Insomnia的下载
  20. JS 内存泄漏与垃圾回收机制

热门文章

  1. MS SQL 分页存储过程
  2. [转]我是如何走进黑客世界的?
  3. VisualVM介绍使用
  4. ubuntu下如何查找某个文件的路径
  5. node.js基础:数据存储
  6. ComboBox联动
  7. java gson fromjson,Gson的fromJson()方法
  8. 计算机英语阅读路线,高考英语阅读理解真题解析·计算机运用
  9. python做自动化如何定位动态元素_python-web自动化-元素定位
  10. nagios check_mysql uptime_nagios使用check_mysql监控mysql