技术解析

请教 firewalld 的端口转发
0
2021-06-30 09:17:11
idczone
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 连接,通。

请问这个是什么原因造成的?被原端口干扰了吗?请问这个应该怎么处理
我感觉你的问题没有描述清楚,firewalld、haproxy、nginx 是分别跑在不同服务器上呢还是怎么地。。。

同一服务器上,通过 tuntap 创建的虚拟网卡

sysctl net.ip.forwarding 开了么

上面加上 toport 呢?
iptables-save 看看实际规则的是什么

add service 可能是问题原因

应该不是这个原因,如果我关掉 80 端口也是不通的


是不是因为 没指定 网络接口, 而将 tuntap 对应的网络接口也包含在内了。 从而对 tuntap 对应的网络接口 也应用了 firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=10.0.0.2 这条规则

哦!估计是,那么就是说需要指定接口了,我试试

yum purge firewalld
yum install iptables
然后你就会操作了,你是想用 bbr 加速吗?

主要是想学学 firewalld,用 iptables 不是我的本意

一个很好的简单教程 http://www.excelib.com/article/287/show/
我是看这个入门的

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服