安装个 Shadowsocks 给新买的隧道用。
1、配置 repo 仓库给后面 YUM 安装使用
注:原仓库已经删除,现在只剩备份仓库,使用的 repo 源是备用仓库中 README.md 中记载的,应该是可信的,并且我参考大量的教程也均使用的是这个地址,如果你还是不放心请在代理专用服务器上安装。
cd /etc/yum.repos.d/
# 配置 repo 仓库
curl -O https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo
2、YUM 安装
执行:
yum install -y shadowsocks-libev
测试下是否安装成功:
ss-server
3、配置
默认配置路径为:/etc/shadowsocks-libev/config.json
vi /etc/shadowsocks-libev/config.json
默认的配置如下:
{
"server":"127.0.0.1",
"server_port":8388,
"local_port":1080,
"password":"mypassword",
"timeout":60,
"method":"chacha20-ietf-poly1305"
}
参数的解释(连接用的客户端简称为小飞机):
参数 | 解释 | 样例 | 效果 |
---|---|---|---|
server | 和 Nginx 的 server 差不多,解析来自指定 IP 或域名的流量。 | example.com | 只解析来自 example.com 的流量,连接时小飞机也配置同样的域名。 |
server_port | 服务端启动在的哪个端口。 | 18388 | 小飞机配置连接本服务器时的端口。 |
local_port | 客户端连接用的端口。 | 1080 | 服务启动在本地的 1080 端口上,与连接信息无关。 |
password | 客户端连接用的端口。 | mypassword | 小飞机配置连接本服务器时需要使用的密码。 |
timeout | 连接超时时间。 | 60 | |
method | 加密方式 | aes-256-cfb | 小飞机配置连接本服务器时需要使用的加密方式。 |
加密方式可选:rc4、rc4-md5、aes-128-cfb、aes-192-cfb、aes-256-cfb、bf-cfb、camellia-128-cfb、camellia-192-cfb、camellia-256-cfb、cast5-cfb 和 des-cfb,推荐选择最常用的 aes-256-cfb 以免造成客户端不支持部分加密方式的尴尬情况。
我修改后的配置:
{
// 0.0.0.0 即接受所有来源的请求,如果配置域名的话你需要先将域名解析到此服务器,防止出现 failed to resolve server name 的错误。
"server":"0.0.0.0",
"server_port":18388,
"local_port":1080,
"password":"mypassword",
"timeout":60,
"method":"aes-256-cfb"
}
5、开放防火墙和安全组
不赘述流程但是不要忘记有这一步。
我的 Linux 基础指令笔记中也有:Linux 命令(1)防火墙端口开启关闭
6、启动服务
启动和其他的常用指令一起写上:
# 启动 Shadowsocks 服务
systemctl start shadowsocks-libev
# 检查服务状态
systemctl status shadowsocks-libev
# 服务开机自启
systemctl enable shadowsocks-libev
# 查看 Shadowsocks 服务的全部日志
journalctl -u shadowsocks-libev
启动完状态应该是 active 的:
7、客户端测试连接
一般情况下你们都是在 Windows 或是手机端进行测试连接,这种情况我就不掩饰了手头没有闲置机器。
我这里挑一台空闲的 CentOS7 机器安装 Shadowsocks 客户端(说是客户端,其实 Shadowsocks 服务端和客户端是一体的)来测试刚刚配置的服务端能否正常使用:
# CentOS7 下一键安装 Shadowsocks 客户端
curl -s https://gitee.com/senjianlu/one-click-scripts/raw/main/CentOS7%20%E4%B8%8B%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%20Shadowsocks%20%E5%AE%A2%E6%88%B7%E7%AB%AF/install.sh | bash
然后配置下客户端连接信息(位置和服务端都一样的):
vi /etc/shadowsocks-libev/config.json
配置文件只将 server 改为服务端的 IP 或绑定域名即可,其他不动:
{
"server":"188.188.18.99",
"server_port":18388,
// 客户端的本地端口就在后续的访问上用到了
"local_port":1080,
"password":"mypassword",
"timeout":60,
"method":"aes-256-cfb"
}
改为使用 ss-local 来启动客户端:
# 启动后在后台运行
nohup /usr/bin/ss-local -c /etc/shadowsocks-libev/config.json >/dev/null 2>&1 &
测试访问一下:
# 访问 IP 信息获取接口,1080 为客户端所在端口
curl -x socks5://127.0.0.1:1080 http://ip-api.com/json/?lang=zh-CN
{"status":"success","country":"日本","countryCode":"JP","region":"xx","regionName":"Tokyo","city":"东京","zip":"xxx-xxxx","lat":xx.xxxx,"lon":xxx.xxx,"timezone":"Asia/Tokyo","isp":"xxxxxx","org":"xxxxxx","as":"xxxxxxx","query":"188.188.18.99"}
IP 对上了,说明配置没错!
结束。