命令行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 ...
随机推荐
- NOIP2013题解
NOIP2013题解 Day1 转圈游戏 circle 快速幂模板题. #include<iostream> using namespace std; int n,m,k,x; int f ...
- FreeRTOS 中 systick 相关配置
@2018-7-16 > systick 属性配置 在文件 <port.c> 中函数 void vPortSetupTimerInterrupt( void ) 中配置计数周期.时钟 ...
- BZOJ4332 JSOI2012 分零食 【倍增 + NTT】
题目链接 权限题BZOJ4332 题解 容易想到\(dp\) 设\(g[i][j]\)表示前\(i\)人分到\(j\)颗糖的所有方案的乘积之和 设\(f(x) = Ox^2 + Sx + U\) \[ ...
- luogu3380/bzoj3196 二逼平衡树 (树状数组套权值线段树)
带修改区间K大值 这题有很多做法,我的做法是树状数组套权值线段树,修改查询的时候都是按着树状数组的规则找出那log(n)个线段树根,然后一起往下做 时空都是$O(nlog^2n)$的(如果离散化了的话 ...
- 【POJ3635】Full Tank 优先队列BFS
普通BFS:每个状态只访问一次,第一次入队时即为该状态对应的最优解. 优先队列BFS:每个状态可能被更新多次,入队多次,但是只会扩展一次,每次出队时即为改状态对应的最优解. 且对于优先队列BFS来说, ...
- 20190311 Windows上ZooKeeper伪集群的实现
1. 复制并修改conf/zoo.cfg文件 以zoo1.cfg为例: dataDir=E:\\Develop\\zookeeper\\3.4.6\\zookeeper-3.4.6\\data1 da ...
- python自动化运维之路~DAY2
python自动化运维之路~DAY2 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符编码与转码 1.什么是编码. 基本概念很简单.首先,我们从一段信息即消息说起,消息以人类 ...
- python---ORM之SQLAlchemy(5)联合唯一的使用
# coding:utf8 # __author: Administrator # date: // # /usr/bin/env python import sqlalchemy from sqla ...
- error: control may reach end of non-void function [-Werror,-Wreturn-type]
编译出现如下错误 error: control may reach end of non-void function [-Werror,-Wreturn-type] 这个错误可能和编译器有关(在相同代 ...
- ping 返回的TTL数值代表什么?
ping 返回的TTL数值代表什么? 1 [root@standby ~]# dig @202.106.0.20 www.iqiyi.com 2 3 ; <<>> DiG 9. ...