允许端口 3306

允许端口 3306
# /sbin/iptables -nvL

上面的 iptables 命令的输出看起来像这样...

 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       192.168.101.101      0.0.0.0/0           tcp dpt:3306 state NEW,RELATED,ESTABLISHED 
16810 1009K ACCEPT     tcp  --  *      *       192.168.101.120      0.0.0.0/0           tcp dpt:3306 

这两行有什么区别?第二个 IP 没有“状态为新,...”。这有什么区别吗?我所做的就是允许从这些 IP 在默认端口 3306 上访问 mysql

答案1

-m state它与 iptables 规则的匹配有关。您可以使用它iptables-save来查看完整规则。

state NEW,RELATED,ESTABLISHED意味着只有这三个会被接受。

iptables(或者更准确地说,netfilter)知道以下状态:

  • 新 - 新连接
  • ESTABLISHED - 检测到双向流量
  • 相关 - 与原始连接相关的流量(例如,与 TCP 连接相关的 ICMP 回复)
  • 无效 - 流量无效,例如收到了不合适的 TCP 段
  • conntrackUNTRACKED-netfilter模块未跟踪流量

至于您的问题:这两条规则几乎没有区别。

答案2

不同之处在于您提到的源 IP 地址和状态标志。

至于为什么您的第一个 IP 没有连接或无法连接,当您在 iptables 中使用连接跟踪时,您通常会有一条规则,例如:

接受所有 -- 任何地方任何地方状态 RELATED,ESTABLISHED

作为万能药。

.101 规则将是新的。

接受 tcp -- 192.168.101.101 任意位置状态新 tcp dpt:306

相关内容