我从 net-snmp 库中得到一个错误,执行 snmp get 说
Operation not permitted error from sendto.
我想知道是什么导致sendto(2)
系统调用因此错误而失败。
请注意,这是一个间歇性错误,所以我不认为它是由防火墙问题引起的,除非防火墙可能会间歇性地导致此问题。
今天发生在我身上,就我而言,问题是由于 conntrack 表已满。
额外的症状是nf_conntrack: table full, dropping packet
系统日志中有很多“”。如果是这种情况,解决方案是将net.ipv4.netfilter.ip_conntrack_max
(aka net.netfilter.nf_conntrack_max
) 设置为更高的值,例如:
# sysctl net.ipv4.netfilter.ip_conntrack_max
net.ipv4.netfilter.ip_conntrack_max = 65536
# sysctl net.ipv4.netfilter.ip_conntrack_max=1548576
net.ipv4.netfilter.ip_conntrack_max = 1548576
正如其他人所说,这可能还有其他可能的原因,例如 SELinux 或 AppArmor 策略。YMMV。
如果错误代码是 EPERM,则您正在使用特权端口作为非 root 用户
使用端口 > 1024