HCRM博客

CentOS中的SS5是什么?它如何工作?

CentOS SS5安装与配置详解

一、前言

CentOS是一种基于Red Hat Enterprise Linux(RHEL)的开源操作系统,以其稳定性和安全性著称,在络代理方面,SS5(Simple Socks Server 5)是一个高性能的SOCKS代理服务器,支持SOCK4和SOCKS5协议,本文将详细介绍如何在CentOS上安装和配置SS5,包括如何实现多进程、多IP地址绑定、用户名/密码认证等功能。

CentOS中的SS5是什么?它如何工作?-图1
(图片来源网络,侵权删除)

二、安装步骤

1. 系统准备

确保你的CentOS系统已经安装了以下工具:

wget:用于下载文件。

tar:用于解压文件。

make:用于编译软件。

vim:文本编辑器。

CentOS中的SS5是什么?它如何工作?-图2
(图片来源网络,侵权删除)

如果没有这些工具,可以通过以下命令安装:

sudo yum install y wget tar make vim

2. 安装依赖包

SS5需要一些开发库才能正常编译和运行,执行以下命令安装必要的依赖包:

sudo yum install y gcc automake make pamdevel openldapdevel cyrussasldevel openssldevel

3. 下载并安装SS5

从SourceForge下载SS5源码包:

wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.98/ss53.8.98.tar.gz nocheckcertificate

解压文件:

tar vzxf ss53.8.98.tar.gz
cd ss53.8.9

编译并安装SS5:

./configure
make
sudo make install

4. 配置SS5

默认情况下,SS5没有启用用户认证,这意味着任何人都可以使用该代理服务器,这是非常不安全的,我们需要修改配置文件来启用用户名和密码认证。

编辑SS5的主配置文件/etc/opt/ss5/ss5.conf

sudo vim /etc/opt/ss5/ss5.conf

找到以下两行,取消注释并将none改为u

#auth 0.0.0.0/0 none
#permit 0.0.0.0/0 none

修改为:

auth 0.0.0.0/0 u
permit u 0.0.0.0/0 0.0.0.0/0

添加用户名和密码到/etc/opt/ss5/ss5.passwd文件中,每行一个用户+密码,格式如下:

user1 password1
user2 password2
admin1 123456
admin2 abcdef

保存并关闭文件。

5. 配置防火墙和端口转发

为了允许外部访问SS5,需要配置防火墙规则,假设你想将SS5绑定到端口10808,执行以下命令:

sudo firewallcmd permanent addport=10808/tcp
sudo firewallcmd reload

6. 启动SS5并设置为开机自启

创建SS5服务文件/etc/rc.d/init.d/ss5

sudo cp /etc/opt/ss5/ss5 /etc/rc.d/init.d/ss5
sudo chmod a+x /etc/rc.d/init.d/ss5

启动SS5:

sudo /etc/rc.d/init.d/ss5 start

或者使用service命令:

sudo service ss5 start

设置SS5开机自启:

sudo chkconfig add ss5
sudo chkconfig level 345 ss5 on

三、高级配置:多进程、多IP地址绑定及限制访问目标网段

1. 多进程和多IP地址绑定

如果服务器有多个IP地址,可以运行多个SS5进程,每个进程绑定不同的IP地址和端口,为每个进程创建一个单独的用户:

sudo useradd user1 s /bin/false p YourPasswordHere
sudo useradd user2 s /bin/false p YourPasswordHere

查看用户的UID:

awk F: '/^user1:/{print $1,$4}' /etc/passwd
awk F: '/^user2:/{print $1,$4}' /etc/passwd

假设user1的UID是1001user2的UID是1002,配置iptables规则,根据用户的uid来设置出口IP地址:

sudo iptables t mangle A OUTPUT m owner uidowner 1001 j MARK setmark 1001;
sudo iptables t nat A POSTROUTING m mark mark 1001 j SNAT tosource IP_Address_1;
sudo iptables t mangle A OUTPUT m owner uidowner 1002 j MARK setmark 1002;
sudo iptables t nat A POSTROUTING m mark mark 1002 j SNAT tosource IP_Address_2;

IP_Address_1IP_Address_2分别替换为实际的IP地址,用不同用户启动SS5进程:

sudo u user1 ss5 b IP_Address_1:10808 u user1
sudo u user2 ss5 b IP_Address_2:10809 u user2

2. 限制访问目标网段

要限制SS5只能访问特定的网段,可以在配置文件中添加相应的规则,只允许访问192.168.1.0/24网段:

Auth SHost SPort DHost DPort Fixup Group Band ExpDate permit u 0.0.0.0/0 192.168.1.0/24

可以添加多条permit规则来允许访问多个网段。

四、常见问题解答(FAQs)

Q1:如何更改SS5的默认端口

A1:可以通过修改SS5的配置文件/etc/sysconfig/ss5中的SS5_OPTS参数来更改默认端口,将默认端口改为8899,编辑文件并修改为:

SS5_OPTS=" u root b 0.0.0.0:8899"

然后重新启动SS5服务:

sudo /etc/rc.d/init.d/ss5 restart

或使用service命令:

sudo service ss5 restart

Q2:如何为SS5添加更多的用户?

A2:可以通过编辑/etc/opt/ss5/ss5.passwd文件来添加更多用户,每行添加一个用户名和密码,格式如下:

username password

添加一个新用户user3,密码为password3

user3 password3

保存文件后,无需重启SS5服务,新用户即可立即生效。

通过以上步骤,你已经成功在CentOS上安装和配置了SS5,并且实现了多进程、多IP地址绑定以及用户名/密码认证等功能,如果在使用过程中遇到任何问题,欢迎随时提问。

分享:
扫描分享到社交APP
上一篇
下一篇