Padavan启用ipv6并允许公网访问内网

一、开启opt环境

首先要在老毛子的管理后台开启 opt 环境,设置路径在“扩展功能”-“配置扩展功能”-“opt环境”,启用 opt 自动更新、启用扩展脚本自动更新、打开 opt 强制安装、opt 安装模式选择“自动选择:SD→U盘→内存”。打开之后在 log 中会有安装的过程,出现类似【opt】: opt 挂载正常:tmpfs的日志说明 opt 环境已经安装成功。

二、开启 WAN 端 IPv6

 

IPv6 连接类型:Native DHCPv6;即原生的 DHCPv6

IPv6 外网设置

获取 IPv6 外网地址:Stateless: RA

DNSv6 外网设置

自动获取 IPv6 DNS:是

 

通过 DHCPv6 获取内网 IPv6 地址:启用

启用 LAN 路由器通告:启用

启用 LAN DHCPv6 服务器:Stateless (*)

然而这个时候只是路由器能访问 IPv6,路由器下级的设备还不能,因为没有对应的 IPv6 转发协议。网上有很多这样的程序,6relayd 就是其中一个,这里我用 6relayd 来转发 IPv6。

三、安装并运行 6relayd

 

opkg update
opkg install 6relayd

 

6relayd -d -A eth2.2 br0

 

这里的 eth2.2 就是 WAN 网口的网卡名,可用 ifconfig 命令来查看,一般不用更改。而 br0 则代表整个内网,一般也不用更改。

运行之后连接到路由器的设备也能获取到 IPv6 地址并访问 IPv6 资源。

 

四、开机自动安装并配置 6relayd 脚本

 


# 在路由器启动之后执行6relayd

export PATH='/etc/storage/bin:/tmp/script:/etc/storage/script:/opt/usr/sbin:/opt/usr/bin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin'
export LD_LIBRARY_PATH=/lib:/opt/lib
while ! [ -x "`which opkg`" ]
do
        logger -t "【6relayd】" "Waitting opt install"     
        sleep 3
done
while ! [ -x "`which 6relayd`" ]
do
        logger -t "【6relayd】" "6relayd not found,begin to install it"
        opkg update
        opkg install 6relayd
done
logger -t "【6relayd】" "6relayd has been installed"
6relayd -d -A eth3 br0
logger -t "【6relayd】" "6relayd start"

 

 

五、解决 6relayd 自动掉线

在高级设置-系统管理-服务-计划任务(Crontab)中添加如下代码:

 

 

 

 

 
 

配置好之后内网可以访问公网,但公网进不来的,参考此步骤!

引起该问题的原因是ip6tables防火墙导致的。关闭也很简单。

 
ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -P FORWARD ACCEPT
 
把这几行命令加到路由器启动后执行的脚本即可~
 
posted @ 2022-04-25 08:52  慕炎  阅读(5343)  评论(0)    收藏  举报