月下博客

Shadowsocks利用 tinyPortMapper 实现中继(中转/端口转发)加速

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

最近有个人评论留言中推荐给我了一个端口转发工具,叫做:tinyPortMapper

优点是:安装、配置简单,支持TCP、UDP转发;

缺点是:不支持端口段转发,如果要转发多个端口,多开即可。


其他的优化方案:https://doub.io/ss-jc26/#三、优化Shadowsocks

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

其他的端口转发教程:https://doub.io/ss-jc26/#服务器中继(国内中转)

安装步骤

首先建立并进入文件夹(假设你当前目录是 /root ,那么 tinyPortMapper的目录就是 /root/tinyPortMapper ):

mkdir tinyPortMapper && cd tinyPortMapper

然后获取最新的版本号:

tinyPortMapper_ver=$(wget --no-check-certificate -qO- https://api.github.com/repos/wangyu-/tinyPortMapper/releases |grep -o '"tag_name": ".*"'|grep -v '20180620.0'|head -n 1| sed 's/"//g' | sed 's/tag_name: //g') && echo ${tinyPortMapper_ver}

执行完后会输出获取的最新版本号,比如 20180224.0这样的日期格式,如果返回是空或者其他错误的内容,那么就代表获取失败。

获取失败的情况请去 Github 获取最新的版本号,例如 20180224.0,然后执行 tinyPortMapper_ver=20180224.0(自己替换版本号)即可继续下面的下载步骤。


wget -N --no-check-certificate "https://github.com/wangyu-/tinyPortMapper/releases/download/${tinyPortMapper_ver}/tinymapper_binaries.tar.gz"

# 解压下载的压缩包
tar -xzf tinymapper_binaries.tar.gz

# 然后你需要判断一下VPS的位数,运行 uname -m 会输出VPS的位数,如果显示 x86_64 则是64位,如果显示 386/i386/686/i686 这四个之一,则是32位。
# x86_64,64位运行:
mv tinymapper_amd64 tinymapper
# 386/i386/686/i686 四个之一,32位运行:
mv tinymapper_x86 tinymapper

# 删除无用的压缩包和其他平台文件。
rm -rf version.txt
rm -rf tinymapper_*
rm -rf tinymapper_binaries.tar.gz

最后只需要赋予一下执行权限即可继续看下面的使用方法了。

chmod +x tinymapper

使用方法

完整端口转发命令

nohup ./tinymapper -l 0.0.0.0:2333 -r 12.12.12.12:6666 -t -u > /tmp/tinymapper.log 2>&1 &

点击展开 查看解释

nohup

指的是 后台运行。

./tinymapper

指的是 运行 tinymapper 程序。

-l 0.0.0.0:2333

指的是 监听本地网卡所有 ipv4地址的端口(2333),也就是 转发的端口。Shadowsocks客户端链接中继服务器时填写这个端口(2333)

-r 12.12.12.12:6666

指的是 被转发的 IP(12.12.12.12) 和 端口(6666),也就是你要中继的服务器的 IP端口

注意:这里的 中继端口(2333)被中继端口(6666)可以一样的,我区分开只是为了让你们更好地理解。

-t

指的是 转发TCP协议的流量。

-u

指的是 转发UDP协议的流量。

注意:-t TCP和 -u UDP可以只转发其一,都写上参数(-t -u),则代表都转发。

> /tmp/tinymapper.log 2>&1 &

指的是 日志记录到 /tmp/tinymapper.log 这个临时文件夹,每次重启服务器都会清空。如果不想清空可以改成 tinymapper.log (但记得定时清理)。

停止所有端口转发进程

kill -9 $(ps -ef|grep tinymapper|grep -v grep|awk '{print $2}')

卸载方法

假设 tinyPortMapper 的目录是 /root/tinyPortMapper ,那么:

# 记得先停止所有转发进程
rm -rf /root/tinyPortMapper

简单解释

注意:假设你的中继服务器也就是现在在操作的服务器 IP 是 1.1.1.1 ,那么你的 中继端口 就是 2333 。你的 被中继服务器的 IP 是 12.12.12.12 ,端口是 6666

这时候你的 Shadowsocks客户端 填写信息的时候 IP 就是 1.1.1.1 端口 就是 2333

所以原理就是:

Shadowsocks客户端通过 1.1.1.1:2333 链接中继服务器 1.1.1.1 ,然后中继服务器把端口 2333 的流量转发到 被中继服务器 12.12.12.12 的端口 6666 上面。然后 被中继服务器 也就是上面的 Shadowsocks服务端,就会去访问你要的数据,最后依次返回 中继服务器 -> Shadowsocks客户端

其他问题

防火墙设置

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

点击展开 查看更多

以上面的 示例的中继端口 2333 为例。

iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 2333 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 2333 -j ACCEPT
# 如果要删除端口开放规则,只需要把 -I 改成 -D 即可。
iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 2333 -j ACCEPT
iptables -D INPUT -m state --state NEW -m udp -p udp --dport 2333 -j ACCEPT

开机启动

因为这个工具并没有开机启动的设定,所以需要设置系统的开机启动。

点击展开 查看更多

Centos系统:

chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local

Ubuntu/Debian系统:

chmod +x /etc/rc.local
vi /etc/rc.local
注意:如果你没有安装 vim 服务或者 不会使用 vim ,那么请看这篇文章:Linux中VIM编辑器的真 · 简单使用教程

输入 I 键 进入编辑模式(如果没反应请看上面的教程安装 vim),然后在打开的文件中的 exit 0 代码前面(如果没有这行代码,就加到文件最后)插入你的 tinyPortMapper 命令代码(就是上面 nohup ./tinymapper -l… 的代码)。

然后再 按 ESC 键 退出编辑模式,然后输入 :wq 退出并保存。


另外的端口转发教程:https://doub.io/ss-jc26/#服务器中继(国内中转)

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

其他的优化方案:https://doub.io/ss-jc26/#三、优化Shadowsocks

转载请超链接注明:月下博客 » Shadowsocks利用 tinyPortMapper 实现中继(中转/端口转发)加速
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!