1. 程式人生 > >安裝 SS5 SOCKS5 代理伺服器,多程序/多IP地址出口/多埠

安裝 SS5 SOCKS5 代理伺服器,多程序/多IP地址出口/多埠

SS5 是高效能的 SOCKS 代理伺服器,支援 SOCK4 和 SOCKS5 協議。下面的安裝指南詳細描述瞭如何在 CentOS 伺服器上安裝和配置SS5,執行多個 ss5 程序來繫結不同埠到多個IP地址 ,以及設定使用者名稱/密碼認證的方法。

1. 從 sourceforge.net 下載最新的原始碼
wget http://downloads.sourceforge.net/ss5/ss5-3.8.9-8.src.rpm

2. 編譯原始碼
ss5 需要 openldap-devel, pam-devel 和 openssl-devel 開發包,可以使用 YUM 安裝:

32 位 Linux 系統,
yum install gcc rpm-build openldap-devel pam-devel openssl-devel


64 位 Linux 系統,
yum install gcc.x86_64 rpm-build.x86_64 openldap-devel.x86_64 pam-devel.x86_64 openssl-devel.x86_64

安裝 libgssapi-devel,
yum install libgssapi-devel

然後生成 rpm 包:
rpmbuild --rebuild ss5-3.8.9-8.src.rpm

3. 安裝 SS5 rpm 包
在 CentOS 5.x 系統裡, RPM 包位於 /usr/src/redhat/RPMS/。
在 CentOS 6.x 系統裡, RPM 包位於安裝目錄下 rpmbuild/RPMS/ 的子目錄中。使用下面的命令來安裝 RPM 包:
CentOS 5 系統,
rpm -ivh /usr/src/redhat/RPMS/x86_64/ss5-3.8.9-8.x86_64.rpm

 (針對64 位 Linux)
rpm -ivh /usr/src/redhat/RPMS/i386/ss5-3.8.9-8.i386.rpm (針對32 位 Linux)
CentOS 6 系統 (可能需要輸入命令 “cd” 切換到 root 使用者目錄),
rpm -ivh rpmbuild/RPMS/x86_64/ss5-3.8.9-8.x86_64.rpm (針對64 位 Linux)
rpm -ivh rpmbuild/RPMS/x86_64/ss5-3.8.9-8.i386.rpm (針對32 位 Linux)

4. 以 root 身份執行 SS5 並修改埠為 8899 (預設埠 1080)
修改 /etc/init.d/ss5 並在檔案頂部的 #!/bin/sh 之後新增下面的程式碼:
export SS5_SOCKS_PORT=8899
export SS5_SOCKS_USER=root

(可以使用任何埠,但是請在防火牆中開啟)

5. 設定使用者名稱/密碼
SS5 配置檔案位於 /etc/opt/ss5/ss5.conf, ‘auth’ 引數用於設定認證模式。

不使用使用者認證,
auth 0.0.0.0/0 – –
使用使用者名稱/密碼認證,
auth 0.0.0.0/0 – u

使用者名稱/密碼儲存在檔案 /etc/opt/ss5/ss5.passwd。請設定許可權:
chown root:root /etc/opt/ss5/ss5.passwd
chmod 755 /etc/opt/ss5/ss5.passwd
chmod 755 /etc/opt/ss5

在檔案 /etc/opt/ss5/ss5.passwd 中, 每行輸入一個使用者名稱和密碼,用空格分開。
例如:
user1 pass1
user2 pass2

6. 設定許可權 ( /etc/opt/ss5/ss5.conf )
允許所有主機連線:
permit u 0.0.0.0/0 – 0.0.0.0/0 – – – – –

7. 啟動/停止/重啟 ss5
service ss5 start
service ss5 stop
service ss5 restart

如果出現下面的錯誤, 先建立 /var/run/ss5 目錄後再啟動 ss5 。
Can’t create pid file /var/run/ss5/ss5.pid
Can’t unlink pid file /var/run/ss5/ss5.pid

預設的日誌檔案路徑: /var/log/ss5/ss5.log

8. 如果有多個IP地址,可以執行多個 ss5 代理伺服器程序,每個程序繫結不同的埠/出口IP地址。
第一步, 給每個程序建立一個使用者:
useradd user1 -s /bin/false -p YourPasswordHere

第二步, 檢視使用者的 UID:
awk -F: '/^user1:/{print $1,$4}' /etc/passwd

第三步, 根據使用者 UID 在防火牆上設定出口 IP 地址:
iptables -t mangle -A OUTPUT -m owner --uid-owner USER_UID -j MARK --set-mark USER_UID
iptables -t nat -A POSTROUTING -m mark --mark USER_UID -j SNAT --to-source 24.68.1.1

(USER_UID 為第二步中輸出的數字)

檢視防火牆的地址轉換規則:
iptables -nvL -t nat
iptables -nvL -t mangle

最後, 用不同使用者啟動程序, 設定不同的IP和埠:
ss5 -u user1 -b 24.68.1.1:10001
提示: 請在防火牆上開啟埠 10001

重複上面的步驟來配置每一個IP地址。