快捷导航
查看: 9|回复: 0

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

[复制链接]

29

主题

549

帖子

3088

积分

版主

臭不要脸

Rank: 7Rank: 7Rank: 7

积分
3088
QQ
发表于 2017-1-6 21:52:46 | 显示全部楼层 |阅读模式
本帖最后由 Toyo233 于 2017-1-6 22:09 编辑

最近没什么教程好写的,那就闲的没事写个脚本吧!
Shadowsocks 中继(中转)能用的工具很多,我的网站介绍过 HaProxy、iptables、Socat。
前两天我写了Socat和HaProxy的脚本,今天我就写个iptables的脚本。
iptables手动教程:Shadowsocks利用 iptables 实现单端口 中继(中转)加速
其他 Shadowsocks中继(中转)教程:传送门

系统要求
Centos / Debian / Ubuntu 14.04 +
推荐 Debian / Ubuntu,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。
CentOS 7 默认的防火墙是 firewall,要使用本脚本,请先卸载或关闭 firewall 服务器,并安装 iptables 全套软件。

脚本版本
Ver: 1.0.0

安装步骤
  1. wget -N --no-check-certificate https://softs.pw/Bash/iptables-pf.sh && chmod +x iptables-pf.sh && bash iptables-pf.sh
复制代码
下载并运行脚本后,会自动检测并开始 安装/升级 iptables 。

使用方法
  1. # 添加 端口转发规则
  2. bash iptables-pf.sh add

  3. # 删除 端口转发规则
  4. bash iptables-pf.sh del

  5. # 查看 端口转发规则 列表
  6. bash iptables-pf.sh list

  7. # 清空 端口转发规则
  8. bash iptables-pf.sh uninstall
复制代码
使用 bash iptables-pf.sh add 后,会提示你依次输入 本地监听端口、欲转发IP、欲转发端口、转发类型:
  1. 请输入 iptables 的 本地监听端口 [1-65535](支持端口段: 2333-6666): 10000-20000
  2. 请输入 iptables 欲转发的 端口 [1-65535](支持端口段: 2333-6666):
  3. (默认端口: 10000-20000)
  4. 请输入 iptables 欲转发的 IP:2.2.2.2
  5. 请输入数字 来选择 iptables 转发类型:
  6. 1. TCP
  7. 2. UDP
  8. 3. TCP+UDP

  9. (默认: TCP+UDP):

  10. ——————————————————————————————
  11. 请检查 iptables 端口转发规则配置是否有误 !

  12. 本地监听端口 : 10000-20000
  13. 欲转发端口 : 10000-20000
  14. 欲转发 IP : 2.2.2.2
  15. 公网 IP : 1.1.1.1
  16. 转发类型 : TCP+UDP
  17. ——————————————————————————————

  18. 请按任意键继续,如有配置错误请使用 Ctrl+C 退出。
复制代码
最后会提示你确认配置是否有误,如果没有问题就按任意键继续,启动成功后就会提示:
  1. ——————————————————————————————
  2. iptables 端口转发规则配置完成 !

  3. 本地 IP : 1.1.1.1
  4. 本地监听端口 : 10000-20000

  5. 欲转发 IP : 2.2.2.2
  6. 欲转发端口 : 10000-20000
  7. 转发类型 : TCP+UDP
  8. ——————————————————————————————
复制代码
使用 bash iptables-pf.sh list 后,会显示如下:
  1. 当前有 2 个 iptables 端口转发规则。
  2. 1. 类型: tcp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:10000-20000
  3. 2. 类型: udp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:10000-20000
  4. 使用 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. iptables -I INPUT -p tcp --dport 2333:6666 -j ACCEPT
  5. iptables -I INPUT -p udp --dport 2333:6666 -j ACCEPT
  6. Centos系统执行(debian/ubuntu 不需要):

  7. /etc/init.d/iptables save
  8. # 保存防火墙
  9. /etc/init.d/iptables restart
  10. # 重启防火墙
复制代码
提示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。
  1. # Centos系统:
  2. yum install -y wget
  3. # Debian/Ubuntu系统:
  4. apt-get install -y wget
复制代码
更换 apt源,解决安装错误:[错误] iptables安装失败 等等
一些VPS的 apt源太老旧,导致无法安装或升级iptables,所以我这里写上如何更换 apt源。所以我只针对这两个系统,Centos的自己去谷歌yum镜像源。
依次输入就可以更换apt源了,下面的代码是以 us美国 为例,你可以自己去这里选一个近一些合适的,然后替换下面代码中 us.sources.list us
  1. wget -N --no-check-certificate -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
复制代码
更新日志
2016年12月24日,版本 v1.0.0
1.推出 正式版本。

iptables手动教程:Shadowsocks利用 iptables 实现单端口 中继(中转)加速
其他 Shadowsocks中继(中转)教程:传送门
本文章转载自逗比根据地:https://doub.io/wlzy-20/
小白的科学上网福地:逗比根据地 doub.io
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|破站  

GMT+8, 2017-1-22 22:17 , Processed in 0.027807 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表