Win10子系统NextCloud支持IPv6访问

姚永年
2023-12-01

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是否正常访问。

 类似资料: