我正在尝试通过套接字将数据包发送到多播地址。默认情况下
hopLimit
== 1。我默认需要hopLimit == 255
。
我可以使用
hopLimit
更改通过此套接字发送的所有数据包的 IPV6_MULTICAST_HOPS setsockopt
。
但我需要类似 hopLimit
的系统默认值来进行多播发送。
我找到了
sysctl
选项。但仅限于OpenBSD
net.inet6.ip6.defmcasthlim
我找不到类似的选项
armLinux
不幸的是,无法像 OpenBSD 那样更改 Linux 中的默认多播跳数限制。除非您愿意更改 Linux 内核源代码,否则。如果您确实想为此目的修改内核,只需更改内核树中的 include/net/ipv6.h 头文件中的
IPV6_DEFAULT_MCASTHOPS
定义即可。
我无法在armLinux中测试这个,但sysctl可以在rocky 9中工作
例如,进行临时更改:
sudo sysctl net.ipv4.ip_default_ttl=12
例如,要进行将在重新启动后生效的更改:
创建
/etc/sysctl.d/limit-ttl.conf
内容:
sudo sysctl net.ipv4.ip_default_ttl=12
sysctl
可以为您提供当前值,或者您可以查看 /proc/sys/net/ipv4
。
您可以像往常一样写入这些文件进行更改,如果这适合您想要做的事情。
信用:https://packetpushers.net/blog/ip-time-to-live-and-hop-limit-basics/