=================================
proxy 的写法
=================================
一般写法是:
http://my.proxy.address:8080

带密码的验证写法如下,
http://domain/username:password@servername:port/
用户密码往往是 windows 域的账号密码, 密码最好不要带空格和%号和@号和冒号, 一旦包含了这些特殊字符就必须转义, 很麻烦, 所以最简单的方式是修改密码, 而不是转义.

=================================
chrome
=================================
chrome 的启动命令增加下面启动参数:
# Disable proxy
--no-proxy-server

# Manual proxy address
--proxy-server=<scheme>=<uri>[:<port>][;...] | <uri>[:<port>] | "direct://"

# Manual PAC address
--proxy-pac-url=<pac-file-url>

# Disable proxy per host
--proxy-bypass-list=(<trailing_domain>|<ip-address>)[:<port>][;...]

=================================
vs code 的配置
=================================
vs code 经常在线安装扩展, 下面的网络 proxy 设置方法
方法 1: 在 preferences 中设定如下配置, 一般"http.proxyStrictSSL" 应该配置为false
// Place your settings in this file to overwrite the default settings
{
"http.proxy": "http://my.proxy.address:8080",
"https.proxy": "http://my.proxy.address:8080",
"http.proxyStrictSSL": false
}

方法2: vs code 和基于 Electron 的所有应用都是基于 Chromium的, 它们都和 Chrome 有同样的启动命令参数, 可以使用 chrome 的启动命令行, 见 chrome 的配置说明.

=================================
eclipse 设置
=================================
在 eclipse.ini 配置如下参数, 即可启用Windows的系统代理,
-Djava.net.useSystemProxies=true

下面是一些其他设置项, 可以按需启用.
// NoProxy
-Dhttp.noProxyHosts=localhost|127.0.0.1|192.168.0.1

// HTTP
-Dhttp.proxyHost=http://proxy.memorynotfound.com
-Dhttp.proxyPort=80

// HTTPS
-Dhttps.proxyHost=https://proxy.memorynotfound.com
-Dhttps.proxyPort=443

=================================
npm 的配置
=================================
使用如下命令设置代理, 或者直接编辑 C:\Users\<username>\.npmrc 文件

npm config set proxy=http://<username>:<pass>@proxyhost:<port>
npm config set https-proxy=http://<uname>:<pass>@proxyhost:<port>
npm config set strict-ssl false
npm config set registry "http://registry.npmjs.org/"

最好使用国内镜像站点, 比如下面的前两个:
cnpm --- http://r.cnpmjs.org/
taobao - http://registry.npm.taobao.org/
npm ---- https://registry.npmjs.org/
eu ----- http://registry.npmjs.eu/
au ----- http://registry.npmjs.org.au/
sl ----- http://npm.strongloop.com/
nj ----- https://registry.nodejitsu.com/

=================================
Maven configuration
=================================
Edit the proxies session in your ~/.m2/settings.xml file, 内容如下:
<proxies>
<proxy>
<id>id</id>
<active>true</active>
<protocol>http</protocol>
<username>username</username>
<password>password</password>
<host>host</host>
<port>port</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
</proxies>

=================================
Gradle configuration
=================================
If you want to set these properties globally then add it in USER_HOME/.gradle/gradle.properties file

## Proxy setup
systemProp.proxySet="true"
systemProp.http.keepAlive="true"
systemProp.http.proxyHost=host
systemProp.http.proxyPort=port
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=local.net|some.host.com

systemProp.https.keepAlive="true"
systemProp.https.proxyHost=host
systemProp.https.proxyPort=port
systemProp.https.proxyUser=username
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=local.net|some.host.com
## end of proxy setup

=================================
Git configuration
=================================
Use these commands:

git config --global http.proxy http://username:password@host:port
git config --global https.proxy http://username:password@host:port
git config --global http.sslVerify false

Or you can edit directly your ~/.gitconfig file:

[http]
proxy = http://username:password@host:port
[https]
proxy = http://username:password@host:port

=================================
使用cntlm管理代理
=================================
上面的软件有对应的设置接口, 对于另一些软件根本没有这样的接口, 所以不能上面的类似做法. 即使上述方法可用, 一旦修改Windows密码, 还需要重新设置一遍. 这里介绍一个终极的做法, 使用 cntlm 软件.
软件下载 http://cntlm.sourceforge.net/

