OpenWrt运行一段时间后,公网IPv6不知道为什么就丢失了,只好写个脚本来重新获取。 如果你也遇到这样的问题,可以参考下面的解决方法。

思路

  1. 使用 ifconfig 获取lan接口的信息
  2. 检查lan接口信息是否有公网IPv6地址
  3. 如果没有找到,则使用 /sbin/ifup 重拨wan接口
  4. 使用 crontab 定期运行脚本

实现

  1. 编写以下脚本,命名为 checkIPv6.sh
#!/bin/bash
result=$(ifconfig br-lan | grep '::1/64 Scope:Global')
echo $result

if [[ -z "$result" ]] ; then
  echo 'restart wan...';
  /sbin/ifup wan
fi
  1. 运行 crontab -e,加入定时任务
# 每分钟运行一次
*/1 * * * * /bin/bash /path/to/checkIPv6.sh