• TCP端口转发(centos7)


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

     2019/2/14_第1次修改                       ccb_warlock

     

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

    由于业务中个别TCP的服务需要做迁移,而该服务目前又是不是集群的方式对外提供服务,为了尽可能的缩短服务的中断,在部署完新服务后,原服务器的端口需要转发TCP的流量到新的服务器,经过一段时间后用户更新了配置,流量大体上直接向新服务器跑时,再将老服务器的端口撤掉。

     

    在网上找了些资料,针对centos7的TCP端口转发找到2种途径:

    1)firewalld

          优:系统自带的防火墙,不需要配置其他软件就能实现TCP流量的转发;

          缺:必须是firewalld运行的时候才能转发,但是有些服务的运行不适合开启firewalld,或者原先设计就是关闭服务器自身的防火墙而依靠外部的防火墙(比如云服务商的安全组);

    2)rinetd

          优:不管防火墙是否开启,都可以使用该服务实现端口转发(当然防火墙得开放这个端口);

          缺:需要装服务,而且是一个最后更新时间是2003年的工具,面对十几年的系统网络发展会不会有风险需要大量试验后才能知道;

     


     一、firewalld
     # 允许防火墙伪装IP

    firewall-cmd --add-masquerade

     # 增加80、8080端口的映射到192.168.13.1的80、8080端口

    firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.13.1:toport=80 --permanent
    firewall-cmd --add-forward-port=port=8080:proto=tcp:toaddr=192.168.13.1:toport=8080 --permanent

     二、rinetd
     # 获取rinetd源码包到/opt目录下

    cd /opt
    wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
    tar -zxvf rinetd.tar.gz

     # 进入rinetd目录

    cd rinetd

     # 设置转发端口的范围

    sed -i 's/65536/65535/g' rinetd.c

     # 创建目录

    mkdir -p /usr/man

     # 编译并安装

    make && make install

    # 编辑配置文件

    vi /etc/rinetd.conf

     # 表示将所有发往本机80、8080端口的请求转发到192.168.13.1的80、8080端口(0.0.0.0表示本机绑定所有可用地址)
     # 将下面的内容添加到rinetd.conf文件内,wq保存。

    0.0.0.0 80 192.168.13.1 80
    0.0.0.0 8080 192.168.13.1 80

     # 启动rinetd

    rinetd -c /etc/rinetd.conf

     

     

  • 相关阅读:
    关于博客园创始人的心路历程,感触很深!
    Django中的ORM相关操作:F查询,Q查询,事物,ORM执行原生SQL
    在Django中运行脚本文件以及打印出SQL语句。
    Django中的跨表查询,多表查询。
    Django中的ORM介绍,字段以及字段的参数。
    9.2安全的 Web API 与 Web API 2.2 个人帐户
    9.1WebApi的身份验证和授权
    3.1创建项目
    2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API
    2.3属性在 ASP.NET Web API 2 路由
  • 原文地址:https://www.cnblogs.com/straycats/p/10381203.html
Copyright © 2020-2023  润新知