在Linux系统中大多数情况选择用iptables来实现端口转发,iptables虽然强大,但配置不便,而且新手容易出错。在此分享另一个TCP/UDP端口转发工具rinetd,rinetd体积小巧,配置也很简单。

这篇文章以CentOS 7为例,复制下面的命令输入,一行一个:
安装后,可以输入<code>rinetd -v</code>查看当前版本。
rinetd配置文件的格式如下:
<code>0.0.0.0</code>:源IP
<code>2018</code>:源端口
<code>103.74.192.160</code>:目标IP
<code>2019</code>:目标端口
上面配置的意思是将本地2018端口转发到<code>103.74.192.160</code>的2019端口,启动后可以输入<code>netstat -apn|grep 'rinetd'</code>查看是否运行正常,注意还需要在自己服务器防火墙放行对应的源端口,否则无法正常使用用。
从<code>0.70</code>版本开始rinetd已经支持UDP转发,写法如下:
为了方便管理,我们可以为rinetd编写一个systemd服务,有兴趣的同学可参考《Linux系统编写Systemd Service实践》,xiaoz已经编写好了,直接复制下面的内容即可:
复制下面的内容进行保存:
输入命令:<code>systemctl daemon-reload</code>重载daemon使其生效,然后就可以使用下面的命令来管理rinetd了。
美洽在线客服系统
rinetd支持转发到域名,rinetd会提前解析域名,并将解析出的IP缓存到内存中,如果您的域名解析IP发生了变化必须重启rinetd才会生效,所以rinetd并不适合转发到域名IP经常发生变化的情况,而socat则不存在此问题。