zoukankan      html  css  js  c++  java
  • 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使用率也不高

  • 相关阅读:
    个人总结
    找水王
    nabcd需求分析
    四则运算最终篇-网页版四则运算
    第一次冲刺--个人工作总结02
    第一次冲刺--个人工作总结01
    组队APP功能点定点NABCD分析
    水王
    软件工程结对作业01
    个人工作总结06
  • 原文地址:https://www.cnblogs.com/awei4home/p/9597400.html
Copyright © 2011-2022 走看看