跳到主要内容

浅说代理Proxy

本文只讲解科学知识。 我这里也不好贴出参考资料......至于原因你们懂得。

创建一般情况下的网络环境(不使用代理)

一般来讲,我们在运营商购买了宽带之后,都会配备到一个光猫(光调制解调器)。它严格意义上不是路由器,当然也有路由光猫这种调制解调和路由二合一的器件,在此我们只讨论光猫的功能.宽带送过来的信号是光纤传送的光信号,用光猫调制解调。

光猫下连接路由器.路由器一面向外,一面向内,向外那边是处理外网的网络请求,通过PPPOE拨号获取运营商分配的公网IP。向内则处理所处局域网的.路由器是所处局域网的网关,网关是一个复杂的网络互联设备,实现内网和外网互联(我们以后会探讨它的技术原理)。所以它不仅有外网IP(WAN),还有自己的内网IP(LAN)。

内网,即局域网,所有的设备若需要连接公网,必须通过网关这一关,局域网内所有的设备都需要连接这个网关(一般就是路由器IP)。路由器通过DHCP(动态主机配置协议)分配给这些设备默认网关、IP地址和DNS等信息。

设备若想访问外网需经过这一过程: 在TCP、IP模型下,浏览器试图访问百度,需要封装数据包,这个动作由网络协议栈自顶向下一层层完成:应用层封装成HTTP数据包,下送到传输层进行TCP封装,其中包含源端口和目标端口;接着下送网络层,加上源IP和目标IP;下送网络接口层封装源MAC地址和目的MAC地址,将数据包从物理网口发送到默认网关(路由器),这一过程依赖局域网环境中的物理网线.

路由器对数据包进行NAT处理,将数据包的内网IP替换为运营商分配的公网IP,发包至互联网中的路由器转发,最终百度服务器将从网口收到数据包,在网络协议栈中进行自下向顶的解封装,得知局域网设备的意图是访问百度。于是百度也回发数据包,经过上述同样的封装过程发回。局域网路由器将公网IP转换为内网IP,发回该设备,解封装,设备就能看到百度的网页内容.

系统代理

常见的代理软件有什么,咳咳,我就不说了......http和很多软件都能帮我们走代理。走代理的时候选择自动配置系统代理或直接启用系统代理,根据分流规则(亦可自定义)确定访问某些网站的时候需要走代理,并根据代理服务器IP使用协议应用层上加密封装数据。那么又回到我们熟悉的网络协议栈,自顶向下依次是请求设备根据协议加密数据————封装端口————封装IP—————封装MAC地址————发给路由。路由接下来会发给代理服务器转发给请求网站。发回数据包时我们同样需要通过代理软件解密发回浏览器。

并非所有软件都能设置系统代理,且一般都是HTTP代理。一般的浏览器一般也会允许设置代理,像Windows各版本,Linux内核系统也都允许设置。

那么遇到软件无法设置系统代理的情况又有必需需求,我们就需要走一下TUN/TAP代理。这里不详细展开,具体教程可在某英文视频网站找到:).