天天看點

指令行command line 使用 http proxy的設定方法 Setting Up HTTP Proxy in Terminal

Step 1: Install Shadowsocks Client

Shadowsocks is an open-source proxy project to help people visit some websites :). To speed up web surfing, we need to install a Shadowsocks client first.

For Ubuntu:

sudo apt-get install shadowsocks

For Mac:

brew install shadowsocks-libev

You can also download a GUI client from https://sourceforge.net/projects/shadowsocksgui/

Create a directory named shadowsocks:

mkdir shadowsocks

,

cd

into it, create a file named

shadowsocks.json

with the following content:

1

2

3

4

5

6

7

8

{

"server": "139.162.10.88", // your server ip address

"server_port": 12345, // your server port

"local_port": 1080,

"password": "your_password",

"timeout": 600,

"method": "aes-256-cfb" // your encrption method

}

Run the following command to start the Shadowshocks client:

sudo nohup sslocal -c ./shadowsocks.json &

It’ll open a local port to wait for the connection, and here it’s

1080

.

Step 2: Use Shadowsocks Client as HTTP Proxy

First, let’s do some check:

$ curl ip.gs

目前 IP:59.110.66.150 來自:中國北京北京 阿裡雲/電信/聯通/移動/鐵通/教育網

Yes, I’m safely protected by the wall :).

With the environment variable

http_proxy

set, we can travel abroad:

$ http_proxy=socks5://localhost:1080 curl ip.gs

目前 IP:139.162.10.88 來自:新加坡新加坡 linode.com

However, some command line tools (such as

npm

) don’t support

socks5

protocol, and under the help of

polipo

we can convert

socks5

into

http

sudo apt-get install polipo

Edit the config file at

/etc/polipo/config

, and append the following two lines:

socksParentProxy = "localhost:1080"

socksProxyType = socks5

Finally, restart

polipo

:

sudo service polipo stop

sudo service polipo start

And for Mac:

brew install polipo

Edit file

/usr/local/opt/polipo/homebrew.mxcl.polipo.plist

, add the

socksParentProxy

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>Label</key>

<string>homebrew.mxcl.polipo</string>

<key>RunAtLoad</key>

<true/>

<key>KeepAlive</key>

<key>ProgramArguments</key>

<array>

<string>/usr/local/opt/polipo/bin/polipo</string>

<string>socksParentProxy=localhost:1080</string>

</array>

<!-- Set `ulimit -n 65536`. The default macOS limit is 256, that's

not enough for Polipo (displays 'too many files open' errors).

It seems like you have no reason to lower this limit

(and unlikely will want to raise it). -->

<key>SoftResourceLimits</key>

<key>NumberOfFiles</key>

<integer>65536</integer>

</dict>

</plist>

Restart polipo:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.polipo.plist

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.polipo.plis

Also you can make it start when the system launches:

ln -sfv /usr/local/opt/polipo/*.plist ~/Library/LaunchAgents

Now you can the the http proxy offered by

polipo

$ http_proxy=http://localhost:8123 curl ip.gs

You can set it globally by (here I just add

https_proxy

by the way):

export http_proxy=http://localhost:8123

export https_proxy=http://localhost:8123

And stop the proxy with

unset http_proxy

or (

unset https_proxy

).

Also, you can put the two export lines into your

.zshrc

(or,

.bashrc

) to set the proxies automatically when you start a new shell session.

source ~/.zshrc

or restart a new session, you can see the proxy works:

目前 IP:139.162.10.98 來自:新加坡新加坡 linode.com

Step 3: Set Up

git

Proxy

First try it out:

git clone https://github.com/twbs/bootstrap.git

In Aliyun, it’s quite slow. We can let git use the proxy with the following command:

git config --global http.proxy 'socks5://127.0.0.1:1080'

It will create a

http

section in your

~/.gitconfig

file:

[http]

proxy = socks5://127.0.0.1:1080

Now, you can clone any repository in Github much faster.

Step 4: Set Up

pip

In Aliyun, the connection of

pip

is very slow:

$ pip install tornado

Collecting tornado

Downloading tornado-4.4.2.tar.gz (460kB)

4% |█▍ | 20kB 11kB/s eta 0:00:37

If you set the

https_proxy

environment variable, the following steps are saved. However, since

proxychains

is very handy, I’ll spend one section to detail it’s configuration.

sudo apt-get install proxychains

Change the config file at

~/.proxychains/proxychains.conf

, and change the

[ProxyList]

in it:

[ProxyList]

socks5 127.0.0.1 1080

# You can also use the http proxy polipo offers

# http 127.0.0.1 8123

For Mac, use

proxychains-ng

instead:

$ brew install proxychains-ng

/usr/local/etc/proxychains.conf

[ProxyList]

in it like what we did for Ubuntu.

Now you can install packages much faster.

For Ubuntu, put

proxychains

before

pip

$ proxychains pip install tornado

ProxyChains-3.1 (http://proxychains.sf.net)

|D-chain|-<>-127.0.0.1:1080-<><>-151.101.36.223:443-<><>-OK

51% |████████████████▍ | 235kB 553kB/s eta 0:00:01

proxychains4

proxychains4 pip install Faker

[proxychains] config file found: /usr/local/Cellar/proxychains-ng/4.11/etc/proxychains.conf

[proxychains] preloading /usr/local/Cellar/proxychains-ng/4.11/lib/libproxychains4.dylib

[proxychains] DLL init: proxychains-ng 4.11

Collecting Faker

[proxychains] Strict chain ... 127.0.0.1:1080 ... pypi.python.org:443 ... OK

Downloading Faker-0.7.7-py2.py3-none-any.whl (562kB)

100% |████████████████████████████████| 563kB 1.3MB/s

...

Installing collected packages: Faker

Successfully installed Faker-0.7.7

Step 5: Set

npm

If you set the shell

http_proxy

and

https_proxy

npm

would take advantage of the proxy. But you can always make things safer by instruct the following commands:

npm config set proxy http://localhost:8123

npm config set https-proxy http://localhost:8123

Also with the help of

proxychains

, you can make

npm

traffic go through the proxy. But you should make sure not use

proxychains

with the

http_proxy

https_proxy

environmant variables set at the same time.

Conclusion

We can live a safe and slow life, or a “dangerous” but fast one, and Shadowsocks with all these proxy tools will help us to achieve that. Thanks all these “wanderlusters” who wallow in freedom to create these awesome stuff, and wish you a good journey with the “ladder”. Beyond the wall, there is the world.

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

微信公衆号:  共鳴圈

歡迎讨論,郵件:  924948$qq.com       請把$改成@

QQ群:263132197

QQ:    924948

良辰美景補天漏,風雨雷電洗地塵

繼續閱讀