You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SO_MARK合法取值范围、类型定义及抓包查看方法咨询

SO_MARK 取值说明
  • 类型正确性:Linux 内核定义的 SO_MARK 本身是 32 位无符号整数,所以使用 unsigned int 是符合内核规范的写法,部分项目用 int 属于不规范的历史遗留写法,存在符号位溢出的风险。
  • 合法取值范围:内核层面没有预留值,合法范围为 0 ~ 4294967295(即 32 位无符号整数的全取值区间),你给 ping 工具做输入校验时,只要限定输入值落在这个区间即可。
  • 额外权限规则:值为 0 是默认标记,所有用户都可设置;非 0 值需要进程持有 CAP_NET_ADMIN 权限才能设置成功,这个属于运行时权限校验,不需要放到输入值校验逻辑里。
抓包工具查看 SO_MARK 的方法

SO_MARK 是 Linux 内核网络栈的内部元数据,不会被写入数据包的实际报文头,所以跨节点抓包无法看到该值。如果是在标记生效的 Linux 本机抓包,可以通过工具捕获到该元数据:

  • tcpdump 抓包时添加 -v verbose 参数,输出中会直接展示 mark 0x[十六进制标记值] 字段
  • wireshark 打开本地抓包文件时,在「Linux cooked capture」协议层可以找到对应的 Mark 字段查看具体值

内容的提问来源于stack exchange,提问作者pevik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:54:04