命令行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
.
For Ubuntu:
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
:
1
2
3
4
5
6
7
8
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>
<true/>
<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>
<dict>
<key>NumberOfFiles</key>
<integer>65536</integer>
</dict>
</dict>
</plist>
|
Restart polipo:
1
2
|
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
当前 IP:139.162.10.88 来自:新加坡新加坡 linode.com
|
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:
$ curl ip.gs
当前 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
Proxy
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.
For Ubuntu:
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
|
Change the config file at /usr/local/etc/proxychains.conf
, and change the [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)
Collecting tornado
|D-chain|-<>-127.0.0.1:1080-<><>-151.101.36.223:443-<><>-OK
Downloading tornado-4.4.2.tar.gz (460kB)
51% |████████████████▍ | 235kB 553kB/s eta 0:00:01
|
For Mac, use proxychains4
instead:
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
[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
Proxy
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
and 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.
命令行command line 使用 http proxy的设置方法 Setting Up HTTP Proxy in Terminal的更多相关文章
- 使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空
使用mysql 命令行,增加 ,删除 字段 并 设置默认值 及 非空 添加 alter table table_name add field_name field_type; 添加,并设置默认值,及非 ...
- 命令行下从bak文件恢复sqlserver数据库方法
命令行下从bak文件恢复sqlserver数据库方法 注:本文所示访问从SqlServer 2000 - 2014版都是通用的 参考:http://blog.sina.com.cn/s/blog_5c ...
- Windows命令行command的Shell命令详细解析和语法
CMD命令大全及详细解释和语法 Microsoft Windows XP [版本 5.1.2600] 有关某个命令的详细信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联. A ...
- mysql: "Warning: Using a password on the command line interface can be insecure." 解决方法
错误重现: 命令行或者shell脚本中执行以下命令,如果您当前服务器mysql版本是大于5.6的,则会出现警告:Warning: Using a password on the command lin ...
- 命令行向php传入参数的两种方法
##$argv or $argc $argv 包含当运行于命令行下时传递给当前脚本的参数的数组. $argv[0] 就是脚本文件名. $argc 包含当运行于命令行下时传递给当前脚本的参数的数目 ...
- Linux命令行修改IP、网关、DNS的方法
Linux中在命令行中修改IP地址.网关.DNS的方法. 网卡eth0 IP修改为 102.168.0.1 复制代码代码如下: ifconfig eth0 102.168.0.1 netmask ...
- windows命令行模式下无法打开python程序解决方法
今天刚开始学Python,首先编写一个简单地hello world程序,想在命令行模式运行,结果出现下面: 经过一番思考,发现用cd命令可以解决这件事,看下图: 这样就解决了.
- linux通过命令行查看MySQL编码并修改-简洁版方法
云服务器环境:CentOS 7.4 因为服务器配置较低,故使用MySQL5.5 未进行设置前 1.查看字符编码: mysql> show variables like '%character%' ...
- 利用命令行删除Android系统自带应用的方法
声明:本博客为原创博客.未经同意,不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(链接为http://blog.csdn.net/bettarwang/article/detai ...
随机推荐
- loj #117. 有源汇有上下界最小流
题目链接 有源汇有上下界最小流,->上下界网络流 注意细节,边数组也要算上后加到SS,TT边. #include<cstdio> #include<algorithm> ...
- 分数拆分(Fractions Again?!, UVa 10976)
题目链接:https://vjudge.net/problem/UVA-10976 It is easy to see that for every fraction in the form 1k(k ...
- HDU 3081 Marriage Match II (网络流,最大流,二分,并查集)
HDU 3081 Marriage Match II (网络流,最大流,二分,并查集) Description Presumably, you all have known the question ...
- FTP文件乱码和传输模式解释
转: FTP文件乱码和传输模式解释 2017年02月18日 10:50:03 -Hermes- 阅读数:12112更多 所属专栏: 异常解决方案急诊室 版权声明:大侠,在转载时请注明出处,小弟不胜 ...
- 洛谷P2148 [SDOI2009]E&D(博弈论)
洛谷题目传送门 先安利蒟蒻仍在施工的博弈论总结 首先根据题目,石子被两两分组了,于是根据SG定理,我们只要求出每一组的SG值再全部异或起来就好啦. 把每一对数看成一个ICG,首先,我们尝试构造游戏的状 ...
- MySQL5.5登录密码忘记了,怎嘛办?
1.关闭正在运行的MySQL. 2.打开DOS窗口,转到mysql\bin目录. 3.输入mysqld --skip-grant- tables回车.如果没有出现提示信息,那就对了. 4.再开一 ...
- vue props的理解
vue用了这么久,今天发现父子组件还是傻傻的分不清,不过还好,今天终于搞懂了 vue中到底什么是父组件,什么是子组件 vue之props父子组件之间的谈话 简单的理解就是:使用的地方是父组件,定义的地 ...
- 原生js轮播图实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- javascript 体验定时器
<script> // setInterval():循环定时器,循环执行 // setTimeout():炸弹定时器,只执行一次 //定义方法1:匿名函数 setInterval(func ...
- Study 5 —— CSS概述
CSS(Cascading Style Sheet)称为层叠样式表,也可以称为CSS样式表或样式表,其文件扩展名为.css,CSS是用于增强或控制网页样式,并允许将样式信息与网页内容分离的一种标记性语 ...