|
ESTABLISHED 状态是 xt_state.ko 模块中描述的 4 种状态(NEW, ESTABLISHED, RELATED 及 INVALID) 之一,表示已建立连接之一。需要注意的是,ESTABLISHED 这种已连接状态与 TCP/IP 协议中的所描述的连接状态是不一样的。比如在 TCP/IP 标准协议中,UDP 和 ICMP 数据包是没有连接状态的,但在 state 模块中,任何数据包都有连接状态。
以 SSH 连接为例。假设 SSHD 服务器被防火墙所保护,它只允许特定的主机连接到服务器。如果一个客户端向 SSHD 服务器发出连接请求,若该客户端不被防火墙所允许连接,那么连接失败;反之,如果请求被允许,即请求数据包”可以穿越防火墙“,那么在这种情况下,不论对于客户端还是服务器端,该连接状态都是 ESTABLISHED 。
上面的 SSH 连接例子使用的是 TCP 协议。在 UDP 和 ICMP 协议上有着同样的道理。比如当我们上网浏览网页时,在浏览器的地址栏里输入一个网址,一般情况下,浏览器会请求 DNS 解析服务,解析成功则能顺利浏览网页,否则没法浏览。在请求 DNS 服务是用 UDP 协议的,同样如果请求数据包可以顺利到达 DNS 服务器,那么不论对于客户端还是服务器端其状态也都是 ESTABLISHED 。同理,当我们用 ping 命令来检测网络上的主机时,如果 ICMP 可以穿越被测主机的防火墙(防火墙允许 ping 或者说客户端得到回应),那么不论对于运行 ping 程序的主机还是被 ping 的主机来说,其状态都是 ESTABLISHED 的。
应用 ESTABLISHED 状态的一个具体实例可参考《sshd 响应慢原因分析及使用 iptables 解决 》。 |
|