(1) 安装的时候, 最好选择默认安装路径, 否则后续运行会有问题.
(2) 修改安装目录的 cntlm.ini, 可以在 ini 文件中指定明文密码, 如果不想设置明文密码, 可以使用下面命令行, 生成hash后的密码.
cntlm -H
cntlm.ini 文件Listen 设置项默认是 3128 , 也就是将来的代理接口是, http://127.0.0.1:3128 , 如果将来的代理要开放给其他机器, 最好设置成 your_ip:3128 格式, 或者 0.0.0.0:3128 即可.  
(3) 验证设置是否正确, 通过访问百度来验证
cntlm -c /path/to/cntlm.ini -M http://www.baidu.com
运行后会要求输入登录代理的密码,输入后,如果配置正确,会返回200响应和PassNTLMv2
(4) 启动 cntlm 服务
使用命令启动服务, C:\Windows\System32\net.exe start /path/to/cntlm.exe
或者使用 cntlm 的开始菜单start service 来启动.

(5)cntlm 程序报错最有可能的原因是, cntlm.exe 找不到 cntlm.ini 文件, 一般修改注册表会解决这个问题的.
Open regedit.exe and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cntlm\Parameters.
Then change the AppArgs key to
-f -c "C:\Program Files\Cntlm\cntlm.ini"

=================================
boot2docker 的设置
=================================
1. 域名服务器的修改,  先在 HostOS windows 的 CMD 窗口执行 nslookup, 能得到域名服务器的ip. 将域名服务器加到 /etc/resolv.conf 文件中, 增加如下一行内容:
nameserver dns_server_ip

需要说明的是 /etc/resolv.conf 在每次重启 boot2docker 后都会被重置, 最好是将它保存到 /var/lib/boot2docker/profile 文件中.

2. 在 /var/lib/boot2docker/profile 设置 registry 和 dns 信息.
需要说明的是:
1. registry-mirror 和普通 docker registry 区别在于, mirror 只能 pull 不能 push.
2. 默认情况下, docker 对于 http 类型的私服是不信任的, 如果一定要使用, 需要将该私服加到 insecure-registry 参数中.
3. insecure-registry 和 dns 参数可以设置多个.
4. https://docker.mirrors.ustc.edu.cn 是国内比较好用的一个mirror, 不要注册就可以使用.

内容如下:

EXTRA_ARGS="
--dns dns_server_ip
--insecure-registry registry_server:5000
--registry-mirror https://docker.mirrors.ustc.edu.cn
"

3. 在 /var/lib/boot2docker/profile 文件中,   export proxy相关的设置.
说明: 192.168.1.100 是 boot2docker VM 的IP, 将它加到 NO_PROXY 中, 将 localhost, 127.0.0., 10., /var/run/docker.sock 也加到 NO_PROXY 中, 内容如下:

export HTTP_PROXY=http://my.proxy.address:8080
export HTTPS_PROXY=http://my.proxy.address:8080
export NO_PROXY=192.168.1.100,localhost,/var/run/docker.sock,127.0.0.*,10.*,192.168.*
export http_proxy=http://my.proxy.address:8080
export https_proxy=http://my.proxy.address:8080
export no_proxy=192.168.1.100,localhost,/var/run/docker.sock,127.0.0.*,10.*,192.168.*

或者在创建 boot2docker 虚拟机时就指定代理设置, 命令行如下:
docker-machine create -d virtualbox \
--engine-env HTTP_PROXY=http://my.proxy.address:8080 \
--engine-env HTTPS_PROXY=http://my.proxy.address:8080 \
--engine-env NO_PROXY=192.168.1.100,localhost,/var/run/docker.sock,127.0.0.*,10.*,192.168.* \
default

4. [可选]在 HostOS windows 设置几个环境变量:
它们是 HTTP_PROXY 和 HTTPS_PROXY 和 NO_PROXY, 取值同上.

5. docker 命令
(1)docker pull 等命令会自动使用上面的代理设置, 示例如下:
docker pull hello-world:latest

(2)docker build 并不会自动读取上面的代理设置, 需要在docker build 命令中指定代理.
docker build --build-arg http_proxy=http://169.254.123.45:3128 \
--build-arg https_proxy=http://169.254.123.45:3128 \
-t myawesomeimage:latest .

(3)docker 容器进程使用代理
假设一个 Java 程序, 下面的 test.sh 是容器的entry point脚本.

if [[ ! -z "$http_proxy" ]] || [[ ! -z "$https_proxy" ]]; then
export JAVA_OPTS="-Djava.net.useSystemProxies=true $JAVA_OPTS -Dhttp.noProxyHosts=${POSTGRES_IP}"
fi

容器启动时候, 可以传入 proxy 设置.
sudo docker run -e "http_proxy=http://myproxy.example.com:8080" \
-e "https_proxy=https://myproxy.example.com:8080" \
-e "POSTGRES_IP=192.168.100.101" \
-d Cron\ubuntu test.sh

