全局代理和局部代理的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局代理和局部代理的区别?相关的知识,希望对你有一定的参考价值。

电脑、手机等终端设备的所有的网络数据,不管是玩游戏、QQ还是看视频看新闻,都从代理ip服务器或vpn服务器进行传输,这种方式我们称之为全局代理。

反之,只有某个程序或者某些程序的网络数据是通过代理ip服务器或vpn服务器进行传输的,那么,我们称它为局部代理。

如果只想游戏程序或者某个指定的程序用到代理ip软件或vpn,而其他的比如QQ只用本地网络,那就可以选择用局部代理模式。

参考技术A 全局代理,就是让电脑上所有进程网络数据包都走代理服务器出去。
局部代理,就是只让指定的某个,或者某几个进程网络数据包走代理服务器出去。
两种代理,各有各的用途。第二种大部分应用在一些游戏程序,如游戏网络加速等,还有些限制一个IP上N个号的软件游戏等。
参考技术B

    全局代理,连接成功以后,您本机的IP地址全部改变了(即是代理地区的IP)

    局部代理,只是针对浏览器或软件改变,查询到的ip还是本地的,但能正常访问国外的网页(注:局部代理只多国外线路有用)

参考技术C 全局代理,连接成功以后,您本机的IP地址全部改变了(即是代理地区的IP)
局部代理,只是针对浏览器或软件改变,查询到的ip还是本地的,但能正常访问国外的网页(注:局部代理只多国外线路有用)
参考技术D 全局就是整个电脑的网络代理了IP,你所有操作都是在代理IP下操作的,局部代理就是部分应用被代理,比如,ie代理,软件代理,网页代理等等!

docker代理配置详解


前言

有些公司因为网络安全管控,需要使用代理。Docker的代理配置,略显复杂,下面描述多种场景的代理配置


一、Docker daemon ( Docker 守护进程 )Http代理配置

在执行docker pull时,是由守护进程dockerd来执行。因此,代理需要配在dockerd的环境中。而这个环境,则是受systemd所管控,因此实际是systemd的配置。

sudo mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/http-proxy.conf

在这个http-proxy.conf(可以是任意*.conf的形式)文件中,添加以下内容:

[Service]
Environment="HTTP_PROXY=http://账号:密码@服务器:端口"
Environment="HTTPS_PROXY=http://账号:密码@服务器:端口"
Environment="NO_PROXY=localhost,127.0.0.1"

重启 docker

systemctl restart docker

二、Container (容器)Http代理配置

1.全局配置

在容器运行阶段,如果需要代理上网,则需要配置~/.docker/config.json。以下配置,只在Docker 17.07及以上版本生效。

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://账号:密码@服务器:端口",
     "httpsProxy": "http://账号:密码@服务器:端口",
     "noProxy": "localhost,127.0.0.1"
   }
 }
}

重启 docker

systemctl restart docker

这个是用户级的配置,除了proxies,docker login等相关信息也会在其中。而且还可以配置信息展示的格式、插件参数等。
此外,容器的网络代理,也可以直接在其运行时通过-e注入http_proxy等环境变量。这两种方法分别适合不同场景。config.json非常方便,默认在所有配置修改后启动的容器生效,适合个人开发环境。在CI/CD的自动构建环境、或者实际上线运行的环境中,这种方法就不太合适,用-e注入这种显式配置会更好,减轻对构建、部署环境的依赖。

2.局部修改

在 docker run 命令添加参数

docker run -d -p 9000:8080 -p 9001:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime  -u root \\
--env HTTP_PROXY="http://账号:密码@服务器:端口" \\
--env HTTPS_PROXY="http://账号:密码@服务器:端口" \\
--env http_proxy="http://账号:密码@服务器:端口" \\
--env https_proxy="http://账号:密码@服务器:端口" \\
--name jenkins jenkins

三.代理为域名时的特殊处理

如果添加的代理是域名的话,如 proxy.neu.com:80, 需要再做一步额外的处理。

1.全局修改-通过修改 docker daemon 配置添加

在每个 container 运行前,会继承 Docker daemon 的配置,在 /etc/docker/daemon.json 文件下.
# 为 docker daemon 添加 dns,在运行时会为每个 container 添加上
cat /etc/docker/daemon.json
{
  "dns" : [
    "8.8.4.4",
    "8.8.8.8",
    "Your_DNS_SERVER"
  ],

  "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

2.局部修改-通过 docker run 参数添加

docker run -d -p 9000:8080 -p 9001:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime  -u root \\
--env HTTP_PROXY="http://账号:密码@服务器:端口" \\
--env HTTPS_PROXY="http://账号:密码@服务器:端口" \\
--env http_proxy="http://账号:密码@服务器:端口" \\
--env https_proxy="http://账号:密码@服务器:端口" \\
--dns 202.107.117.11 \\
--name jenkins jenkins

结尾

  • 感谢大家的耐心阅读,如有建议请私信或评论留言。
  • 如有收获,劳烦支持,关注、点赞、评论、收藏均可,博主会经常更新博客,知识共享。

以上是关于全局代理和局部代理的区别?的主要内容,如果未能解决你的问题,请参考以下文章

docker代理配置详解

怎么把自己的ip地址转换成其他地方的

Mac Termianl 实现全局代理

git最全教程(持续更新)

如何在Windows下全局使用Chrome代理?

pac代理和http代理区别