# CentOS/RHEL
yum install -y gcc openssl-devel pam-devel openldap-devel cyrus-sasl-devel \
make wget tar
# Ubuntu/Debian
apt update
apt install -y gcc libssl-dev libpam0g-dev libldap2-dev \
libsasl2-dev make wget tar
cd /usr/local/src
wget https://downloads.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
tar -zxvf ss5-3.8.9-8.tar.gz
cd ss5-3.8.9
./configure
make
make install
# 备份原始配置
cp /etc/opt/ss5/ss5.conf /etc/opt/ss5/ss5.conf.bak
cp /etc/opt/ss5/ss5.passwd /etc/opt/ss5/ss5.passwd.bak
# 编辑主配置文件
vim /etc/opt/ss5/ss5.conf
# 启用认证(取消注释)
auth 0.0.0.0/0 - u
# 设置代理类型(取消注释)
permit u 0.0.0.0/0 - 0.0.0.0/0 - - - - -
# 监听端口(默认为1080)
set SS5_SOCKS_PORT 1080
# 其他重要配置
set SS5_DNSORDER local
set SS5_PAM_SERVICE passwd
# 编辑密码文件
vim /etc/opt/ss5/ss5.passwd
# 格式:username password
# 示例:
user1 123456
user2 pass123
# 启动
/etc/rc.d/init.d/ss5 start
# 停止
/etc/rc.d/init.d/ss5 stop
# 重启
/etc/rc.d/init.d/ss5 restart
# 查看状态
/etc/rc.d/init.d/ss5 status
# CentOS 7+
chmod +x /etc/rc.d/init.d/ss5
systemctl enable ss5
# Ubuntu/Debian
update-rc.d ss5 defaults
# CentOS 7+
firewall-cmd --permanent --add-port=1080/tcp
firewall-cmd --reload
# Ubuntu
ufw allow 1080/tcp
ufw reload
# 或使用iptables
iptables -A INPUT -p tcp --dport 1080 -j ACCEPT
service iptables save
# 无需认证
curl --socks5 服务器IP:1080 http://ifconfig.me
# 使用认证
curl --socks5 用户名:密码@服务器IP:1080 http://ifconfig.me
# 安装proxychains
yum install -y proxychains-ng # CentOS
apt install -y proxychains # Ubuntu
# 配置
vim /etc/proxychains.conf
# 添加:socks5 服务器IP 1080 用户名 密码
# 测试
proxychains curl http://ifconfig.me
# 在ss5.conf中添加
set SS5_SOCKS_PORT 1080,1081,1082
# 允许特定IP段
permit u 192.168.1.0/24 - 0.0.0.0/0 - - - - -
# 拒绝特定IP
deny u 10.0.0.100 - 0.0.0.0/0 - - - - -
# 启用日志
set SS5_LOG_FILE /var/log/ss5/ss5.log
set SS5_LOG_STDERR /var/log/ss5/ss5_stderr.log
# 创建日志目录
mkdir -p /var/log/ss5
chown -R nobody:nobody /var/log/ss5
# 查看进程
ps aux | grep ss5
# 查看端口
netstat -tlnp | grep 1080
# 查看日志
tail -f /var/log/ss5/ss5.log
# 权限问题
chown -R nobody:nobody /etc/opt/ss5
# 端口占用
netstat -tlnp | grep 1080
# SELinux问题(CentOS)
setsebool -P httpd_can_network_connect 1
这个安装过程相对简单,但配置灵活,可以根据实际需求调整认证方式、访问控制等参数。