之前的文章《CentOS 7 + TinyProxy 快速搭建HTTP代理》介绍了HTTP代理的搭建, 在实际使用中发现不是很方便, 所以再次尝试采用另外一种协议来实现.
简单了解一下我们现在的需求, 为了安全很多服务都会利用ip白名单方式来限制访问的来源.
在实际中我们并不是很容易提供一个固定ip, 因为手机、有线网络一般都是随机ip, 除非是购买过固定ip服务.
所以我们需要在防火墙之前通过架设代理服务器来提供固定ip.
shadowsocks 是一个经典的文明上网工具, 而且有很多语言的版本. 今天我们使用的方法虽然有点过时, 但是配置也还是快速有效.
我们采用是python语言开发的版本
dnf install python3
pip3 install shadowsocks
⚠️注意: 由于这个版本停止维护了, 所以有些跟不上时代了, 有个地方要人肉修复一下. 有可能路径不同请根据实际报错进行修改.
vim /usr/local/lib/python3.6/site-packages/shadowsocks/crypto/openssl.py
需要把libcrypto.EVP_CIPHER_CTX_cleanup.argtypes
替换为libcrypto.EVP_CIPHER_CTX_reset.argtypes
共两处.
:%s/cleanup/reset/
:x
这个版本需要手工创建配置文件, 按照常规习惯, 在/etc下创建配置目录
mkdir /etc/shadowsocks
创建配置文件
vim /etc/shadowsocks/shadowsocks.json
添加配置
{
"server":"0.0.0.0",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"bestyii",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}
参数 | 说明 |
---|---|
server | 服务器监听地址 |
server_port | 服务器监听端口 |
local_address | 本地地址 |
local_port | 本地监听端口 |
password | 服务器密码 |
timeout | 超时时间(单位秒) |
method | 加密方式, 默认"aes-256-cfb" |
fast_open | 是否使用TCP_FASTOPEN, true / false |
centos7以后采用systemctl
来管理进程, 这个方式用起来还是很方便, 所以我们也给他配置上.
打开配置文件
vim /etc/systemd/system/shadowsocks.service
写入配置
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/shadowsocks.json
[Install]
WantedBy=multi-user.target
设置开机启动
systemctl enable shadowsocks
如果是用阿里云、腾讯云则去主机的安全组中设置开放端口, 如果是自建主机, 需要开放本机防火墙
firewall-cmd --permanent --add-port=8388/tcp
firewall-cmd --reload
启动服务
systemctl start shadowsocks
查看运行状态
systemctl status shadowsocks -l
客户端可以根据自己习惯使用shadowsocks
或V2rayU
本文由 edge 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。