全新Ubuntu部署和使用shadowsocks

Shadowsocks的安装

首先安装Python的构建工具

sudo apt install python-setuptools

安装python的pip包管理器

sudo apt install python-pip

然后从Github页面拉取shadowsocks项目

sudo pip install git+https://github.com/shadowsocks/shadowsocks.git@master

 

Shadowsocks的使用

以下命令可以在443端口上开启shadowsocks,密码是password,加密方式是aes-256cfb:

ssserver -p 443 -k password -m aes-256-cfb

(但是端口号最好是8838,这是shadowsocks默认的约定俗成,注意服务器安全组已经开放了这个端口)

在后台运行:

sudo ssserver -p 443 -k password -m aes-256-cfb –user nobody -d start

停止运行:

sudo ssserver -d stop

查看后台运行时产生的log文件:

sudo less /var/log/shadowsocks.log

 

高级设置

读取配置文件运行Shadowsocks

在/etc/shadowsocks.json建立文件,内容为:

{
“server”:”my_server_ip”,
“server_port”:8388,
“local_address”: “127.0.0.1”,
“local_port”:1080,
“password”:”mypassword”,
“timeout”:300,
“method”:”aes-256-cfb”,
“fast_open”: false
}

参数解释:

server 开启服务的ip地址
server_port 监听服务的端口
local_address 本地监听地址
local_port 本地监听端口
password 用于加密的密码
timeout 超时时间,以秒为单位
method 加密方式。默认: “aes-256-cfb”, 详细请查看 加密
fast_open 是否使用 TCP_FASTOPEN, true / false
workers workers的数量,仅在Unix/Linux有效

设置多用户将password替换为

“port_password”:{
“8000”:“123456”,
“8001”:“123456”
},

在前台用配置文件运行:

ssserver -c /etc/shadowsocks.json

在后台用配置文件运行/暂停:

ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop

 

用Supervisor管理shadowsocks运行

现在的SS虽然可以后台运行,但是每次重启服务器后不会自动启动,需要手动执行命令开启。这会造成不便。我们可以用supervisor使其自动运行。

apt install supervisor

我们可以给每个任务单独编写配置文件,以.conf为拓展名放在/etc/supervisor/conf.d/目录下。

我们创建shadowsocks.conf文件,内容如下:

[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json -d start
directory=/root
user=root

其中,进程shadowsocks定义在[program:shadowsocks]中,command是命令,directory是进程的当前目录,user是进程运行的用户身份。

之后我们重启supervisor使配置文件生效:

service supervisor restart

然后就可以使用supervisor控制shadowsocks了:

supervisorctl start shadowsocks

supervisorctl start shadowsocks

大家可以重启下系统看看shadowsocks是否自动重新启动:

sudo reboot

另外一种方法是将启动的命令直接放在/etc/rc.local文件后

 

Shadowsocks在linux上作为客户端使用

配置socks代理

创建一个配置文件shadowsocks.json,并修改对应信息与服务端同步:

{
“server”:””,
“server_port”:8388,
“local_port”:1080,
“password”:””,
“timeout”:600,
“method”:”aes-256-cfb”
}

设置多服务器将”server”、”server_port”、”password”改为

“server_password”:[
[“my_server_ip1”, 10086, “123456789cde”],
[“my_server_ip2”, 10087, “369852147zxc”],
[“my_server_ip3”, 10088, “qazwsxedcrfv”],
[“my_server_ip4”, 10089, “barfoo!abcde”]
]

执行命令:

sslocal -c shadowsocks.json

此时系统会监听本地的1080端口。

socks代理→http代理

上述安好了shadowsocks,但它是socks5代理。在shell里执行的命令,发起的网络请求暂不支持socks5代理,只支持http/https代理。我们需要将socks代理转化为http代理才可使用外部通道。有几种方法:

方法一

用proxychains 自动将socks代理转化为http代理

安装:

git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure
make && make install
cp ./src/proxychains.conf /etc/proxychians.conf
cd .. && rm -rf proxychains-ng

配置:

修改配置文件proxychains.conf。
将socks4 127.0.0.1 9095改为

socks5 127.0.0.1 1080 //1080改为你自己的端口

使用:

在需要代理的命令前加上 proxychains4 ,如:

proxychains4 wget http://xxx.com/xxx.zip

如果命令需要sudo权限,那么前后都要加sudo。
如果配置文件没有指定可以手动指定

sudo proxychains4 -f /etc/your-config.conf sudo wget http://xxx.com/xxx.zip

方法二

用polipo这个工具将socks代理转化为http代理

安装:

sudo apt-get install polipo

配置:

停止polipo服务 sudo service polipo stop
编辑polipo配置文件/etc/polipo/config,添加如下内容:

socksParentProxy = localhost:1080
proxyPort = 1081

启动polipo服务

sudo service polipo start

使用:

  • app里面配置http_proxy=http://127.0.0.1:1081
  • bash里面可以编辑HOME/.bashrc,添加export http_proxy=http://127.0.0.1:1081 导出环境变量。当前bash要执行source HOME/.bashrc来使配置文件生效。
  • git配置git config –global http.proxy 127.0.0.1:1081

方法三:

使用Privoxy代理将所有http请求转发给shadowsocks。

详情:

http://blog.csdn.net/yanzi1225627/article/details/51121507

http://www.privoxy.org/

 

使用网页管理shadowsocks

预览:https://wall.gyteng.com/home/index

 

 

官方英文教程:https://github.com/shadowsocks/shadowsocks/blob/master/README.md

官方文档:https://github.com/shadowsocks/shadowsocks/wiki

Be the first to comment

Leave a comment

Your email address will not be published.


*


不够聪明的人工智能可进不来哦 *