何当共剪西窗烛
唯有踏浪执子归 人不怜我我自怜

shadowsocks 中继管理脚本

 

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

Socat:

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

HaProxy:

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

iptables:

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

系统要求

Centos / Debian / Ubuntu 14.04 +

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

CentOS 7 默认的防火墙是 firewall,要使用本脚本,请先卸载或关闭 firewall 服务器,并安装 iptables 全套软件。

脚本版本

Ver: 1.0.0

安装步骤

  1. wget N nocheckcertificate https://softs.pw/Bash/iptables-pf.sh && chmod +x iptables-pf.sh && bash iptables-pf.sh

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

510370cfedaa3

使用方法

  1. # 添加 端口转发规则
  2. bash iptablespf.sh add
  3.  
  4. # 删除 端口转发规则
  5. bash iptablespf.sh del
  6.  
  7. # 查看 端口转发规则 列表
  8. bash iptablespf.sh list
  9.  
  10. # 清空 端口转发规则
  11. bash iptablespf.sh uninstall

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

  1. 请输入 iptables 本地监听端口 [165535](支持端口段: 23336666): 1000020000
  2. 请输入 iptables 欲转发的 端口 [165535](支持端口段: 23336666):
  3. (默认端口: 1000020000)
  4. 请输入 iptables 欲转发的 IP:2.2.2.2
  5. 请输入数字 来选择 iptables 转发类型:
  6. 1. TCP
  7. 2. UDP
  8. 3. TCP+UDP
  9.  
  10. (默认: TCP+UDP):
  11.  
  12. ——————————————————————————————
  13. 请检查 iptables 端口转发规则配置是否有误 !
  14.  
  15. 本地监听端口 : 1000020000
  16. 欲转发端口 : 1000020000
  17. 欲转发 IP : 2.2.2.2
  18. 公网 IP : 1.1.1.1
  19. 转发类型 : TCP+UDP
  20. ——————————————————————————————
  21.  
  22. 请按任意键继续,如有配置错误请使用 Ctrl+C 退出。

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

  1. ——————————————————————————————
  2. iptables 端口转发规则配置完成 !
  3.  
  4. 本地 IP : 1.1.1.1
  5. 本地监听端口 : 1000020000
  6.  
  7. 欲转发 IP : 2.2.2.2
  8. 欲转发端口 : 1000020000
  9. 转发类型 : TCP+UDP
  10. ——————————————————————————————

使用 bash iptables-pf.sh list 后,会显示如下:

  1. 当前有 2 iptables 端口转发规则。
  2. 1. 类型: tcp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:1000020000
  3. 2. 类型: udp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:1000020000

使用 bash iptables-pf.sh del 后,也会显示列表,然后让你选择要删除的 规则前面 的数字。

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

其他说明

CentOS 7 默认的防火墙是 firewall,要使用本脚本,请先卸载或关闭 firewall 服务器,并安装 iptables 全套软件。

防火墙设置

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

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

  1. iptables I INPUT p tcp dport 23333 j ACCEPT
  2. iptables I INPUT p udp dport 23333 j ACCEPT
  3.  
  4. # 端口段 示例
  5. iptables I INPUT p tcp dport 2333:6666 j ACCEPT
  6. iptables I INPUT p udp dport 2333:6666 j ACCEPT

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

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

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

这是无法解析我的域名,多半是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。

Centos系统:

  1. yum install y wget

Debian/Ubuntu系统:

  1. aptget install y wget

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

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

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

  1. wget N nocheckcertificate P /etc/apt https://softs.pw/Bash/sources/us.sources.list
  2. rm rf /etc/apt/sources.list
  3. cp /etc/apt/us.sources.list /etc/apt/sources.list
未经允许不得转载:西窗浪人 » shadowsocks 中继管理脚本
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址