端口转发工具Rinetd详细入门教程
目录条件下载 安装方法A.shell安装方法B.shell脚本安装配置rinetd.conf文件编辑器A:nano(新手友好)编辑器B:vim编辑器rinetd开关A.配置启动B.脚本启动创建脚本启动测试参考链接例如:iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT 转发规则这个转发只看目标端口协议,如果目标端口协议是TCP的,工具软件中
目录
条件
- 有root权限
- rinetd.conf中绑定的本机端口必须没有被其它程序占用
- 运行rinetd的系统防火墙应该打开绑定的本机端口
例如:iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
转发规则
这个转发只看目标端口协议,
如果目标端口协议是TCP的,工具软件中就使用TCP连接,
如果目标端口协议是SSL的,工具软件中就使用SSL连接即可。
rinetd
的转发,是无条件转发,不查看协议等内容,也就不存在遭受CC攻击等风险,但DDOS攻击还是受影响的。
所以,尽量保护好你的中转IP。
下载
rinetd的下载地址:http://www.rinetd.com/download/rinetd.tar.gz
安装
方法A.shell安装
[root@nginx /]# mkdir rined_soft #创建rined_soft
[root@nginx /]# cd rined_soft #进入到该文件夹
[root@nginx rined_soft]# tar -zxvf rinetd.tar.gz #解压
[root@nginx rined_soft]# make #编译
[root@nginx rined_soft]# make install #安装
[root@master rinetd]# rinetd --help #rinetd是以命令的形式存在的
Usage: rinetd [OPTION]
-c, --conf-file FILE read configuration from FILE
-h, --help display this help
-v, --version display version number
Most options are controlled through the
configuration file. See the rinetd(8)
manpage for more information.
方法B.shell脚本安装
cat >> rinetd-installer.sh <<'EOF' #cat追加内容,以EOF为结尾
#!/bin/bash #直接使用当前所在的shell(也就是bash)来解释脚本
wget http://www.rinetd.com/download/rinetd.tar.gz #wget下载
tar -zxvf rinetd.tar.gz #解压报错则去掉z
cd rinetd
mkdir -p /usr/man/man8
make && make install #若提示make cc Command not found 则yum安装gcc: yum install gcc
EOF
chmod +x rinetd-installer.sh #chmod改权限。代号x :执行权限
./rinetd-installer.sh #安装
#wget 下载
从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。
若tar -zxvf rinetd.tar.gz解压报错
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
可将tar -xzvf去掉z
原因:gz下载不完整,或者并非.gz格式
本质:并非真正用到了gzip,所以不用参数z
配置rinetd.conf文件
命令默认在/usr/sbin/rinet,配置文件默认在/etc/rinetd.conf
编辑器A:nano(新手友好)
对标的是Windows系统中的记事本
软件
nano /etc/rinetd.conf
如果目标文件不存在,系统会自动在该位置新建一个该名字的文件。
文件编辑:
使用键盘的上 下 左 右
对光标进行移动,移动到指定位置以后,直接输入即可。
# 设置拒绝访问的ip地址信息
# deny 192.168.1.*
#允许192.168.18.*网段访问
allow 192.168.18.*
#443端口即网页浏览端口
0.0.0.0 443 mirrors.tuna.tsinghua.edu.cn 443
# 设置日志文件路径
logfile /var/log/rinetd.log
保存文件:
Ctrl + o
CTRL+英文键o,如果文件发生了更改,会弹出提示,询问文件保存位置,
如果不需要进行修改文件保存位置,直接回车
即可。
如果不想保存可以按Ctrl + C
键取消保存。
退出编辑
Ctrl + x
如果文件保存完了,输入这一步,会直接回到命令行模式,
如果文件没有保存,按完这命令以后,会提示是否进行保存,
输入Y
然后提示保存位置再按一遍回车
即可保存,即可保存并退出。
输入N
为不保存退出。取消的话,可以按Ctrl + C
键退回编辑模式。
编辑器B:vim
vim filename,如果文件存在则打开,如果文件不存在则新建
vim插入模式想要退出,需要先按下键盘的“esc”键,然后输入“:”,输入wq(保存退出)或者q!(不保存退出)
vim /etc/rinetd.conf #添加如下几行内容
0.0.0.0 8080 192.168.43.120 8080 #将所有发往本机任何网卡的8080端口的请求转发到192.168.43.120的8080端口上
0.0.0.0 2222 192.168.43.121 3389 #将所有发往本机任何网卡2222端口的请求转发到192.168.43.121的3389端口
192.168.43.1 80 192.168.43.122 80 #将所有发往本机IP为192.168.43.1的80端口请求转发到192.168.43.122的80端口
#说明:
0.0.0.0表示本机绑定所有可用地址
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
Linux常用工具之vim_哆哆哆咪咪咪的博客-CSDN博客_linux vim
rinetd开关
A.配置启动
rinetd的启动与停止
[root@master rinetd]# rinetd -c /etc/rinetd.conf #启动rinetd
[root@master rinetd]# pkill rinetd #关闭rinetd
B.脚本启动
创建脚本
cat >> /etc/init.d/rinetd <<'EOF'
#!/bin/bash
EXEC=/usr/sbin/rinetd
CONF=/etc/rinetd.conf
PID_FILE=/var/run/rinetd.pid
NAME=Rinetd
DESC="Rinetd Server"
case "$1" in
start)
if [ -x "$PID_FILE" ]; then
echo "$NAME is running ..."
exit 0
fi
$EXEC -c $CONF
echo -e "\e[1;32m$NAME is running\e[0m"
;;
stop)
if [ -f "$PID_FILE" ]; then
kill `cat $PID_FILE`
while [ -x "$PID_FILE" ]
do
echo "Waiting for $NAME to shutdown..."
sleep 1
done
rm -f $PID_FILE
fi
echo -e "\e[1;31m$NAME stopped.\e[0m"
;;
restart)
$0 stop
$0 start
;;
status)
if [ -f $PID_FILE ]; then
echo "$NAME is running ..."
else
echo "$NAME stopped."
fi
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 2
;;
esac
exit 0
EOF
启动
/etc/init.d/rinetd start
测试
[root@master rinetd]#echo '0.0.0.0 80 192.168.43.201 8161' >> /etc/rinetd.conf #添加这条转发规则到rinetd.conf
[root@master rinetd]# pkill rinetd #关闭rinetd
[root@master rinetd]# rinetd -c /etc/rinetd.conf #启动rinetd
网页测试成功,已经将80端口转发到mq的8161端口,如下:
参考链接
rinetd端口转发工具_MssGuo的博客-CSDN博客_rinetd
Linux下使用Rinetd搭建一个中转服务器来实现端口转发 - 玩技e族
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)