• 端口转发工具Rinetd详细入门教程


    目录

    条件

    下载 

    安装

    方法A.shell安装

    方法B.shell脚本安装

    配置rinetd.conf文件

    编辑器A:nano(新手友好)

    编辑器B:vim

    rinetd开关

    A.配置启动

    B.脚本启动

    创建脚本

    启动

    测试

    参考链接


    条件

    • 有root权限
    • rinetd.conf中绑定的本机端口必须没有被其它程序占用
    • 运行rinetd的系统防火墙应该打开绑定的本机端口

    例如:iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

     转发规则

    这个转发只看目标端口协议,

    如果目标端口协议是TCP的,工具软件中就使用TCP连接,

    如果目标端口协议是SSL的,工具软件中就使用SSL连接即可。

    rinetd的转发,是无条件转发,不查看协议等内容,也就不存在遭受CC攻击等风险,但DDOS攻击还是受影响的。

    所以,尽量保护好你的中转IP。

    rinetd 在生产环境要谨慎使用,CPU使用率高

    下载 

    rinetd的下载地址:http://www.rinetd.com/download/rinetd.tar.gz

    官网异常时下载处

    安装

    方法A.shell安装

    1. [root@nginx /]# mkdir rined_soft #创建rined_soft
    2. [root@nginx /]# cd rined_soft #进入到该文件夹
    3. [root@nginx rined_soft]# tar -zxvf rinetd.tar.gz #解压
    4. [root@nginx rined_soft]# make #编译
    5. [root@nginx rined_soft]# make install #安装
    6. [root@master rinetd]# rinetd --help #rinetd是以命令的形式存在的
    7. Usage: rinetd [OPTION]
    8. -c, --conf-file FILE read configuration from FILE
    9. -h, --help display this help
    10. -v, --version display version number
    11. Most options are controlled through the
    12. configuration file. See the rinetd(8)
    13. manpage for more information.

    方法B.shell脚本安装

    1. cat >> rinetd-installer.sh <<'EOF' #cat追加内容,以EOF为结尾
    2. #!/bin/bash #直接使用当前所在的shell(也就是bash)来解释脚本
    3. wget http://www.rinetd.com/download/rinetd.tar.gz #wget下载
    4. tar -zxvf rinetd.tar.gz #解压报错则去掉z
    5. cd rinetd
    6. mkdir -p /usr/man/man8
    7. make && make install #若提示make cc Command not found 则yum安装gcc: yum install gcc
    8. EOF
    9. chmod +x rinetd-installer.sh #chmod改权限。代号x :执行权限
    10. ./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

    如果目标文件不存在,系统会自动在该位置新建一个该名字的文件。

    文件编辑:
    使用键盘的上 下 左 右对光标进行移动,移动到指定位置以后,直接输入即可。

    1. # 设置拒绝访问的ip地址信息
    2. # deny 192.168.1.*
    3. #允许192.168.18.*网段访问
    4. allow 192.168.18.*
    5. #​443端口即网页浏览端口
    6. 0.0.0.0 443 mirrors.tuna.tsinghua.edu.cn 443
    7. # 设置日志文件路径
    8. 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!(不保存退出)

    1. vim /etc/rinetd.conf #添加如下几行内容
    2. 0.0.0.0 8080 192.168.43.120 8080 #将所有发往本机任何网卡的8080端口的请求转发到192.168.43.1208080端口上
    3. 0.0.0.0 2222 192.168.43.121 3389 #将所有发往本机任何网卡2222端口的请求转发到192.168.43.1213389端口
    4. 192.168.43.1 80 192.168.43.122 80 #将所有发往本机IP为192.168.43.180端口请求转发到192.168.43.12280端口
    5. #说明:
    6. 0.0.0.0表示本机绑定所有可用地址
    7. [Source Address] [Source Port] [Destination Address] [Destination Port]
    8. 源地址 源端口 目的地址 目的端口

    Linux常用工具之vim_哆哆哆咪咪咪的博客-CSDN博客_linux vim

    rinetd开关

    A.配置启动

    1. rinetd的启动与停止
    2. [root@master rinetd]# rinetd -c /etc/rinetd.conf                 #启动rinetd
    3. [root@master rinetd]# pkill rinetd                                #关闭rinetd

    B.脚本启动

    创建脚本

    1. cat >> /etc/init.d/rinetd <<'EOF'
    2. #!/bin/bash
    3. EXEC=/usr/sbin/rinetd
    4. CONF=/etc/rinetd.conf
    5. PID_FILE=/var/run/rinetd.pid
    6. NAME=Rinetd
    7. DESC="Rinetd Server"
    8. case "$1" in
    9. start)
    10. if [ -x "$PID_FILE" ]; then
    11. echo "$NAME is running ..."
    12. exit 0
    13. fi
    14. $EXEC -c $CONF
    15. echo -e "\e[1;32m$NAME is running\e[0m"
    16. ;;
    17. stop)
    18. if [ -f "$PID_FILE" ]; then
    19. kill `cat $PID_FILE`
    20. while [ -x "$PID_FILE" ]
    21. do
    22. echo "Waiting for $NAME to shutdown..."
    23. sleep 1
    24. done
    25. rm -f $PID_FILE
    26. fi
    27. echo -e "\e[1;31m$NAME stopped.\e[0m"
    28. ;;
    29. restart)
    30. $0 stop
    31. $0 start
    32. ;;
    33. status)
    34. if [ -f $PID_FILE ]; then
    35. echo "$NAME is running ..."
    36. else
    37. echo "$NAME stopped."
    38. fi
    39. ;;
    40. *)
    41. echo $"Usage: $0 {start|stop|restart|status}"
    42. exit 2
    43. ;;
    44. esac
    45. exit 0
    46. EOF

    启动

    /etc/init.d/rinetd start


    测试

    1. [root@master rinetd]#echo '0.0.0.0 80 192.168.43.201 8161' >> /etc/rinetd.conf                #添加这条转发规则到rinetd.conf
    2. [root@master rinetd]# pkill rinetd                                                            #关闭rinetd
    3. [root@master rinetd]# rinetd -c /etc/rinetd.conf                                             #启动rinetd

    网页测试成功,已经将80端口转发到mq的8161端口,如下:

    在这里插入图片描述

    参考链接

    rinetd端口转发工具_MssGuo的博客-CSDN博客_rinetd

    Linux下使用Rinetd搭建一个中转服务器来实现端口转发 - 玩技e族

    Linux服务器安装rinetd转发 - 应援 - E.R.T. -

    Rinetd——端口转发工具 - 简书

  • 相关阅读:
    docker通过挂载conf文件启动redis
    LeetCode301:删除无效的括号
    基于STM32设计的便携式心电信号监测系统
    6. 使用 Spring Boot进行开发(Developing with Spring Boot)
    使用 GitHub Actions 通过 CI/CD 简化 Flutter 应用程序开发
    计算机网络——数据链路层介质访问控制
    科技碰撞:元宇宙与虚幻引擎,被掩盖的底层逻辑何在?
    java-php-python-ssm点餐系统设计计算机毕业设计
    Python网易云音乐爬虫大数据分析可视化系统——大屏数据可视化开发之路
    智能运维监控系统怎么选
  • 原文地址:https://blog.csdn.net/qq_28838891/article/details/128180070