Linuxword Global
当前位置: 通信协议 > SOCKS5 代理服务器,多进程/多IP地址出口/多端口

d850f4634ef25cc5b80f643ef57ade29

又到了折腾的环节,刚好有一台配置了单网卡多个IP地址的VPS,想用来做S5,结果辅助IP是可以连接到VPS,但是跟我想的不太一样,我想的是从哪儿来,也从哪儿出去。就是说我有A,B两个IP地址,我从A访问VPS,也从A这个IP出去,而不是通过主IP出去。那么现在这个脚本就解决了我目前这个问题,通过这个脚本我也发现了个另外的方法,接下来就细说一下,如何安装吧。

我们测试使用的是Centos 7系统

安装S5脚本

wget --no-check-certificate https://raw.github.com/Lozy/danted/master/install.sh -O install.sh

 

 

 

 此时的S5没有账户密码认证,比较危险,我们按照提示手动添加就行。

安装完的我看了一下监听,眉头一皱。

 

 

 

 之前也搭建过S5,但是多IP出口并没有实现出来,看到这里细心地小伙伴应该就能明白原因了。只要将IP监听这个端口就解决问题!

高性能的 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地址。

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: admin@linuxxword.com,我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2333 篇
  • 草稿数目: 12 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 5985 个
  • 注册用户: 139 人
  • 访问总量: 8,656,596 次
  • 最近更新: 2024年4月27日