基础储备----代理服务器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BraveLoser/article/details/82252853

1. 前言

在公司里开发, 一般是在内网环境中, 所以经常会遇到一些网络相关的问题以及代理服务器的配置, 这篇文章主要是记录代理服务器及其相关的知识.

2. 代理服务器

2.1 什么是代理服务器?

代理服务器(Proxy Server)是互联网上提供转接功能的服务器, 在一般情况下, 我们使用网络浏览器直接去连接其他Internet站点取得网络信息时, 是直接联系到目的站点服务器, 然后由目的站点服务器把信息传送回来. 代理服务器是介于客户端和Web服务器之间的另一台服务器, 有了它之后, 浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求, 信号会先送到代理服务器, 由代理服务器来取回浏览器所需要的信息并传送给你的浏览器.
比如你想访问的目的网站是A, 由于某种原因你不能访问到网站A或者你不想直接访问网站A(这样通过代理服务器网站A, 对网站A而言可以隐藏你自己的身份, 也就是不知道是谁访问的网站, 而认为是代理服务器访问的), 此时你就可以使用代理服务器, 在实际访问网站的时候, 你在浏览器的地址栏内和你以前一样输入你要访问的网站, 浏览器会自动先访问代理服务器, 然后代理服务器会自动给你转接到你的目标网站.

2.2 代理服务器的工作原理

当用户在浏览器中设置好Proxy Server后, 你使用浏览器访问所有WWW站点的请求都不会直接发给目的主机, 而是先发给代理服务器, 代理服务器接受了客户的请求以后, 由代理服务器向目的主机发出请求, 并接受目的主机的数据, 存于代理服务器的硬盘中, 然后再由代理服务器将客户要求的数据发给客户.
代理服务器工作原理

2.3 代理服务器的角色和工作过程

代理服务器是为了减少长距离的传送而诞生的. 它不仅可以代理客户端向服务器端提出请求, 也可以代理服务器传给客户端所需要的数据。
当客户端对服务器端提出请求时, 此请求会被送到代理服务器, 然后代理服务器会检查本身是否有客户端所需要的数据. 如果有, 代理服务器便代替服务器将数据传给客户端. 而代理服务器一般都是设置距自己传输距离较近的某台代理服务器, 所以它传数据给客户端的速度会比从远程服务器传数据要快.
如果代理服务器没有客户端所请求的数据, 它会去服务器获取所需的数据. 在代理服务器从服务器端取得数据传给客户端时, 自己保存一份, 待下次如果有用户提出相同的请求时, 便可以将数据直接传过去, 而不需要再去服务器端获取了.

2.4 代理分类(基于用途)

代理的分类有很多, 说白了就是基于不同的协议和具体实现, 有不同类型的代理, 但是从本质上看, 原理和工作过程是类似的.
Http代理: 代理客户机的http访问, 主要代理浏览器访问网页, 它的端口一般为80, 8080, 3128等.
SSL代理: 支持最高128位加密强度的http代理, 可以作为访问加密网站的代理. 加密网站是指以https://开始的网站. ssl的标准端口为443.
HTTP CONNECT代理: 允许用户建立TCP连接到任何端口的代理服务器, 这种代理不仅可用于HTTP, 还包括FTP, IRC, RM流服务等.
FTP代理: 代理客户机上的ftp软件访问ftp服务器, 其端口一般为21, 2121.
POP3代理: 代理客户机上的邮件软件用pop3方式收邮件, 其端口一般为110.
Telnet代理: 能够代理通信机的telnet, 用于远程控制, 入侵时经常使用. 其端口一般为23.
Socks代理: 是全能代理, 就像有很多跳线的转接板, 它只是简单地将一端的系统连接到另外一端. 支持多种协议, 包括http, ftp请求及其它类型的请求. 它分socks 4和socks 5两种类型, socks 4只支持TCP协议而socks 5支持TCP/UDP协议, 还支持各种身份验证机制等协议. 其标准端口为1080.
TUNNEL代理: 经HTTPTunnet程序转换的数据包封装成http请求(Request)来穿透防火墙, 允许利用HTTP服务器做任何TCP可以做的事情, 功能相当于Socks5.
文献代理: 可以用来查询数据库的代理, 通过这些代理, 可以获得互联网的相关科研学术的数据库资源, 例如查询Sciencedirect网站(简称SD), Academic Press, IEEE, SPRINGER等数据库.
教育网代理: 指学术教育机构局域网通过特定的代理服务器可使无出国权限或无访问某IP段权限的计算机访问相关资源.
跳板代理: 应用于跳板程序, 可以看作一种具有动态加密的特殊socks5代理, 也可直接用于PSD软件. 其端口一般为1813.
Ssso代理: 代理客户机上的ssso程序访问远程网站, 具有SSL加密强度的超级代理, 支持socks.
Flat代理: 代理客户机上的flatsurfer程序访问远程网站, 具有高强度加密数据流的特殊代理, 支持socks, 最大可设置三次级联, 可以设置穿越代理. 其端口一般为6700.
SoftE代理: 代理客户机上的SoftEther程序访问远程网站, 应用虚拟集线器HUB和虚拟网卡技术, 具备VPN功能及多种认证方式的代理, 符合https协议.

2.5 网络代理种类

包括透明代理, 匿名代理, 混淆代理, 高匿代理.
这4种代理, 主要是在代理服务器端的配置不同, 导致其向目标地址发送请求时, REMOTE_ADDR, HTTP_VIA, HTTP_X_FORWARDED_FOR三个变量不同.

2.5.1 透明代理(Transparent Proxy)

REMOTE_ADDR = Proxy IP
HTTP_VIA = Proxy IP
HTTP_X_FORWARDED_FOR = Your IP

透明代理虽然可以直接“隐藏”你的IP地址, 但是还是可以从HTTP_X_FORWARDED_FOR来查到你是谁.

2.5.2 匿名代理(Anonymous Proxy)

REMOTE_ADDR = proxy IP
HTTP_VIA = proxy IP
HTTP_X_FORWARDED_FOR = proxy IP

匿名代理比透明代理进步了一点: 别人只能知道你用了代理, 无法知道你是谁.

2.5.3 混淆代理(Distorting Proxies)

REMOTE_ADDR = Proxy IP
HTTP_VIA = Proxy IP
HTTP_X_FORWARDED_FOR = Random IP address

如果使用了混淆代理, 别人还是能知道你在用代理, 但是会得到一个假的IP地址, 伪装的更逼真.

2.5.4 高匿代理(Elite proxy或High Anonymity Proxy)

REMOTE_ADDR = Proxy IP
HTTP_VIA = not determined
HTTP_X_FORWARDED_FOR = not determined

可以看出来, 高匿代理让别人根本无法发现你是在用代理, 所以是最好的选择.

3. NAT

NAT: network address translation(网络地址转换)
通过在专用网连接到互联网的路由器上安装NAT软件, 这种NAT路由器至少保证一个有效的全球IP地址, 这样子一来, 只需要将本地地址转化为全球IP地址即可和因特网通信.
NAT路由器工作原理
NAT路由器工作原理

4. 参考链接

https://blog.csdn.net/bzhxuexi/article/details/16860175
https://blog.csdn.net/qq_36221862/article/details/73159223
https://blog.csdn.net/u010173255/article/details/53236401
https://blog.csdn.net/a19860903/article/details/47146715
https://blog.csdn.net/xy913741894/article/details/73477143

猜你喜欢

转载自blog.csdn.net/BraveLoser/article/details/82252853
今日推荐