『 小目录 · Index 』
Shadowsocks的安装
首先安装Python的构建工具
sudo apt install python-setuptools
安装python的pip包管理器
sudo apt install python-pip
然后从Github页面拉取shadowsocks项目
sudo pip install git+https://github.com/shadowsocks/[email protected]
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