安装Shadowsocks
Debian / Ubuntu:
1 | apt-get install python-pip |
编辑文件/etc/shadowsocks.json
,填写代理信息:
1 | { |
其中local_address是本地绑定的IP。
method是加密码算法,这个必须跟shadowsocks的服务端的一致。
其它参数不解释,很容易理解。
接下来启动shadowsocks客户端。$ sudo sslocal -c /etc/shadowsocks.json -d start
要停止它,请用下面的命令:$ sudo sslocal -c /etc/shadowsocks.json -d stop
推荐使用Shadowsocks-qt5的方式,【Ubuntu使用Shadowsocks-qt5科学上网】。
安装Privoxy
Shadowsocks是一个使用SOCKS5(或者SOCK4之类)协议的代理,它只接受SOCKS5协议的流量,不接受HTTP或者HTTPS的流量。所以当你在Chrome上能穿墙的时候,是Proxy SwitchyOmega插件把HTTP和HTTPS流量转换成了SOCKS协议的流量,才实现了Shadowsocks的代理。而终端是没有这样的协议转换的,所以没法直接使用Shadowsock进行代理。
在linux下可以使用privoxy来实现这个转换。
$ sudo apt-get install privoxy
编辑配置文件/etc/privoxy/config
,加入下面两行内容。
1 | forward-socks5t / 127.0.0.1:1080 . |
需要注意:127.0.0.1:1080
是shadowsocks的客户端的IP和端口,要与上面shadowsocks里的配置相符。
请不要忽略这行配置后面的.
,这可不是句号的意思,这个必须有。
启动服务:$ sudo service privoxy restart
这样就配置好了。
配置http proxy
方法一:
配置全局http proxy, sudo vi /etc/environment
, 加入下面的代码
1 | export http_proxy=http://127.0.0.1:8118 |
重启机器sudo shutdown -r now
后生效。
/etc/environment
中不能包含命令,即直接通过VAR="..."
的方式设置,不使用 export 。
使用source /etc/environment
可以使变量设置在当前窗口立即生效,需注销/重启之后,才能对每个新终端窗口都生效。
方法二:
1.配置转发sudo vim ~/.bashrc
,zsh的文件是.zshrc
2.在最后添加如下代码:
1 | export http_proxy="http://127.0.0.1:8118" |
3.重载配置source ~/.bashrc
方法三:
只对当前终端设置http_proxy, 在当前窗口执行:
1 | export http_proxy="http://127.0.0.1:8118" |
这么做只对当前终端设置代理有效,新打开的终端代理失效。另外执行sudo apt-get update
时,如果是国外的源,或者被墙的源,只能走全局代理才能更新成功。
方法四【推荐】:
在【系统设置】-【网络】-【网络代理】中选择【手动】,设置HTTP/HTTPS代理。
这么设置的话,chrome中不需要任何配置,也实现了匿名访问。
对于telegram这类软件,它的源会被大陆墙掉,apt install
会卡住,只能使用方法一配置全局代理。
测试代理是否成功:$ curl ip.cn
参考:
Linux下用shadowsocks和Privoxy实现翻墙
ubuntu下, 使用shadowsock和Privoxy帮助你在命令行中, 无障碍进行go get
Ubuntu配置Shadowsocks实现终端代理
Ubuntu 使用 ShadowSocks + Privoxy 代理
设置Linux环境变量的方法和区别_Ubuntu