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使用率也不高

  • 相关阅读:
    2015 年最受 Linux 爱好者欢迎的软硬件大盘点
    Java 9终于要包含Jigsaw项目了
    Linux 容器技术史话:从 chroot 到未来
    开发者最常用的 8 款 Sublime Text 3 插件
    60,000毫秒内对Linux的性能诊断效的方法
    bzoj 2595 [Wc2008]游览计划(斯坦纳树)
    bzoj 3997 [TJOI2015]组合数学(DP)
    bzoj 1014 [JSOI2008]火星人prefix(splay+hash)
    bzoj 1090 [SCOI2003]字符串折叠(区间DP)
    bzoj 1537 [POI2005]Aut- The Bus(DP+BIT)
  • 原文地址:https://www.cnblogs.com/awei4home/p/9597400.html
Copyright © 2011-2022 走看看