如何使用Linux設定命令列海外IP代理?

重見光明的貓發表於2022-09-05

當我們在做一些海外業務時,有些場景是需要為系統設定IP代理的,比如OpenCV3在進行cmake編譯時需要線上從亞馬遜下載一些第三方包,現在很多人採用的代理方案都是基於socks5協議的,而預設的終端工具支援代理型別都是HTTP或HTTPS,所以這裡需要socks協議到http協議的轉換,轉換之後採用終端的代理變數設定http代理即可。

如何使用Linux設定命令列海外IP代理?

一種是採用polipo將socks代理轉為http,然後為相應命令指定http代理另外一種是採用proxychains重定向連結來解決的,兩種方法個人喜好。

下面我們一起來看一下兩種設定IP代理方法

proxychains進行代理重定向

安裝

sudo apt-get install proxychains

配置

proxychains會從以下檔案中載入配置:

./proxychains.conf

$(HOME)/.proxychains/proxychains.conf

/etc/proxychains.conf

# see more in /etc/proxychains.conf

本文以修改$(HOME)/.proxychains/proxychains.conf為例

修改其內容如下(如果沒有該檔案,則建立):

trict_chain

proxy_dns

remote_dns_subnet 224

tcp_read_time_out 15000

tcp_connect_time_out 8000

localnet 127.0.0.0/255.0.0.0

quiet_mode

[ProxyList]

socks5 127.0.0.1 1081

其中[ProxyList]欄位中新增你的代理,由於採用shadowsocks的方式進行代理,並且監聽的本地埠為1081,所以最後一行為socks5 127.0.0.1 1081

使用

proxychains [command]

例如:

proxychains後面直接跟需要走代理的命令

$ proxychains curl ip.gs

ProxyChains-3.1 ( proxychains.sf.net )

Current IP / 當前 IP: 165.227.118

ISP / 運營商:  digitalocean.com

City / 城市: San Francisco California

Country / 國家: United States

$ proxychains git push origin master

或者直接讓整個bash下的命令都走代理:

$ proxychains bash

$ ping  google.com

$ git push origin master

polipo轉socks為http

依賴

預設你使用的是SS方式進行代理上網,並且已經有了SS賬號。

安裝ss客戶端

sudo apt-get update

sudo apt-get install python

sudo apt-get install python-pip

sudo pip install shadowsocks

安裝polipo

polipo是一個web代理快取工具,可以轉發web請求到指定的伺服器和埠,它本身支援socks協議,所以可以把它當成可以進行socks協議與http協議轉換的工具。

sudo apt-get install polipo

配置

配置並啟動ss客戶端

為了避免系統中配置的多個ss客戶端監聽埠衝突,可以修改ss監聽埠,這裡指定監聽埠為1081,下面是我的ss配置:

config.json

{

"server":"your-server-ip",

"server_port":your-server-port,

"local_port":1081,

"password":"your-password",

"method": "aes-128-cfb",

"timeout":600

}

啟動ss客戶端:

sslocal -c config.json

可以讓它在後臺執行,如果只是臨時用,可以另開一個terminal進行其他操作

配置並啟動polipo

修改polipo配置檔案如下:

配置檔案路徑/etc/polipo/config

logSyslog = true

logFile = /var/log/polipo/polipo.log

socksParentProxy = "127.0.0.1:1081"

socksProxyType = socks5

啟動polipo服務:

sudo systemctl start polipo

此時polipo已經開始監聽本地的8123埠,並將請求透過socks5協議轉發到127.0.0.1的1081埠,如果需要修改預設的8123埠,可以檢視man手冊

驗證

在需要使用代理的命令前面加上

http_proxy= 127.0.0.1:8123  https_proxy= 127.0.0.1:8123 ,如果只需要使用http,可以只設定http代理,如下驗證代理後的ip:

http_proxy= 127.0.0.1:8123  curl ip.gs

當前 IP:138.68.252.43 取自:smartproxy海外HTTP代理,IP地址來自:美國加利福尼亞州舊金山

驗證google的https訪問:

https_proxy= 127.0.0.1:8123  curl  google.com

使用技巧

如果想讓整個當前會話都走代理,可以直接設定環境變數:

export http_proxy= 127.0.0.1:8123  https_proxy= 127.0.0.1:8123

取消代理的環境變數:

unset http_proxy

unset https_proxy


如果想讓使用者登入後自動進行代理設定,可以直接將export http_proxy= 127.0.0.1:8123/  https_proxy= 127.0.0.1:8123/ 放在~/.bashrc中。

可以為命令設定別名,以減少輸入,在~/.bashrc中增加如下內容:

alias ="http_proxy= 127.0.0.1:8123  https_proxy= 127.0.0.1:8123 "

執行source ~/.bashrc使其生效,然後可以如下執行需要代理的命令:

hp curl ip.gs

如何使用Linux設定命令列海外IP代理?

最後說一下我使用的海外IP代理商smartproxy,Smartproxy是海外HTTP代理伺服器提供商,IP可以精準定位城市級,每個月都會更新IP池,一手IP,服務於大資料採集領域幫助企業/個人快速高效獲取資料來源,真的非常便宜實惠,而已速度快又很穩定。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70021123/viewspace-2913492/,如需轉載,請註明出處,否則將追究法律責任。

相關文章