Firewalld:设置端口 80/443 的端口转发会阻止客户端访问互联网

Firewalld:设置端口 80/443 的端口转发会阻止客户端访问互联网

我是新来的,希望我来对地方了。对于这种复杂程度的网络,我也是新手,这个问题可能比较愚蠢,所以提前致歉。由于某些原因,我有一个只有以太网的 nas (synology),我无法连接到它所在位置的有线网络,因此我设置了一个 raspberry pi 作为路由器/互联网连接共享设备,通过 wifi 将 nas 接入网络。这是设置:

工作场所 (wifi) <---> rpi (wifi, dhcp)---rpi (dhcp 服务器, firewalld)---rpi (以太网) <---> nas (以太网, dhcp)

我已经成功配置了 wifi 和以太网连接,正确设置了 dhcp 服务器(在 eth0 上),并在防火墙上启用了伪装,以便 nas 可以访问互联网。nas 应该托管一个 Web 服务器,所以我需要将端口 80 和 443 直接转发到 nas。这就是我的问题所在。防火墙现在的配置方式:

  • wlan0 和 eth0 都位于公共区域(默认区域)
  • 为公共区域启用伪装
  • 为公共区域启用 http 和 https 服务

当我以这种方式转发端口 80 时:

firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=80:toaddr=NAS_IP

NAS 网络服务器在工作场所网络中的其他机器上可见,但 NAS 本身不再具有互联网访问权限,因为任何 http 请求都会重定向到其自己的网络服务器,而不是互联网。如果我删除端口转发,连接就会恢复,但我当然无法再访问网络服务器。

我知道一个简单的解决方案是将网络服务器移至其他端口,但我真的希望将其保留在端口 80 上,以方便用户使用。我读过此错误报告这看起来像是我遇到的问题,但它似乎已经解决了(尽管系统上安装的版本是 0.6.3,所以我对此并不完全确定)。我想知道这是否是程序中的错误,或者我的配置是否愚蠢(例如,两个接口不应该位于同一区域,或类似情况)。感谢您提供的任何帮助。

答案1

您将 NAS 放在public区域中,而它应该位于不同的区域中。您可以选择现有区域或创建新区域。

相关内容