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

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

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

其中HaProxy只能转发TCP流量,但是支持端口段;iptables可以转发TCP/UDP,也支持端口段,但是配置容易出错莫名其妙的,iptables规则我也不熟悉;而Socat支持转发TCP/UDP,但是不支持端口段,所以多个端口操作起来有点麻烦,于是我就写一个脚本来添加和管理Socat。


Socat手动教程:Shadowsocks利用 Socat 实现单端口 中继(中转)加速

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

Socat:

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

HaProxy:

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

iptables:

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

系统要求

Debian / Ubuntu 14.04 +

脚本版本

Ver: 1.0.4

安装步骤

  1. wget --N --no--check--certificate https://softs.fun/Bash/socat.sh && chmod +x socat.sh && bash socat.sh

备用下载地址(上面的链接无法下载,就用这个):

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

下载并运行脚本后,会自动检测并开始安装。

使用方法

  1. # 添加Socat
  2. bash socat.sh add
  3.  
  4. # 停止Socat
  5. bash socat.sh del
  6.  
  7. # 查看Socat列表
  8. bash socat.sh list
  9.  
  10. # 查看Socat日志
  11. bash socat.sh tail
  12.  
  13. # 卸载Socat
  14. bash socat.sh uninstall

使用 bash socat.sh add 后,会提示你依次输入 本地监听端口、欲转发IP、欲转发端口、转发类型:

  1. 请输入 Socat 本地监听端口 [1--65535]
  2. (默认端口: 23333):10000
  3. ————————————————
  4. 本地监听端口 : 10000
  5. ————————————————
  6. 请输入 Socat 远程被转发的 端口 [1--65535]
  7. (默认端口: 10000):
  8. ————————————————
  9. 远程转发端口 : 10000
  10. ————————————————
  11. 请输入 Socat 远程被转发的 IP:2.2.2.2
  12. ————————————————
  13. 远程转发 IP : 2.2.2.2
  14. ————————————————
  15.  
  16. 请输入数字 来选择 Socat 转发类型:
  17. 1. TCP
  18. 2. UDP
  19. 3. TCP+UDP
  20.  
  21. (默认: TCP+UDP):
  22. ————————————————
  23. 请检查 Socat 配置是否有误 !
  24.  
  25. 本地监听端口 : 10000
  26. 远程转发 IP : 2.2.2.2
  27. 远程转发端口 : 10000
  28. 转发类型 : TCP+UDP
  29. ————————————————
  30.  
  31. 请按任意键继续,如有配置错误请使用 Ctrl+C 退出。

最后会提示你确认配置是否有误,如果没有问题就按任意键继续,启动成功后就会提示:

  1. Socat 已启动 !
  2.  
  3. 本地 IP : 1.1.1.1
  4. 本地监听端口 : 10000
  5.  
  6. 远程转发 IP : 2.2.2.2
  7. 远程转发端口 : 10000
  8. 转发类型 : TCP+UDP

使用 bash socat.sh list 后,会显示如下:

  1. 当前有 2 Socat转发进程。
  2. 1. 进程PID: 32288 类型: TCP4 监听端口: 10000 转发IP和端口: 2.2.2.2:10000
  3. 2. 进程PID: 32289 类型: UDP4 监听端口: 10000 转发IP和端口: 2.2.2.2:10000

使用 bash socat.sh del 后,也会显示列表,然后让你选择要终止的 Socat 数字。

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账号一样!

安装目录

socat是通过 yum/apt 软件包安装的,所以我就单独搞了一个log日志文件的目录。

日志文件:/etc/socat/socat.log

其他说明

提示wget: unknown host “softs.fun” 之类的错误

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

  1. echo “nameserver 8.8.8.8” > /etc/resolv.conf
  2. echo “nameserver 8.8.4.4” >> /etc/resolv.conf

提示 wget: command not found 的错误

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

  1. # Centos系统:
  2. yum install --y wget
  3.  
  4. # Debian/Ubuntu系统:
  5. apt--get install --y wget

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

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

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

  1. wget --N --no--check--certificate --P /etc/apt https://softs.fun/Bash/sources/us.sources.list
  2. rm --rf /etc/apt/sources.list
  3. cp /etc/apt/us.sources.list /etc/apt/sources.list

更新日志

2017年07月24日,版本 v1.0.4

1.修复 Socat 卸载报错的问题。

2017年07月23日,版本 v1.0.3

1.取消 CentOS系统支持。

2.脚本 结构简单重写。

3.修复 各种BUG。

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

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

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

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

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

1.推出 正式版本。


Socat手动教程:Shadowsocks利用 Socat 实现单端口 中继(中转)加速

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

转载请超链接注明:逗比根据地 » 『原创』Shadowsocks Socat 中继(中转/端口转发) 便捷管理脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
此条目发表在日常分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注