首页 > 系统 > Linux > 正文

Linux下使用shadowsocks(以ubuntu16.04为例,非服务器)

2024-06-28 16:03:04
字体:
来源:转载
供稿:网友

系统环境:Ubuntu 16.04

安装

linux不同的发行版执行的命令如下(最好在root下运行以下命令,原因我下面会说明):

Debian / Ubuntu: apt-get install python-pip pip install shadowsocks

CentOS: yum install python-setuptools && easy_install pip pip install shadowsocks

配置

sudo vim /etc/shadowsocks.json //这里的json文件是自己创建的,不是系统自带

配置文件的内容大致如下:

{ “server”:”服务器的ip”, “server_port”:服务器的端口, “local_address”:”127.0.0.1”, “local_port”:1080, “passWord”:”密码”, “timeout”:300, “method”:”aes-256-cfb”, “fast_open”:false }

启动ss客户端

前两步很简单,可是有人就纳闷了安装好了不知道怎么用,其实可以用sslocal -help 来查看帮助就知道了

sslocal -c /etc/shadowsocks.json

一条命令代理就可以启动了。 这里仅仅是启动了shadowsocks还是不行的,我们还需要设置相关的代理。

转换HTTP代理

Shadowsocks默认是用Socks5协议的,对于Terminal的get,wget等走Http协议的地方是无能为力的,所以需要转换成Http代理,加强通用性,这里使用的转换方法是基于Polipo的。

输入命令安装Polipo: sudo apt-get install polipo

修改配置文件: sudo gedit /etc/polipo/config

将下面的内容整个替换到文件中并保存:

# This file only needs to list configuration variables that deviate # from the default values. See /usr/share/doc/polipo/examples/config.sample # and "polipo -v" for variables you can tweak and further information. logSyslog = false logFile = "/var/log/polipo/polipo.log" socksParentPRoxy = "127.0.0.1:1080" socksProxyType = socks5 chunkHighMark = 50331648 objectHighMark = 16384 serverMaxSlots = 64 serverSlots = 16 serverSlots1 = 32 proxyAddress = "0.0.0.0" proxyPort = 8123

重启Polipo: /etc/init.d/polipo restart

验证代理是否正常工作: export http_proxy=”http://127.0.0.1:8123/” curl www.google.com

如果正常,就会返回抓取到的Google网页内容。

另外,在浏览器中输入http://127.0.0.1:8123/便可以进入到Polipo的使用说明和配置界面。

配置浏览器

在Firefox中

preference->advanced->network->connection->settings中选择手动设置代理,并将http代理设置为127.0.0.1 端口8123 (就是之前第二步配置的port) 做到这步应该就能通过shadowsocks访问了,但我遇到的电脑还是不行,后来将http代理下面的“Use this proxy server for all protocols(将代理应用到所有协议)”这个也钩上才可以了。

PS.如果跳过第二步,直接在第三部中配置http代理设置为127.0.0.1 端口1080,有些文章中是这样配置的,但是本人亲测这样无法连接上网。

Ubuntu开机后自动运行

现在可以科学上网了,可是每次开机都要手动打开终端输入一条命令,虽然这条命令并不长,但是每次都去手动输入,显得自己很low,而且关掉终端代理就关闭了。

写个脚本

我们可以在比如/home下新建个文件叫做shadow.sh,在里面写上我们启动ss客户端需要的命令,然后保存即可。

#!/bin/bash#shadow.shsslocal -c /etc/shadowsocks.json

看可不可以我们到终端执行命令 sh /home/shadow.sh,如果成功的话会有信息输出的。你也可以到浏览器去试试。这个时候你虽然输入的少了,可是关了终端还是会掉的,我们可以让他在后台运行,nohup sh /home/shadow.sh &。

加入开机运行

这里我们需要在/etc下编辑一个叫rc,local的文件,需要root权限,在终端先su获取root权限。

这里问题来了,因为我们要开机启动,要使用root权限来执行前面写好的脚本,但如果你的shawdocks不是在root下装的话,执行脚本是就会报错: “Traceback (most recent call last): File “/home/gaoxw/.local/bin/sslocal”, line 7, in from shadowsocks.local import main” 使用sudo安装还是会报上面这个错误。

如果你有root帐号的话,然后vim /etc/rc.local编辑,在exit之前输入nohup bash /home/shadow.sh>/home/d.txt & 保存。

这个时候你可以reboot重启了,测试下看看能不能后台自动运行,重启你可以先去看下我们要他输出d.txt,你竟然发现是 /home/shadow.sh line 3 :sslocal: command not found,打开浏览器果然是无法链接代理服务器。

经过一番搜索我们发现远离linux是找不到sslocal这条命令?需要添加路径,我们发现sslocal和ssserver这两个命令是被存在 /usr/local/bin下面的,其实不用去profile添加了,直接把这两个文件移动到/bin下,就可以了。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表