V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kuoruan
V2EX  ›  Linux

请教 firewalld 的端口转发

  •  
  •   kuoruan · 2017-05-21 12:32:43 +08:00 · 3164 次点击
    这是一个创建于 2523 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Nginx 服务 监听 IP 0.0.0.0 端口 80
    开了一个 tun,10.0.0.1/24
    HAProxy 监听 10.0.0.2 端口 80,后端 10.0.0.1 端口 80
    想实现:外部请求 80 -> 10.0.0.2:80 -> 10.0.0.1:80 (localhost:80)

    ```
    firewall-cmd --zone=public --add-service=http
    firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=10.0.0.2
    ```

    用 80 端口连接,不通。

    但是如果用一个新端口:
    ```
    firewall-cmd --zone=public --add-forward-port=port=81:proto=tcp:toaddr=10.0.0.2:toport=80
    ```

    用 81 连接,通。

    请问这个是什么原因造成的?被原端口干扰了吗?请问这个应该怎么处理
    11 条回复    2017-05-22 13:40:58 +08:00
    aip
        1
    aip  
       2017-05-21 13:33:58 +08:00
    我感觉你的问题没有描述清楚,firewalld、haproxy、nginx 是分别跑在不同服务器上呢还是怎么地。。。
    kuoruan
        2
    kuoruan  
    OP
       2017-05-21 13:51:13 +08:00
    @aip 同一服务器上,通过 tuntap 创建的虚拟网卡
    ryd994
        3
    ryd994  
       2017-05-21 16:37:39 +08:00 via Android
    sysctl net.ip.forwarding 开了么
    ryd994
        4
    ryd994  
       2017-05-21 16:39:34 +08:00 via Android
    上面加上 toport 呢?
    iptables-save 看看实际规则的是什么
    ryd994
        5
    ryd994  
       2017-05-21 16:41:39 +08:00 via Android
    add service 可能是问题原因
    kuoruan
        6
    kuoruan  
    OP
       2017-05-21 18:35:55 +08:00
    @ryd994 应该不是这个原因,如果我关掉 80 端口也是不通的
    linhua
        7
    linhua  
       2017-05-21 19:52:09 +08:00
    @kuoruan
    是不是因为 没指定 网络接口, 而将 tuntap 对应的网络接口也包含在内了。 从而对 tuntap 对应的网络接口 也应用了 firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=10.0.0.2 这条规则
    kuoruan
        8
    kuoruan  
    OP
       2017-05-21 20:58:53 +08:00
    @linhua 哦!估计是,那么就是说需要指定接口了,我试试
    tammy
        9
    tammy  
       2017-05-21 21:17:46 +08:00
    yum purge firewalld
    yum install iptables
    然后你就会操作了,你是想用 bbr 加速吗?
    kuoruan
        10
    kuoruan  
    OP
       2017-05-21 21:31:02 +08:00
    @tammy 主要是想学学 firewalld,用 iptables 不是我的本意
    snailsir
        11
    snailsir  
       2017-05-22 13:40:58 +08:00
    一个很好的简单教程 http://www.excelib.com/article/287/show/

    我是看这个入门的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5387 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:22 · PVG 09:22 · LAX 18:22 · JFK 21:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.