月下博客

『原创』Shadowsocks HaProxy 中继(中转/端口转发) 便捷管理脚本

本文最后更新于 2018年9月20日 20:10 可能会因为没有更新而失效。如已失效或需要修正,请留言!

最近没什么教程好写的,那就闲的没事写个脚本吧!

Shadowsocks 中继(中转)能用的工具很多,我的网站介绍过 HaProxy、iptables、Socat。

昨天我写了Socat的脚本,今天我就写个HaProxy的脚本。当然,iptables的端口转发一键脚本我暂时是不会写的,iptables我也并不是很熟练 – -。


HaProxy手动教程:Shadowsocks利用HaProxy实现中继(中转)加速

其他 Shadowsocks中继(中转)教程:传送门

Socat:

优点:支持 TCP/UDP 转发。缺点:不支持端口段(多个端口需要开启多个转发)

HaProxy:

优点:支持 TCP 转发,支持 端口段 转发。缺点:不支持 UDP 转发。

iptables:

优点:支持 TCP/UDP 转发,支持 端口段 转发。缺点:配置麻烦,容易出错。

系统要求

Centos / Debian / Ubuntu 14.04 +

推荐 Debian / Ubuntu,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。

脚本版本

Ver: 1.0.7

安装步骤

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/haproxy.sh && chmod +x haproxy.sh && bash haproxy.sh

下载并运行脚本后,会自动检测并开始安装。安装完成后,会提示你输入监听的端口(转发的端口,支持端口段 2333-6666),欲转发到的IP:

请输入 HaProxy 的 本地监听端口(转发端口) [1-65535](支持端口段: 2333-6666): 10000-20000
请输入 HaProxy 欲转发的 IP:2.2.2.2

——————————————————————————————
请检查 HaProxy 配置是否有误 !

本地监听端口 : 10000
欲转发 IP : 2.2.2.2
——————————————————————————————

请按任意键继续,如有配置错误请使用 Ctrl+C 退出。

安装完成之后会提示:

——————————————————————————————
	HaProxy 已启动 !
——————————————————————————————
	HaProxy 配置信息: 

	本地 IP :  1.1.1.1
	本地监听端口 :  10000-2000

	欲转发 IP :  2.2.2.2
	欲转发端口 :  10000-20000
——————————————————————————————

使用方法

# 查看haproxy配置
bash haproxy.sh view

# 设置haproxy
bash haproxy.sh set

# 启动haproxy
bash haproxy.sh start

# 停止haproxy
bash haproxy.sh stop

# 重启haproxy
bash haproxy.sh restart

# 查看haproxy状态
bash haproxy.sh status

# 卸载haproxy
bash haproxy.sh uninstall

# 对了,haproxy安装的时候自动设置了系统服务,所以你还可以用以下命令来管理
# 启动haproxy
service haproxy start

# 停止haproxy
service haproxy stop

# 重启haproxy
service haproxy restart

# 查看haproxy状态
service haproxy status

# 重载haproxy配置
service haproxy reload

Shadowsocks客户端说明

假设你的 海外服务器(被中转) 中搭建的Shadowsocks服务端的IP是 2.2.2.2  ,SS端口是 10000

假设你的 中转服务器 的IP是 1.1.1.1 ,本地监听端口和SS端口一致,都是 10000

那么,你的Shadowsocks客户端,添加Shadowsocks服务器,IP填写 1.1.1.1 ,端口填写 10000 其他的 密码/加密方式/协议/混淆等等 全部和原Shadowsocks账号一样!

安装目录

配置文件:/etc/haproxy/haproxy.cfg

其他说明

防火墙设置

脚本 v1.0.1版本 已经自动设置了防火墙规则,如果发现没有或者其他情况,可以自己开放端口。

如果你设置后无法链接,那么多半是防火墙 阻拦了,只要开放端口 就行了。以上面的 示例的中继端口 23333 为例。

iptables -I INPUT -p tcp --dport 23333 -j ACCEPT
# 端口段
iptables -I INPUT -p tcp --dport 2333:6666 -j ACCEPT

Centos系统执行(debian/ubuntu 不需要):

/etc/init.d/iptables save
# 保存防火墙
/etc/init.d/iptables restart
# 重启防火墙

提示wget: unknown host “raw.githubusercontent.com” 之类的错误

这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS。

echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

提示 wget: command not found 的错误

这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。

Centos系统:

yum install -y wget

Debian/Ubuntu系统:

apt-get install -y wget

更换 apt源,解决安装错误:[错误] Socat安装失败 等等

一些VPS的 apt源太老旧,导致无法安装socat,所以我这里写上如何更换 apt源。所以我只针对这两个系统,Centos的自己去谷歌yum镜像源。

依次输入就可以更换apt源了,下面的代码是以 us美国 为例,你可以自己去这里选一个近一些合适的,然后替换下面代码中 us.sources.list 的 us 。

wget -N --no-check-certificate -P /etc/apt https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/sources/us.sources.list
rm -rf /etc/apt/sources.list
cp /etc/apt/us.sources.list /etc/apt/sources.list

更新日志

2017年08月12日,版本 v1.0.7

1.修复 部分系统 停止HaProxy异常的问题。

2017年08月12日,版本 v1.0.6

1.修复 检测系统版本不正确的问题。

2017年08月12日,版本 v1.0.5

1.修复 CentOS7 可能停止失败的问题。

2017年08月12日,版本 v1.0.4

1.修复 CentOS7 默认系统服务为systemctl 导致启动失败的问题。

2017年08月11日,版本 v1.0.3

1.新增 保存防火墙规则功能(原来的时候重启服务器防火墙规则就没了)。

2.修复 Debian系统 卸载失败问题。

3.优化 开机启动问题(改了开机启动方式)。

—— 这个脚本好老了,里面的代码也挺乱的,简单更新一下好了。

2017年03月11日,版本 v1.0.2

1.修复 CentOS系统 启动失败问题

2016年12月24日,版本 v1.0.1

1.增加 自动设置开机启动功能。

2.增加 自动设置开放防火墙端口功能。

3.修复 启动/停止 成功,但是提示失败的BUG。

2016年12月22日,版本 v1.0.0

1.推出 正式版本。


HaProxy手动教程:Shadowsocks利用HaProxy实现中继(中转)加速

其他 Shadowsocks中继(中转)教程:传送门

转载请超链接注明:月下博客 » 『原创』Shadowsocks HaProxy 中继(中转/端口转发) 便捷管理脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!