Proxy的常见使用—正向代理的使用及配置总结

前言前面提到了proxy是什么，今天就来着重讲解为什么使用正向代理，以及怎么使用。反向代理日常中使用的比较少，所以就放到后面去讲。正向代理根据部署的方式又分为：显式代理、透明代理。显式代理：相对来说就是能感知得到的，需要人为去配置代理才能去使用。抓包流量可以看见你的访问流量都是去跟代理服务器访交互的。其次显示代理也存在一些局限性，部分不支持代理的软件就不能很好的去支持。其次显示代理也分为常见的HTTP(s)代理、Socks(4/5)代理。透明代理：主打无感知不需要用户去手动设置，就是用户基本不知道自己使用了代理，这种代理一般都是部署在网关节点上的，类似于NAT但是又具有Proxy的功能，和上网行为管理设备相似，但是透明代理的缺点就比较明显，受场景覆盖限制，且无法自主选择网络出口。一、使用场景隔离网访问互联网场景：统一访问途径：内网与互联网隔离后，在DMZ区部署代理服务器，开放proxy服务器服务端口，终端配置显式代理访问互联网，完成统一访问互联网的方式。外网访问管控：采用认证+授权访问的方式赋予不同用户不同访问权限，实现精确管控。访问日志记录：记录访问用户日志定期归档，在有效期内可对威胁有害行为进行回溯追踪。网络出口多样性：多台proxy服务器选用不同网络出口或者运营商网络（如果企业上云，可选择的互联网出口更多），将代理服务器地址下放到用户，给用户多样性选择。企业网络高可用：采用多台proxy组网，当某个节点出现问题时，可切换到可使用的网络，即使网络变更，影响范围相对于传统主干故障小之又小。互联网通讯场景：网络加速：GitHub加速、Google学术查论文、海淘等。固定访问IP：浮动IP场景下可通过固定proxy访问某些敏感地址变化的业务（减少风控）。二、如何使用及配置 Windows配置方法 1、通过系统设置配置显示代理，填写对应的代理服务器地址及端口，如果是http代理可以缺少协议头，如果是其它代理务必把协议头带上。 2、通过IE浏览器设置代理：ie浏览器-设置-Internet选项-连接-局域网设置，配置代理。 Linux配置方法编辑 vi /etc/profile 文件，看是否有配置代理，如果没有则新增对应的代理信息： #格式如下： #export http_proxy=http://username:password@proxyservice:port #export https_proxy=http://username:password@proxyservice:port #export no_proxy="127.0.0.1，10.*" #例如用户名是testuser,密码是test，服务器地址是10.10.10.10:8080 export http_proxy=http://testuser:test@10.10.10.10:8080 export https_proxy=http://testuser:test@10.10.10.10:8080 export no_proxy="127.0.0.1,10.*" #不代理的地址，如果是欧拉系统，代理例外是存在问题的，欧拉系统的代理例外不匹配带*的例外，只能精确匹配，这个bug不知道什么时间能修复。 #http代理，如果不需要认证可忽略用户名和密码，如果涉及到特殊字符需要转义，例如用户名是testuser,密码是test@123，服务器地址是10.10.10.10:8080，其中@是特殊符号（@转义后是%40），需要转义： export http_proxy=http://testuser:test%40123@10.10.10.10:8080 export https_proxy=http://testuser:test%40123@10.10.10.10:8080 最后直接保存配置后，返回到命令行生效配置文件 source /etc/profile 关于特殊字符转义，教大家一个简单的办法：直接在浏览器地址栏输入特殊字符回车，就能看到转移后的结果：工具配置代理该方法主要用于临时设置，关闭当前窗口后再打开时，再打开时proxy信息将清空。 git设置显示代理方法在git命令行内执行以下命令: git config --global http.proxy http://username:password@10.10.10.10:8080 git config --global https.proxy http://username:password@10.10.10.10:8080 git config --global http.sslVerify false 其中密码如果包含特殊字符需要使用转义后的字符 cmd窗口设置显示代理方法在cmd窗口执行以下命令：设置代理： set http_proxy=http://10.10.10.10:8080 set https_proxy=http://10.10.10.10:8080 身份验证： set http_proxy_user=username (域账号/认证账号) set http_proxy_pass=password (密码) 软件客户端例如：微信、QQ、Xshell等在登录界面有设置代理的地方，进入设置-代理 选择对应的代理类型，填写对应的信息，保存后使用即可。软件的代理一般都在软件的设置界面-网络配置等地方，如果没有找到则就不支持代理功能。总结常见的windows以及Linux配置代理就是那么简单，而工具设置代理这块要讲的有很多，比如linux中docker 拉取镜像如何设置代理、python爬虫代码调用代理，以及比如遇到有的软件有代理设置但是没有填写认证信息的地方但是代理又必须认证才能使用，这些实际应用场景都没来得及去说明补充，会在后面的文章中详细更新，教会复杂场景的代理使用。