在proxy下的多種工具使用

proxy代理通常是兩種狀況,一使用國外代理,一是公司局域網的proxy限制。html

二級代理

二級代理主要是使用能夠經過proxy上網的機器,再生成proxy服務,好處有三:node

  • 可提供其餘不能上外網的機器用linux

  • 可避免proxy帳號泄露git

  • 也避免proxy帳號更改時,須要大批量更改配置文件github

搭建cntlm二級代理

在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配置

proxy地址爲代理PC的IP地址:3128。下述提到的配置文件位置以ubuntu14.04爲例,其餘版本不肯定。

1. 環境變量

多數軟件會默認讀取環境變量中的http_proxy和https_proxy,先配置爲全局變量。

/etc/profile中加入:

export http_proxy="http://yourcntlmIp:3128"
export https_proxy="http://yourcntlmIp:3128"
export ftp_proxy="http://yourcntlmIp:3128"

2. apt-get

/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纔可生效

3. npm

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.jsonnpm-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地址。

4. docker

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的…………

5. meteor

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>

參考連接

cntlm內網代理的代理

Npm的配置管理及設置代理

相關文章
相關標籤/搜索