天天看點

VMware Player虛拟機中Ubuntu系統的上網代理配置

VMware Player虛拟機中Ubuntu系統的上網代理配置

1. 背景

由于去年集團某分公司發生了資訊洩露的安全事故,是以集團公司今年采取比較嚴格的網絡安全管理措施。原來不通過代理伺服器的上網方式已經一去不複返了,部門内有些項目中使用的虛拟機系統還有通路網絡的需求,因而需要通過配置代理上網。此類配置的文章網上有很多,但都不夠完整。比如,對有認證要求的代理伺服器的配置鮮有提及。本文主要把這些配置做了總結記錄,希望能給有類似需求的人帶來些微幫助。

2. 虛拟機環境

虛拟機:VMware(R) Player 6.0.4 build-2249910

主機OS:Windows 7 Professional, 64-bit 6.1.7601, ServicePack 1

Ubuntu OS: ubuntukylin-17.0464bit

虛拟機網絡連接配接方式:NAT (共享主機的IP位址)

注:上述是本文試驗成功的環境。

3. 無認證要求的代理設定

3.1  圖形界面方式設定

VMware Player虛拟機中Ubuntu系統的上網代理配置

在虛拟機中的ubuntu系統桌面,進入系統設定,然後點選網絡設定;在網絡設定的彈出框中,選擇Networkproxy,如上圖輸入代理伺服器的IP位址和段口号;點選Apply system wide按鈕,将目前代理設定适用全系統。

3.2 CLI方式設定

·  用Vi指令打開環境變量檔案environment(或者使用你喜歡的其他檔案編輯器打開),

       sudo vi /etc/environment

   這個environment檔案中儲存了ubuntu系統啟動時初始化完成的系統全局變量。

·  在environment檔案中追加下述内容(其中的代理伺服器當然要使用自己的)。

    http_proxy="http://172.32.1.222:8080/"

    https_proxy="http://172.32.1.222:8080/"

    ftp_proxy="http://172.32.1.222:8080/"

    no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

    socks_proxy="http://172.32.1.222:8080/"

    HTTP_PROXY="http://172.32.1.222:8080/"

    HTTPS_PROXY="http://172.32.1.222:8080/"

    FTP_PROXY="http://172.32.1.222:8080/"

    NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"

    SOCKS_PROXY="http://172.32.1.222:8080/"

    有人可能已經注意到了,上面包括了大小寫區分的兩種重複設定。為什麼要這樣重複設定呢?原因就是有的程式隻使用一種設定(小寫或者大寫),既然不能确定使用的哪一種,安全起見,就把大小寫都包含。

·  使用圖形界面方式設定網絡代理,也修改了上面這個檔案。可以在圖形界面設定完後,打開這個檔案看一下。但是圖形界面的修改方式更全面一些,它同時還修改了與apt-get網絡通路相關的配置檔案/etc/apt/apt.conf。apt.conf 檔案中的内容如下:

Acquire::http::proxy"http://172.32.1.222:8080/";

Acquire::https::proxy"https://172.32.1.222:8080/";

Acquire::ftp::proxy"ftp://172.32.1.222:8080/";

Acquire::socks::proxy"socks://172.32.1.222:8080/";

還有普遍的一種做法就是,在/etc/apt/apt.conf.d/目錄下建立95proxies檔案,追加上述内容,效果也是一樣的。但是對于需要認證的代理伺服器而言,這種設定方法是無效的,這種情況下如何設定,下文會有講述。

·   git的代理設定方式如下

    1.   http及https

        git config--global http.proxy http://172.32.1.222:8080

        git config--global https.proxy https://172.32.1.222:8080

    2.   git://協定代理

        $ sudoapt-get install socat

        $ sudo vi/usr/bin/gitproxy

        --------------------------

        #!/bin/bash

        PROXY=myproxy.server.com

        PROXYPORT=8080

        PROXYAUTH=username:password

        exec socatSTDIO PROXY:$PROXY:$1:$2,proxyport=$PROXYPORT,proxyauth=$PROXYAUTH

        --------------------------

        $ sudo chmod+x /usr/bin/gitproxy

        $ git config--global core.gitproxy gitproxy

        注:記得修改上面的代理伺服器位址以及gitproxy 檔案中的username和password 。

4. 有認證要求的代理設定

  4.1 圖形界面的設定方式

  沒弄懂怎麼設定,知道的可以在評論中貼出來。

  4.2 CLI方式設定

   ·  設定檔案還是/etc/environment,内容稍稍不同。需要把代理設定内容改為如下的形式:

           "http://username:[email protected]172.32.1.222:8080/"

   ·  與apt-get網絡通路相關的配置檔案也要進行如上的修改。但是修改/etc/apt/apt.conf.d/95proxies檔案不起作用,而是應該修改/etc/apt/apt.conf。

 4.3 URL encoding

       要注意的是,上面那些設定内容是URL格式的,是以需要對使用者名和密碼進行URL編碼。

       例如,通路代理伺服器的使用者名為mobai,密碼為(mobai4u,\)  那麼上述位址就要編碼為:

            "http://mobai:(mobai4u%2C%5C)@172.32.1.222:8080/"

       這算是一個坑吧,解決了後覺得理所當然,實際上也頗費了一點時間。

       至于URL編碼,可以通過以下幾個網站進行:

         http://meyerweb.com/eric/tools/dencoder/

         http://www.url-encode-decode.com/

         http://www.blooberry.com/indexdot/html/topics/urlencoding.htm       

5.  結束語

    虛拟機中Ubuntu系統的上網代理配置其實比較簡單,對于有認證要求的配置稍微有點麻煩,要注意特殊字元的URL編碼。另外,如果修改了配置檔案後,仍然不能通路網絡,别忘了打開一個新的console嘗試一下,實在不行重新開機系統。

   其實這種配置方法還是比較繁瑣,有簡單點的方法,那就是使用ProxyChains,後面抽時間整理一下再分享。

繼續閱讀