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

通过IPv6建立GRE隧道时出现“No buffer space available”等错误的问题咨询

通过IPv6建立GRE隧道时出现“No buffer space available”等错误的问题咨询

看起来你在尝试通过IPv6在两台VPS之间搭建GRE隧道时遇到了两个棘手的报错,我来帮你拆解问题并给出可行的解决思路:

你的配置与报错信息

首先先明确你的操作和遇到的问题:

你在/etc/rc.local中配置的命令:

sudo ip -6 tunnel add gre1 mode ip6gre local *LOCALIPV6* remote *REMOTEIPV6* ttl 255
sudo ip addr add 10.0.0.2/30 dev gre1
sudo ip link set gre1 up

iptables -t nat -A POSTROUTING -s 10.0.0.0/30 ! -o gre+ -j SNAT --to-source *LOCALIPV4*

exit 0

执行bash /etc/rc.local时出现的报错:

add tunnel "ip6gre0" failed: No buffer space available
RTNETLINK answers: File exists

错误原因分析与解决步骤

1. 「RTNETLINK answers: File exists」—— 资源已存在的问题

这个报错很直观:你要创建的gre1隧道或者要绑定的10.0.0.2/30IP地址已经存在于系统中了。大概率是你之前已经执行过一次rc.local脚本,隧道资源没有被清理,再次执行就会冲突。

解决办法:
先手动清理现有资源,再重新执行脚本:

# 先关闭gre1隧道
sudo ip link set gre1 down
# 删除gre1隧道
sudo ip -6 tunnel del gre1
# 删除绑定的IP地址
sudo ip addr del 10.0.0.2/30 dev gre1

清理完成后再运行bash /etc/rc.local,这个报错应该就会消失。

2. 「No buffer space available」—— 网络缓冲区不足的问题

这个报错通常和系统的网络缓冲区配置有关,也可能是内核模块未正确加载导致的。

解决办法:

  • 先确认内核模块是否加载:
    ip6gre隧道依赖ip6_gre内核模块,先检查是否已加载:

    lsmod | grep ip6_gre
    

    如果没有输出,说明模块未加载,手动加载试试:

    sudo modprobe ip6_gre
    

    想要开机自动加载的话,可以创建/etc/modules-load.d/ip6_gre.conf文件,内容只写ip6_gre即可。

  • 临时调整网络缓冲区参数:
    执行以下命令临时扩大网络缓冲区:

    sudo sysctl -w net.core.wmem_max=16777216
    sudo sysctl -w net.core.rmem_max=16777216
    sudo sysctl -w net.ipv6.route.max_size=4096
    

    如果临时生效,想要永久生效,把这些参数添加到/etc/sysctl.conf或者/etc/sysctl.d/99-custom.conf文件中,然后执行sudo sysctl -p让配置生效。

3. 优化rc.local脚本,避免重复执行报错

为了防止以后再次遇到类似问题,你可以给脚本加上判断逻辑,只有当资源不存在时才执行创建/添加操作:

# 检查gre1隧道是否存在,不存在则创建
if ! ip link show gre1 > /dev/null 2>&1; then
    sudo ip -6 tunnel add gre1 mode ip6gre local *LOCALIPV6* remote *REMOTEIPV6* ttl 255
    sudo ip addr add 10.0.0.2/30 dev gre1
    sudo ip link set gre1 up
fi

# 检查SNAT规则是否存在,不存在则添加
if ! iptables -t nat -C POSTROUTING -s 10.0.0.0/30 ! -o gre+ -j SNAT --to-source *LOCALIPV4* > /dev/null 2>&1; then
    iptables -t nat -A POSTROUTING -s 10.0.0.0/30 ! -o gre+ -j SNAT --to-source *LOCALIPV4*
fi

exit 0

备注:内容来源于stack exchange,提问作者Hypothesis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 07:39:32