=================================
参考
=================================
https://www.jhipster.tech/configuring-a-corporate-proxy/
https://crondev.com/running-docker-behind-proxy/
https://segmentfault.com/a/1190000004827169
https://mandie.net/2017/12/10/docker-for-windows-behind-a-corporate-web-proxy-tips-and-tricks/
https://exceptionshub.com/using-npm-behind-corporate-proxy-pac.html
http://blog.majcica.com/2016/01/13/tough-life-behind-a-proxy/
https://memorynotfound.com/configure-http-proxy-settings-java/

work behind corp proxy的更多相关文章

  1. 实现代理设置proxy

    用户在哪些情况下是需要设置网络代理呢? 1. 内网上不了外网,需要连接能上外网的内网电脑做代理,就能上外网:多个电脑共享上外网,就要用代理: 2.有些网页被封,通过国外的代理就能看到这被封的网站:3. ...

  2. Could not create SSL connection through proxy serve-svn

    RA layer request failedsvn: Unable to connect to a repository at URL xxxxxx 最后:Could not create SSL ...

  3. could not initialize proxy - no Session

    这是一个精典的问题:因为我们在hibernate里面load一个对象出来时,用到的是代理对象,也就是说当我们在执行load方法时并没有发sql语句,而是返回一个proxy对象.只有当们具体用到哪个ge ...

  4. ABP源码分析三十七:ABP.Web.Api Script Proxy API

    ABP提供Script Proxy WebApi为所有的Dynamic WebApi生成访问这些WebApi的JQuery代理,AngularJs代理以及TypeScriptor代理.这些个代理就是j ...

  5. Java设计模式之代理模式(Proxy)

    前言: 最近在研究Retrofit开源框架的时候,其主要核心代码是通过注解标示参数,动态代理模式实现具体接口,反射机制进行参数解析,最终实现发送请求.其实之前在学习Xutils源码的时候,Xutils ...

  6. 设计模式(十三)代理模式(Proxy Pattern)

    一.引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代 ...

  7. 设计模式-代理模式(Proxy Model)

    文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/5988145.html 目录 1.写在前面 2.概述 3.目的 4.结构组成 5.实现 5 ...

  8. 神秘代理-Proxy

    前言: 代理模式作为常见的设计模式之一,在项目开发中不可或缺.本文就尝试着揭开代理的神秘面纱,也欢迎各路人批评指正! 1.如何实现代理: [假设有个关于汽车移动(move)的计时需求]设计:Movea ...

  9. 12,13 Proxy和Reflect

    Proxy和Reflect Proxy(代理) Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种"元编程"(meta programming),即对编程 ...

随机推荐

  1. SQLServer之删除用户定义的数据库角色

    删除用户定义的数据库角色注意事项 无法从数据库删除拥有安全对象的角色. 若要删除拥有安全对象的数据库角色,必须首先转移这些安全对象的所有权,或从数据库删除它们. 无法从数据库删除拥有成员的角色. 若要 ...

  2. SQL学习笔记---非select操作

    非select命令 数据库 1.创建     //create database 库名 2.删除     //drop database 库名,... 2.重命名//exec sp_renamedb ...

  3. sql 视图学习

    视图语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 您可以向视图添加 SQL 函数. ...

  4. 【记录】垃圾清理软件 便携版CleanMyPC破解版

    摘要 使用CleanMyPC保持您的PC清洁并像新的一样运行.它扫描整个计算机以清理垃圾文件,加速您的PC并提高其性能.CleanMyPC不仅仅是一台PC清洁工 - 它是关注计算机的必备工具.[有能力 ...

  5. 记录Nginx代理的配置

    server { listen  80; server_name localhost; location / { root    /ect/share/nginx/html; index   inde ...

  6. express+sequelize 做后台

    第一部分:安装express 第一步:执行 npm install -g express-generator note:必须安装这个,不然创建express项目的时候会提示express命令没有找到 ...

  7. ASP.NET Core 下自定义权限验证

    效果图: 如果没有权限时,显示: 代码: public class AuthorizeAdminAttribute : TypeFilterAttribute { #region 字段 private ...

  8. Linux新手随手笔记1.4

    计划任务服务程序 计划任务 at  命令          一次性的 crond  服务   周期性的 23:29执行reboot命令(重启服务器) at -l      查看当前的计划任务 at  ...

  9. 菜鸟学IT之python词云初体验

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822 1. 下载一长篇中文小说. 2. 从文件读取待分析文本. txt = ...

  10. PY3_线程红绿灯

    # Author:jum_# event 事件监测 红灯停绿灯行 线程标志位# 事件主要提供了三个方法wait.clear.set# clear:将“Flag”设置为False#set:将“Flag” ...