linux - 修改linux协议(protocol)表

标签 linux linux-kernel ip

出于某种原因,我需要更改 linux 协议(protocol)表。例如,我想 linux 将协议(protocol) 1 识别为 ipv4(协议(protocol) 4)或协议(protocol) 47 到 l2tp。 有谁知道如何在 linux 内核中或最好在/sys 文件夹中更改它,所以我的客户端将协议(protocol) tcp 作为 icmp 协议(protocol)发送,而在另一端它接收 icmp 并将其识别为 tcp。 谢谢,

最佳答案

协议(protocol)号在include/uapi/linux/in.h中定义。更改那里的东西时要格外小心,你将使你的操作系统与那里几乎所有其他东西不兼容。

编辑:当心驱动程序公然忽略 IPPROTO_TCP 的值以支持硬编码值...我刚刚在 drivers/infiniband/hw/nes/中找到了这个“ gem ” nes_cm.c:

451     iph->protocol = 0x06;   /* IPPROTO_TCP */

关于linux - 修改linux协议(protocol)表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15314114/

相关文章:

linux-kernel - 如何让cpuset的cpuset.cpu_exclusive函数正常工作

django - 关于 Django 中的 IP 0.0.0.0

mysql - 如何在 VDS (lxd/containers) 上运行 docker

java - 如果在 linux 上的 jboss 4 中的 JAVA_OPTS 中多次声明变量怎么办

linux - C 程序在转换为 Windows 后显示 %zu

operating-system - 什么是梯形调节器和菜单调节器?

linux - 如何使用 mutt 在程序完成时向我发送通知

c - 为自身定义一个宏符号

amazon-web-services - AWS ALB 到 DNS 名称而不是 IP

networking - 如何在 OSX 上为 TUN 接口(interface)设置 IP 地址(没有目标地址)?