CentOS 7命令行使用shadowsocks客户端(和服务的)代理的方法

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
-----------方案一 centos使用SS翻墙 -------------
socks5 全局代理
安装 sslocal
pip install shadowsocks # pip安装ss客户端
#如果提示 -bash: pip: command not found
#运行 yum -y install python-pip
#第二步shadowsocks.json
vim /etc/shadowsocks.json
--- shadowsocks.json ---
{
"server":"SERVER-IP", # 你的服务器ip
"server_port":PORT, # 服务器端口
"local_address": "127.0.0.1",
"local_port":1080,
"password":"PASSWORD", # 密码
"timeout":300,
"method":"aes-128-cfb", # 加密方式
"fast_open": false,
"workers": 1
}
--- shadowsocks.json ---
运行 sslocal
nohup sslocal -c /etc/shadowsocks.json &>> /var/log/sslocal.log &
privoxy篇
安装 privoxy
yum -y install privoxy
配置 socks5 全局代理
echo 'forward-socks5 / 127.0.0.1:1080 .' >> /etc/privoxy/config
设置 http/https 代理
export http_proxy=http://127.0.0.1:8118 # privoxy默认监听端口为8118
export https_proxy=http://127.0.0.1:8118
运行 privoxy
service privoxy start
测试 socks5 全局代理
curl www.google.com
## 如果出现下面这段输出则代理成功!
------------------------------------------------------------------------------
302 Moved
302 Moved
The document has moved
here.
------------------------------------------------------------------------------
简化使用
进过上面的步骤我们的确代理成功了。。但是每次都要输入这么多命令太麻烦
这时我们可以利用 命令别名 来简化我们的操作
alias ssinit='nohup sslocal -c /etc/shadowsocks.json &>> /var/log/sslocal.log &'
alias sson='export http_proxy=http://127.0.0.1:8118 && export https_proxy=http://127.0.0.1:8118 && systemctl start privoxy'
alias ssoff='unset http_proxy && unset https_proxy && systemctl stop privoxy && pkill sslocal'
使用方法
### 开启ss代理
ssinit
sson
## 关闭ss代理
ssoff
------------------------方案二-----------------------
安装客户端shadowsocks
其实shadowsocks安装时是不分客户端还是服务器端的,只不过安装后有两个脚本一个是sslocal代表以客户端模式工作,一个是ssserver代表以服务器端模式工作。(注意下方所有命令,如果你已经是root超级管理员,则不用加sudo)
首先执行命令:
sudo yum install python-pip
在使用centos7的软件包管理程序yum安装python-pip的时候会报一下错误:
No package python-pip available.
Error: Nothing to do
说没有python-pip软件包可以安装。
这是因为像centos这类衍生出来的发行版,他们的源有时候内容更新的比较滞后,或者说有时候一些扩展的源根本就没有。
所以在使用yum来search python-pip的时候,会说没有找到该软件包。因此为了能够安装这些包,需要先安装扩展源EPEL。
EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。
首先安装epel扩展源:
sudo yum -y install epel-release
然后再次执行命令:
sudo yum -y install python-pip
安装完之后别忘了清除一下cache:
sudo yum clean all
安装Shadowsocks客户端:
sudo pip install shadowsocks
配置Shadowsocks连接
新建配置文件、默认不存在
sudo mkdir /etc/shadowsocks
sudo vi /etc/shadowsocks/shadowsocks.json
添加配置信息:前提是需要有ss服务器的地址、端口等信息:
{
"server":"x.x.x.x", # Shadowsocks服务器地址
"server_port":1035, # Shadowsocks服务器端口
"local_address": "127.0.0.1", # 本地IP
"local_port":1080, # 本地端口
"password":"password", # Shadowsocks连接密码
"timeout":300, # 等待超时时间
"method":"aes-256-cfb", # 加密方式
"fast_open": false, # true或false。开启fast_open以降低延迟,但要求Linux内核在3.7+
"workers": 1 #工作线程数
}
配置自启动
新建启动脚本文件/etc/systemd/system/shadowsocks.service,内容如下:
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks/shadowsocks.json
[Install]
WantedBy=multi-user.target
启动Shadowsocks服务
# 设置开机自启命令
systemctl enable shadowsocks.service
# 启动命令
systemctl start shadowsocks.service
#查看状态命令
systemctl status shadowsocks.service
依次执行上面的三条命令,如下:
[root@ssserver ~]# vi /etc/shadowsocks.json
[root@ssserver ~]#
[root@ssserver ~]#
[root@ssserver ~]# vi /etc/systemd/system/shadowsocks.service
[root@ssserver ~]#
[root@ssserver ~]#
[root@ssserver ~]#
[root@ssserver ~]# systemctl enable shadowsocks
Created symlink from /etc/systemd/system/multi-user.target.wants/shadowsocks.service to /etc/systemd/system/shadowsocks.service.
[root@ssserver ~]# systemctl start shadowsocks
[root@ssserver ~]# systemctl status shadowsocks
● shadowsocks.service - Shadowsocks
Loaded: loaded (/etc/systemd/system/shadowsocks.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2018-08-28 13:27:53 UTC; 7s ago
Main PID: 1259 (ssserver)
CGroup: /system.slice/shadowsocks.service
└─1259 /usr/bin/python /usr/bin/ssserver -c /etc/shadowsocks.json
Aug 28 13:27:53 ssserver systemd[1]: Started Shadowsocks.
Aug 28 13:27:53 ssserver systemd[1]: Starting Shadowsocks...
Aug 28 13:27:54 ssserver ssserver[1259]: INFO: loading config from /etc/shadowsocks.json
Aug 28 13:27:54 ssserver ssserver[1259]: 2018-08-28 13:27:54 INFO loading libcrypto from libcrypto.so.10
Aug 28 13:27:54 ssserver ssserver[1259]: 2018-08-28 13:27:54 INFO starting server at 0.0.0.0:50013
验证Shadowsocks客户端服务是否正常运行
curl --socks5 127.0.0.1:1080 http://httpbin.org/ip
- Shadowsock客户端服务已正常运行,则结果如下:
- {"origin": "x.x.x.x" #你的Shadowsock服务器IP}
安装配置privoxy
安装privoxy
yum install privoxy -y
systemctl enable privoxy
systemctl start privoxy
systemctl status privoxy
配置privoxy 修改配置文件/etc/privoxy/config
listen-address 127.0.0.1:8118 # 8118 是默认端口,不用改
forward-socks5t / 127.0.0.1:1080 . #转发到本地端口,注意最后有个点
设置http、https代理:
# vi /etc/profile 在最后添加如下信息
PROXY_HOST=127.0.0.1
export all_proxy=http://$PROXY_HOST:8118
export ftp_proxy=http://$PROXY_HOST:8118
export http_proxy=http://$PROXY_HOST:8118
export https_proxy=http://$PROXY_HOST:8118
export no_proxy=localhost,172.16.0.0/16,192.168.0.0/16.,127.0.0.1,10.10.0.0/16
# 重载环境变量
source /etc/profile
测试代理
[root@aniu-k8s ~]# curl -I www.google.com
HTTP/1.1 200 OK
Date: Fri, 26 Jan 2018 05:32:37 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Set-Cookie: 1P_JAR=2018-01-26-05; expires=Sun, 25-Feb-2018 05:32:37 GMT; path=/; domain=.google.com
Set-Cookie: NID=122=PIiGck3gwvrrJSaiwkSKJ5UrfO4WtAO80T4yipOx4R4O0zcgOEdvsKRePWN1DFM66g8PPF4aouhY4JIs7tENdRm7H9hkq5xm4y1yNJ-sZzwVJCLY_OK37sfI5LnSBtb7; expires=Sat, 28-Jul-2018 05:32:37 GMT; path=/; domain=.google.com; HttpOnly
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding
Proxy-Connection: keep-alive
取消使用代理
while read var; do unset $var; done < <(env | grep -i proxy | awk -F= '{print $1}')
查看后台进程
[root@kcw ~]# ps aux |grep sslocal |grep -v "grep"
root 7587 0.1 0.1 184180 8624 pts/0 S 08:44 0:03 /usr/bin/python /usr/bin/sslocal -c /etc/shadowsocks.json /dev/null
---------------------------服务端------------------------------
CentOS7下安装配置shadowsocks
服务器基本操作
链接服务器:ssh root@xxxx.xxx.xxx.xxx -p XXXX < xxx:ip,XXXX:port
修改密码:passwd
断开链接:close
安装 pip
pip是 python 的包管理工具。在本文中将使用 python 版本的 shadowsocks,此版本的 shadowsocks 已发布到 pip 上,因此我们需要通过 pip 命令来安装。
在控制台执行以下命令安装 pip:
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
安装epel和pip
安装epel扩展源,并采用Python包管理工pip安装。
pip是 python 的包管理工具。在本文中将使用 python 版本的 shadowsocks,此版本的 shadowsocks 已发布到 pip 上,因此需要通过 pip 命令来安装。
sudo yum -y install epel-release
sudo yum -y install python-pip
安装Shadowsocks
在命令行运行下面的命令安装shadowsocks:
pip install --upgrade pip
pip install shadowsocks
配置
普通配置
安装完成后,需要创建配置文件/etc/shadowsocks.json,内容如下:
{
"server": "0.0.0.0",
"server_port": 1111,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "mypassword",
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false
}
字段 说明 是否必须
server 服务端监听地址,使用0.0.0.0也可以 是
server_port 服务端端口 是
local_address 本地监听地址,默认即可 否
local_port 本地监听端口,需要跟其他进程不重复 否
password 密码 是
timeout 超时时间(秒) 否
method 加密方法,可选aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb, rc4-md5, chacha20, salsa20, rc4, table 是
fast_open 是否启用TCP-Fast-Open,true或者false 否
以上三项信息在配置 shadowsocks 客户端时需要配置一致,具体说明可查看 shadowsocks 的帮助文档。
配置多个用户
除了上面的配置,也可能使用多端口多密码配置,彼此没有干扰,内容如下:
{
"server":"0.0.0.0",
"local_address":"127.0.0.1",
"local_port":1080,
"port_password": { --每个端口对应一个密码
"1111": "password1",
"1112": "password2",
"1113": "password3"
},
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false
}
进程管理
启动进程
sudo ssserver -c /etc/shadowsocks.json -d start
关闭进程
sudo ssserver -c /etc/shadowsocks.json -d stop
重启进程
sudo ssserver -c /etc/shadowsocks.json -d restart
检查进程
分别使用ps和netstat命令查看进程和端口
sudo yum -y install net-tools
ps aux |grep shadowsocks
netstat -tunpl|grep 1111
使用Supervisord管理进程
如果未使用Supervisord管理后台进程,可以参考文章下面的连接设置开机自启动等。
管理配置
针对shadowsocks的Supervisord的配置可以参考下面的配置。
[program:shadowsocks]
process_name=%(program_name)s_%(process_num)02d
command=ssserver -c /etc/shadowsocks.json
autostart=true
autorestart=true
user=nobody
numprocs=1
redirect_stderr=true
stdout_logfile=/var/log/shdowsocks.out.log
stderr_logfile=/var/log/shdowsocks.err.log
重载配置
重载配置之前请先保证shadowsocks进程未启动。
sudo supervisorctl reread && sudo supervisorctl update
文章来源参考:
https://curder.gitbooks.io/blog/content/centos/installing-configuration-shadowsocks-under-centos-7.html
https://blog.csdn.net/yanzi1225627/article/details/51121507/
https://blog.csdn.net/wh211212/article/details/79165415
https://blog.csdn.net/lell3538/article/details/50812161
https://i.jakeyu.top/2017/03/16/centos%E4%BD%BF%E7%94%A8SS%E7%BF%BB%E5%A2%99/
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