proxy代理通常是兩種狀況,一使用國外代理,一是公司局域網的proxy限制。html
二級代理主要是使用能夠經過proxy上網的機器,再生成proxy服務,好處有三:node
可提供其餘不能上外網的機器用linux
可避免proxy帳號泄露git
也避免proxy帳號更改時,須要大批量更改配置文件github
在PC機上搭建代理服務器cntlm。咱們的PC是windows2003,linux上的安裝方式相似。官網docker
1 . 安裝cntlmnpm
下載cntlm.exe 安裝json
2 . 配置cntlm.ini文件ubuntu
進入安裝目錄,把cntlm.ini文件配置以下:
Username 域帳號 Domain china Password 密碼 Proxy yourproxyServer:8080 Proxy yourproxyServer:8080 NoProxy localhost, 127.0.0.*, 10.* Listen yourpcIP:3128 Allow 0/0
3 . 生成NTLM值windows
執行 `cntlm.exe -c cntlm.ini -M http://www.google.com` ,http://www.google.com 可替換成任意的外網址。**按提示輸入域帳號密碼**
4 . 啓動服務
把紅框內容拷貝到cntlm.ini中,完整版以下:
Username 域帳號 Domain china Password 密碼 Proxy yourproxyServer:8080 Proxy yourproxyServer:8080 NoProxy localhost, 127.0.0.*, 10.* Listen yourpcIP:3128 Allow 0/0 Auth NTLM PassNT 419386ED93C48D15FF169EF6370FEDEF PassLM 25C746715EB9633900E8C9A050E00176
啓動cntlm服務`net start cntlm`
proxy地址爲代理PC的IP地址:3128。下述提到的配置文件位置以ubuntu14.04爲例,其餘版本不肯定。
多數軟件會默認讀取環境變量中的http_proxy和https_proxy,先配置爲全局變量。
在/etc/profile
中加入:
export http_proxy="http://yourcntlmIp:3128" export https_proxy="http://yourcntlmIp:3128" export ftp_proxy="http://yourcntlmIp:3128"
在/etc/apt/apt.conf
中加入:
Acquire::http::proxy "http://yourcntlmIp:3128"; Acquire::https::proxy "http://yourcntlmIp:3128";
若是內部有https限制 訪問限制:
apt-get的鏡像源在/etc/apt/source-list
文件中,記得把https
開頭的鏡像替換成有http
的
配置後需執行source /etc/profile
纔可生效
npm是nodejs的一個軟件管理工具
在/etc/profile
中加入:
export npm_config_proxy="http://yourcntlmIp:3128"
同理,需執行source /etc/profile
纔可生效。注:npm的proxy有多種配置方式,詳情見參考連接Npm的配置管理及設置代理。
https限制 :
npm的默認鏡像是https://registry.npmjs.org/
,可將鏡像源替換成http
或者國內鏡像。替換方式:
npm config set registry http://registry.npmjs.org/ npm config set registry http://r.cnpmjs.org/
查看npm的當前鏡像源,可以使用npm config list
查看。
注意! 若是你使用了網上的開源項目,在文檔裏直接執行npm install
安裝,修改鏡像源是不生效的! 此時,須要修改安裝目錄下的package.json
和npm-shrinkwrap.json
文件的resolved
字段。
例如:
{ "name": "meteor-dev-bundle", "version": "0.0.0", "dependencies": { "amdefine": { "version": "1.0.0", "from": "amdefine@>=0.0.4", "resolved": "https://registry.npmjs.org/npm-registry/amdefine/-/amdefine-1.0.0.tgz" }, ......
改爲
{ "name": "meteor-dev-bundle", "version": "0.0.0", "dependencies": { "amdefine": { "version": "1.0.0", "from": "amdefine@>=0.0.4", "resolved": "http://registry.npmjs.org/npm-registry/amdefine/-/amdefine-1.0.0.tgz" }, ......
Tips: 若是安裝包是在https://github 或者其餘網站,則須要下載到本地,而後修改resolved
字段到local地址。
docker是一種容器,與虛擬機相似,可是更加輕巧。此處的proxy配置是dockerhub(與github相似,一個鏡像倉庫)的鏈接。
在/etc/default/docker
中加入:
export http_proxy='http://yourcntlmIp:3128' export https_proxy='http://yourcntlmIp:3128'
需重啓docker服務纔可生效,service docker restart
https限制
docker的源是http的…………
meteor 是nodejs的一個框架,依賴於npm install安裝模塊
在/etc/profile
中加入:要大寫!
export HTTP_PROXY='http://yourcntlmIp:3128' export HTTPS_PROXY='http://yourcntlmIp:3128'
需執行source /etc/profile
纔可生效
https限制
meteor在npm的基礎上還加了本身的包管理。目前沒有找到替換源的地方。須要meteor add
,都是使用離線下載噠!
整理下離線下載的步驟:
在官網搜索對應的package包
在package包的頁面找到github所在的地址(在右邊有個GitHub
按鈕)
在github下載package包
在meteor的目錄下建立jpackages目錄,並把下載的包解壓到該目錄下
從package包的package.js文件中獲取包的名稱package-name
執行meteor add <package-name>