1、配置路由器,开启IPv6功能,使服务器能够获取公网IPv6;
2、给域名增加IPv6解析记录(AAAA记录),通过AliDDNS程序定时获取本机IPv6地址,并通过接口更新阿里域名解析记录;
3、路由器的IPv6防火墙关闭,或添加指定端口的监听,或开放端口;
以小米路由器3G为例,方法如下:
(1)参考小米路由器官方文档(http://d.miwifi.com/rom/ssh)打开路由器SSH功能,我的路由器刷了“MiWiFi 开发版 2.25.124”固件。
(2)成功开启ssh后,使用powershell、cmd、putty或者你熟悉的ssh客户端,输入下面指令,如果开启ssh成功,输入密码即可登录路由器。
ssh root@192.168.31.1
(3)手动开启IPv6功能
vi /etc/config/ipv6
进入编辑状态后,将原代码:
config ipv6 'settings'
list if_on 'wan'
option enabled '1'
list if_on 'ipv6'
option enabled '1'
替换为以下内容:
config ipv6 'settings'
list if_on 'wan'
list if_on 'ipv6'
option ipv6_show '1'
option enabled '1'
option mode 'native'
config dns 'dns'
option peerdns '1'
修改后按Esc,输入:wq保存退出。
(4)手动修改IPv6的防火墙规则
方法一:关闭防火墙
输入命令:
vi /etc/rc.local
修改前文件内容:
# restore phy config
speed=$(uci -q get xiaoqiang.common.WAN_SPEED)
[ -n "$speed" ] && /usr/sbin/phyhelper swan "$speed"
exit 0
进入编辑状态后,在exit 0 前面加入:
ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -P FORWARD ACCEPT
修改后按Esc,输入:wq保存退出。然后重启路由器。
方法二:开启防火墙端口
还是在方法一中的位置,替换方法一中增加的代码为以下代码:
ip6tables -I forwarding_rule -p tcp --dport 11 -j ACCEPT
修改后按Esc,输入:wq保存退出。然后重启路由器。
备注:有人说重启路由器需要再设置一遍,我测试的结果是重启仍可以IPv6访问,需要注意的是重启后IPv6地址变了。
方法三:修改防火墙默认配置
vi /etc/config/firewall
按i键进入编辑模式。
修改前:
config defaults
option syn_flood '0'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'
option drop_invalid '1'
option disable_ipv6 '0'
修改后:
config defaults
option syn_flood '0'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option drop_invalid '0'
option disable_ipv6 '0'
修改后按Esc,输入:wq进行保存。
保存后重启防火墙:
/etc/init.d/firewall restart
4、在Win10主系统中添加IPv6到IPv4的Net转发:
打开cmd命令行窗口输入以下命令:
netsh interface portproxy add v6tov4 listenaddress=:: listenport=11 connectaddress=192.168.1.12 connectport=80
参数说明:
11:Nextcloud的对外IPv6端口(可以和IPv4对外端口一致,只是IPv6的端口不需要经路由器的端口转发);
192.168.1.12:子系统Ubuntu的IP地址;
80:子系统Ubuntu中NextCloud绑定的内网端口;
其他用到的命令:显示所有Net转发
netsh interface portproxy show all
删除指定监听的Net转发
netsh interface portproxy delete v6tov4 listenaddress=:: listenport=11
5、服务器主机防火墙添加入站规则,放行NextCloud外网端口11;
6、通过Android手机或电脑,只开启IPv6网络,即可测试IPv6是否正常访问。