/proc/net/ip_conntrack和/proc/net/nf_conntrack的详细信息

22
我正在寻找有关Linux系统中文件/proc/net/nf_conntrack和/proc/net/ip_contrack内容的详细文档。
是的,我知道有许多工具可以以人类可读的格式显示这些文件的内容,但是... 我想在SOHO路由器上(使用Shibby的Tomato USB固件)完成此操作。据我所知,optware已被弃用,而entware不包含这些实用程序,因此我想编写一个脚本来代替它们,但我没有找到这些文件的详细描述 :(
2个回答

50
< p > /proc/net/ip_conntrack 中一行的格式与 /proc/net/nf_conntrack 相同,只是前两列缺失。< /p > < p > 我将尝试总结后者文件的格式,根据我从 net/netfilter/nf_conntrack_standalone.c, net/netfilter/nf_conntrack_acct.cnet/netfilter/nf_conntrack_proto_*.c 内核源代码文件中理解的。术语“layer”指 OSI协议层模型。< /p >
  • 第一列:网络层协议名称(例如:ipv4)。
  • 第二列:网络层协议编号。
  • 第三列:传输层协议名称(例如:tcp)。
  • 第四列:传输层协议编号。
  • 第五列:条目失效的秒数。
  • 第六列(并非所有协议):连接状态。

其他所有列都以(key=value)命名或表示标志([UNREPLIED][ASSURED]等)。一行可以包含最多两个具有相同名称的列(例如:srcdst)。然后,第一次出现与请求方向相关联,第二次出现与响应方向相关联。

标记的含义:

  • [ASSURED]:已在两个方向上看到流量(即请求和响应)。
  • [UNREPLIED]:尚未在响应方向上看到流量。如果连接跟踪缓存溢出,则首先删除这些连接。
请注意,某些列名仅适用于特定协议(例如TCP和UDP的和,ICMP的和)。其他列名(例如)仅在内核构建时使用了特定选项时出现。
示例:
  • ipv4 2 tcp 6 300 ESTABLISHED src=1.1.1.2 dst=2.2.2.2 sport=2000 dport=80 src=2.2.2.2 dst=1.1.1.1 sport=80 dport=12000 [ASSURED] mark=0 use=2 属于从主机 1.1.1.2,端口 2000,到主机 2.2.2.2,端口 80 的已建立 TCP 连接,响应发送到主机 1.1.1.1,端口 12000,在五分钟内超时。对于此连接,数据包在两个方向上都被看到。
  • ipv4 2 icmp 1 3 src=1.1.1.2 dst=1.1.1.1 type=8 code=0 id=32354 src=1.1.1.1 dst=1.1.1.2 type=0 code=0 id=32354 mark=0 use=2 属于从主机 1.1.1.2 到主机 1.1.1.1 的 ICMP 回显请求数据包,期望从主机 1.1.1.1 到主机 1.1.1.2 的回显回复数据包,在三秒内超时。
响应目标主机不一定与请求源主机相同,因为请求源地址可能已被响应目标主机伪装。
请注意以下信息可能已过时!
所有条目可用的字段:
  • bytes(如果启用了记账,则为请求和响应)
  • delta-time(如果启用了CONFIG_NF_CONNTRACK_TIMESTAMP
  • dst(请求和响应)
  • mark(如果启用了CONFIG_NF_CONNTRACK_MARK
  • packets(如果启用了记账,则为请求和响应)
  • secctx(如果启用了CONFIG_NF_CONNTRACK_SECMARK
  • src(请求和响应)
  • use
  • zone(如果启用了CONFIG_NF_CONNTRACK_ZONES

dccp, sctp, tcp, udpudplite传输层协议可用的字段:

  • dport(请求和响应)
  • sport(请求和响应)

icmp传输层协议可用的字段:

  • code(请求和响应)
  • id(请求和响应)
  • type(请求和响应)

gre传输层协议可用的字段:

  • dstkey(请求和响应)
  • srckey(请求和响应)
  • stream_timeout
  • timeout

第六个字段允许的值:

  • dccp传输层协议
    • CLOSEREQ
    • CLOSING
    • IGNORE
    • INVALID
    • NONE
    • OPEN
    • PARTOPEN
    • REQUEST
    • RESPOND
    • TIME_WAIT
  • sctp传输层协议
    • CLOSED
    • COOKIE_ECHOED
    • COOKIE_WAIT
    • ESTABLISHED
    • NONE
    • SHUTDOWN_ACK_SENT
    • SHUTDOWN_RECD
    • SHUTDOWN_SENT
  • tcp传输层协议
    • CLOSE
    • CLOSE_WAIT
    • ESTABLISHED
    • FIN_WAIT
    • LAST_ACK
    • NONE
    • SYN_RECV
    • SYN_SENT
    • SYN_SENT2
    • TIME_WAIT

太棒了!谢谢Abrixas2 - ndemou

-1
文件ip_conntrack仅包含ipv4特定的连接跟踪条目,而nf_conntrack包括ipv4ipv6协议的连接跟踪条目。 nf_conntrack文件使用位于net/netfilter/nf_conntrack_standalone.c中的代码向proc文件系统注册,而ip_conntrack文件通过位于net/netfilter/nf_conntrack_l3proto_ipv4_compat.c中的代码向proc文件系统注册。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接