我正在寻找有关linux系统上文件/ proc / net / nf_conntrack和/或/ proc / net / ip_contrack内容的详细文档。
是的,我知道,有很多实用工具可以用人类可读的格式向我展示这些文件的内容,但是......我想在SOHO路由器上使用Tomato USB固件(Shibby) 。 软件AFAIK已弃用且entware不包含任何实用程序,因此我想编写脚本而不是它们,但我没有找到这些文件的详细说明。 :(
答案 0 :(得分:33)
来自/proc/net/ip_conntrack
的一行的格式与/proc/net/nf_conntrack
的格式相同,但前两列缺失。
我将尝试总结后一个文件的格式,正如我从net/netfilter/nf_conntrack_standalone.c
,net/netfilter/nf_conntrack_acct.c
和net/netfilter/nf_conntrack_proto_*.c
内核源文件中理解的那样。术语layer
指的是OSI protocol layer模型。
ipv4
)。tcp
)。所有其他列都命名为(key=value
)或代表标记([UNREPLIED]
,[ASSURED]
,...)。一行最多可包含两个具有相同名称的列(例如src
和dst
)。然后,第一次出现与请求方向有关,第二次出现与响应方向有关。
旗帜的含义:
[ASSURED]
:在两个方向(即请求和响应)方向都看到了流量。[UNREPLIED]
:尚未在响应方向上看到流量。如果连接跟踪缓存溢出,则首先删除这些连接。请注意,某些列名称仅针对特定协议显示(例如,sport
和dport
用于TCP和UDP,type
和code
用于ICMP)。其他列名称(例如mark
)仅在内核使用特定选项构建时才会出现。
示例:
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
,udp
和udplite
传输层协议的字段:
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
答案 1 :(得分:-1)
文件ip_conntrack
仅包含 ipv4 特定的conntrack条目,而nf_conntrack
包含 ipv4 和 ipv6 协议conntrack条目。
nf_conntrack
文件
净/网络过滤/ nf_conntrack_standalone.c
而ip_conntrack
文件是通过代码中的代码向proc文件系统注册的
净/网络过滤/ nf_conntrack_l3proto_ipv4_compat.c