Linux中打开80端口不起作用

Linux中打开80端口不起作用

我正在尝试使用 gufw 在 linux 中打开端口 80。这是我的规则:

-A ufw-user-output -d 192.168.0.100/32 -p tcp -m tcp --dport 80 -j ACCEPT
-A ufw-user-output -d 192.168.0.100/32 -p udp -m udp --dport 80 -j ACCEPT

这是我检查时的输出ufw status

Status: active

To                         Action      From
--                         ------      ----
192.168.0.100 80           ALLOW       Anywhere                                 

192.168.0.100 80           ALLOW OUT   Anywhere      

我已经使用此设置从我的 tp-link 路由器设置了端口转发(检查第 2 项):

在此输入图像描述

但是当我检查我的开放端口时端口检查工具,它仍然告诉我端口 80 已关闭。你能帮我解决我的问题吗?谢谢。

答案1

“简单的防火墙”(gufw)正在使用 iptables 来配置 ip 过滤器。所以你应该了解 ip 过滤器及其工作原理。 iptables 知道过滤 ip 的下表:

过滤器-默认表。它专为纯过滤而设计。如果您不使用“-t,则它是默认使用的。
nat - 该表用于网络地址转换。就像它将用于 DSL 或 WLAN 路由器一样。它还用于将一个公共地址与专用网络结合起来,例如 192.168.xx
mangle - 该表用于数据包操作。
raw - 该表可用于连接跟踪的异常。

所有这些表都使用链:

INPUT -tables:filter, mangle :该链上的规则将在所有前往本地进程的数据包上执行(例如 ip 地址/端口)
OUTPUT -tables:filter, nat, mangle, raw :该链上的规则将在所有传出数据包(来自本地进程)上执行
FORWARD -tables:filter, mangle :该链上的规则用于所有路由数据包
PREROUTING -tables:nat, mangle, raw :此链上的规则用于路由之前的所有数据包
POSTROUTING -tables:nat, mangle :该链上的规则将在路由操作发生后执行

“坏”的事情是 gufw 使用用户定义的链,它将在默认表中使用。到目前为止还不错,但是只要您不了解 iptables 的工作原理,就可能很难了解 gufw 的底层原理。
那么让我展示一下如何使用命令行中的本机 iptables 来实现这个简单的规则(这就是您所寻找的)

你需要的是:

sudo iptables -I 输入 1 -p tcp --dport 80 -j 接受 #1
sudo iptables -I 输出 1 -p tcp --sport 80 -j 接受 #2

#1 这将在表链“INPUT”的第一个位置插入一个链到默认表“filter”,并允许(接受)来自任何地方的 tcp ip 流量前往端口 80 #2 这将插入一个链到默认表表“filter”位于表链“OUTPUT”的第一个位置,并允许(接受)来自端口 80 上的本地进程并向外发送到任何目标 IP 地址和任何端口号的 TCP IP 流量。

因此,我希望这将有助于将您的知识传授给我们 gufw,或者也许您可以抛出 gufw 并使用本机 iptables - 因为对于 98% 的所有用例来说,它并不那么复杂:-) 另外,也许这个链接将有助于与ufs - gufw 旁边的命令行工具:https://help.ubuntu.com/lts/serverguide/firewall.html

相关内容