• linux下使用rinetd来实现端口转发


    linux下使用rinetd来实现端口转发

    windows下的端口转发一般用的是自带的nat和porttunnel、portmap

    linux下端口转发映射的程序叫rinetd,启动方法rinetd -c /etc/rinetd.conf ,pkill rinetd 关闭进程

    工具主页: http://www.boutell.com/rinetd/ 
    软件下载,解压安装

    wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
    
    tar zxvf rinetd.tar.gz
    
    make
    
    make install

    把1.1.1.1的11端口映射到2.2.2.2的3389端口,配置文件如下

    [root@localhost iso]# cat   /etc/rinetd.conf
    
     
    
    1.1.1.1 11 2.2.2.1 3389
    
    1.1.1.1 12 2.2.2.2 3389
    
    1.1.1.1 13 2.2.2.3 22
    
    1.1.1.1 14 2.2.2.4 80
    
    allow *.*.*.*
    
    logfile /var/log/rinetd.log

    启动程序

    pkill rinetd  ##关闭进程
    
    rinetd -c /etc/rinetd.conf  ##启动转发

    把这条命令加到/etc/rc.local里面就可以开机自动运行 
    查看状态

    netstat -antup

    如果想用iptables实现的话,可以用一下命令。

    WAN_IP=”202.106.0.20″
    
    iptables -t nat -A PREROUTING -i eth0 -p tcp ?dport 2533 -j DNAT ?to 192.168.1.88:80
    
    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.88 -p tcp ?sport 80 -j SNAT ?to $WAN_IP:2533

    第一句定义一个变量 
    第二句实现对端口为2533的请求转发到192.168.1.88的80端口 
    第三句修改从etho输出的源地址为192.168.1.88,端口为80的数据包的源地址为本机的2533端口,以便对方收到 
    数据包之后能正确返回。

    =============================================================

    rinetd 在生产环境要谨慎使用

    阿里云的redis节点,但是默认阿里云不提供公网IP,所以我在一台阿里云的机器启动了rinetd,做端口的转发服务,开始一切正常,一段时间以后,随着并发力度加大。我们发现redis连不上了,提示Connection reset by peer

    直接使用nginx的tcp proxy模块,问题解决,并且CPU使用率也不高

  • 相关阅读:
    Druid连接池的简单使用
    JDBC工具包commons-dbutils的基本介绍
    Java IO: ByteArrayOutputStream使用
    开源数据库连接池之Tomcat内置连接池
    jquery里面的$(this)和this的区别
    css自定义属性(css变量)
    CSS选择器
    IntelliJ IDEA 学习笔记
    JSP基本的语法、3个编译指令、7个动作指令、9个内置对象
    CSS3 box-shadow
  • 原文地址:https://www.cnblogs.com/awei4home/p/9597400.html
Copyright © 2020-2023  润新知