2016-04-18 16 views
-1

如何通過終端爲我的電腦添加和激活代理(無需進入系統偏好設置)。我可以通過scutil --proxy以某種方式做到這一點嗎?我在OSX優勝美地運行與一臺MacBook Air我將如何在OSX終端中配置代理

回答

2

方法1

我們可以使用awk解析的scutil輸出和提取代理配置。下面的代碼片段的伎倆:

$ export http_proxy=`scutil --proxy | awk '\ 
/HTTPEnable/ { enabled = $3; } \ 
/HTTPProxy/ { server = $3; } \ 
/HTTPPort/ { port = $3; } \ 
END { if (enabled == "1") { print "http://" server ":" port; } }'` 
$ export HTTP_PROXY="${http_proxy}" 

這個腳本查找HTTPEnableHTTPProxyHTTPPortscutil輸出。如果代理已啓用,則腳本將輸出代理URL並將其設置爲http_proxy環境變量。如果代理未啓用,則腳本將http_proxy設置爲空字符串。最後一行設置HTTP_PROXY環境變量,因爲一些命令行應用程序使用它。

將此片段放入您的.bash_profile,可確保您的代理在有線和無線網絡之間切換時自動保持配置。

方法2

你可以嘗試創建一個使用「networksetup」的以下用途之一,列出當前的代理一個bash登錄腳本,然後解析出服務器的地址並將其應用到當前終端會話:

networksetup -getftpproxy <servicename> 
networksetup -getwebproxy <servicename> 
networksetup -getsecurewebproxy <servicename> 
networksetup -getstreamingproxy <servicename> 
networksetup -getgopherproxy <servicename> 
networksetup -getsocksfirewallproxy <servicename> 

有可能是networksetup工具,它可以給你使用的是特定的代理的其他用途,只是仰望「人networksetup」可以看到所有的細節和用途。

方法3 終端不使用在網絡偏好設置窗格中配置的代理設置,因爲它沒有進行任何連接。終端只是讓你發射命令,以不同的方式使用網絡。

export http_proxy="username:[email protected]:port" 

參考:https://dmorgan.info/posts/mac-network-proxy-terminal/

0

我寫了一個little tool這正是這麼做的。用法很簡單。

  1. 用xCode編譯它。
  2. 地址:

    eval `./path/to/export-proxies` 
    

    .profile.bashrc,或.bash_profile

它將設置所有常用的代理環境變量($HTTP_PROXY$http_proxy$HttpProxy等)對所有協議(HTTP,FTP,SOCKS),包括如在OS X控制面板中定義的所有異常。

建議和改進也總是歡迎;)

編輯 我剛纔看見你要設置的設置,而不是閱讀。到目前爲止,我還沒有找到辦法做到這一點。但會很樂意學習,否則...