最近没什么教程好写的,那就闲的没事写个脚本吧!
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.1.1
安装步骤
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/iptables-pf.sh && chmod +x iptables-pf.sh && bash iptables-pf.sh
下载并运行脚本后,先选择 1. 安装 iptables ,会检测是否安装 iptables 同时也会进行 iptables 防火墙开机启动加载等配置。
使用方法
./iptables-pf.sh
运行脚本后,会显示菜单:
iptables 端口转发一键管理脚本 [vx.x.x] -- Toyo | doub.io/wlzy-20 -- 0. 升级脚本 ———————————— 1. 安装 iptables 2. 清空 iptables 端口转发 ———————————— 3. 查看 iptables 端口转发 4. 添加 iptables 端口转发 5. 删除 iptables 端口转发 ———————————— 注意:初次使用前请请务必执行 1. 安装 iptables(不仅仅是安装) 请输入数字 [0-5]:
选择 4. 添加 iptables 端口转发
后,会提示你依次输入 欲转发IP、欲转发端口、本地监听端口、本地IP、转发类型:
请输入 iptables 欲转发至的 远程端口 [1-65535] (支持端口段 如 2333-6666, 被转发服务器):10000-11000 欲转发端口 : 10000-11000 请输入 iptables 欲转发至的 远程IP(被转发服务器):2.2.2.2 欲转发服务器IP : 2.2.2.2 请输入 iptables 本地监听端口 [1-65535] (支持端口段 如 2333-6666) (默认端口: 10000-11000): 本地监听端口 : 10000-11000 请输入 本服务器的 公网IP网卡IP(注意是网卡绑定的IP,而不仅仅是公网IP,回车自动检测): 本服务器IP : 1.1.1.1 请输入数字 来选择 iptables 转发类型: 1. TCP 2. UDP 3. TCP+UDP (默认: TCP+UDP): —————————————————————————————— 请检查 iptables 端口转发规则配置是否有误 ! 本地监听端口 : 10000-11000 服务器 IP : 2.2.2.2 欲转发的端口 : 10000-11000 欲转发 IP : 1.1.1.1 转发类型 : TCP+UDP ——————————————————————————————
最后会提示你确认配置是否有误,如果没有问题就按任意键继续,启动成功后就会提示:
—————————————————————————————— iptables 端口转发规则配置完成 ! 本地监听端口 : 10000:11000 服务器 IP : 1.1.1.1 欲转发的端口 : 10000:11000 欲转发 IP : 2.2.2.2 转发类型 : TCP+UDP ——————————————————————————————
选择 3. 查看 iptables 端口转发
后,会显示如下:
当前有 2 个 iptables 端口转发规则。 1. 类型: tcp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:10000-20000 2. 类型: udp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:10000-20000
选择 5. 删除 iptables 端口转发
后,也会显示列表,然后让你选择 要删除的端口转发规则序号。
Shadowsocks客户端说明
假设你的海外服务器(被中转)中搭建的Shadowsocks服务端的IP是 2.2.2.2
,SS端口是 10000
。
假设中转服务器的IP是 1.1.1.1
,本地监听端口和SS端口不一致,本地监听端口是 20000
。
那么,你的Shadowsocks客户端,添加Shadowsocks服务器,IP填写 1.1.1.1
,端口填写 20000
,其他的 密码/加密方式/协议/混淆等等 全部和原Shadowsocks账号一样!
其他说明
CentOS 7 默认的防火墙是 firewall,要使用本脚本,请先卸载或关闭 firewall 服务器,并安装 iptables 全套软件。
关于国内腾讯云等服务器转发失败解释
国内的很多服务器,例如腾讯云,在VPS网卡上面绑定的都是内网IP,这样的话,如果你用脚本自动检测外网IP,会转发失败,需要在添加转发规则的时候,本服务器IP手动写你的服务器 网卡上面绑定的IP。
ifconfig # 输入命令后会看到 网卡信息,我们看第二行的 inet addr:xxx.xxx.xxx.xxx ,这里的 xxx 就是你的网卡绑定的IP。
提示wget: unknown host “raw.githubusercontent.com” 之类的错误
这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS。
提示 wget: command not found 的错误
这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。
更换 apt源,解决安装错误:[错误] iptables安装失败 等等
一些VPS的 apt源太老旧,导致无法安装或升级iptables,所以我这里写上如何更换 apt源。所以我只针对这两个系统,Centos的自己去谷歌yum镜像源。
更新日志
2017年09月01日,版本 v1.1.1
1. 修复 删除转发规则 顺序错误的问题。
2017年06月05日,版本 v1.1.0
1. 重写 脚本。
2017年02月23日,版本 v1.0.1
1.新增 手动输入服务器公网IP功能
2016年12月24日,版本 v1.0.0
1.推出 正式版本。
iptables手动教程:Shadowsocks利用 iptables 实现单端口 中继(中转)加速
其他 Shadowsocks中继(中转)教程:传送门
转载请超链接注明:逗比根据地 » 『原创』Shadowsocks iptables 中继(中转/端口转发) 便捷管理脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
那你只需要在搬瓦工的服务器上面做个中转即可,不需要搭建SSR服务端。
假设你国内路由器的IP为 1.1.1.1,端口为 2333,你搬瓦工的IP为 2.2.2.2,端口也为 2666(可一样,不一样只是为了让你区分)。
那么搬瓦工上面中转信息是:本地监听端口 2666,目标IP 1.1.1.1,目标端口 2333。
而你本地SSR客户端只需要把你原版链接国内路由器的SSR账号信息的IP和端口修改为 2.2.2.2、2666 即可。
当然有个问题就是,国内大多都是内外IP,不过你能直连路由器说明你已经解决了该问题(端口映射、内网穿透、要求运营商更换为外网IP)。
另一个问题就是国内的家庭宽带IP都是动态的。你可能需要DDNS之类的软件辅助(部分路由器自带)。
中转一般适合于,比如你是电信或者那些三流运营商,外网QOS限速严重,那么可以买个国内服务器(联通/移动单线 或者三网)做中转来突破本地运营商对外网的限速。
被中转服务器 B 则需要安装SS/SSR服务端,你的客户端链接中转服务器,中转服务器 A 把数据转发到 被中转服务器 B ,然后被中转服务器 B 上面的SS/SSR服务端就开始访问你要访问的网站等,最后原路返回。
中转端口和被中转端口无需一致,不过你说的被中转服务器端口为 99,中转端口为 1000-2000 范围,我没试过,但是理论可以。
也许你需要升级内核或者iptables.