2023年11月28日发(作者:)
配置IPv6公⽹地址DDNS并开放外⽹访问端⼝
⽬前使⽤三⼤运营商宽带服务都会下发公⽹IPv6地址,这样我们想要在外⽹访问家⾥的路由、NAS等设备就可以直接通过IPv6地址来访问
了。但是每次重新拨号后IPv6地址都会改变,⽽且IPv6的地址很长,这样就引出了动态域名服务,即DDNS。
其实DDNS的原理就是将本地获取到的公⽹IP地址告诉域名服务商,并且在IP地址发⽣变化时也会同步新的IP地址到域名服务器程序,这样
我们只需使⽤域名就可以随时随地去访问家⾥的设备了。
为了安全起见,路由器的防⽕墙策略默认是禁⽌从外⽹主动访问内⽹的设备的,我们需要将被访问的设备上的服务对应的端⼝开放出来。
归纳起来其实就两步:1)DDNS;2)开放端⼝。
下⾯我们就来实际操作⼀下吧
⼀、配置IPv6 DDNS
以下是两种DDNS⽅法,任选其⼀即可
1.使⽤每步DDNS
⾸先去这个⽹站注册⼀个域名,如:,并且复制出注册时设置的登陆密码备⽤。
下载这个脚本,将第35⾏中和123456改为你⾃⼰申请的域名和登陆密码。
将脚本使⽤WinSCP等⼯具上传⾄需要做域名解析的设备中,此处以我的OpenWrt为例
SSH登陆设备
创建⽬录
mkdir -p /usr/share/meibu
将脚本上传⾄此⽬录(/usr/share/meibu)
赋予脚本执⾏权限
chmod +x /usr/share/meibu/meibu.sh
执⾏脚本
/usr/share/meibu/meibu.sh
查看⽂件内容
ll /usr/share/meibu
cat /usr/share/meibu/
查看域名解析到的地址是否和中的匹配
nslookup 8.8.8.8
如果两个地址⼀致则表明解析成功
添加定时任务
crontab -e
添加以下内容
* * * * * /bin/sh /usr/share/meibu/meibu.sh
这样每分钟就会查询⼀次IP地址,有变化时就将新的IP地址绑定到域名上
2.使⽤dynv6 DDNS
去这个⽹站注册⼀下,使⽤邮箱确认(注:邮箱链接确认可能需要梯⼦)后登陆
到这⼉创建⼀个域名
创建好后切换到instructions标签,如下图,复制域名和token备⽤
下载这个脚本⽂件
SSH登陆设备
创建⽬录
mkdir -p /usr/share/dynv6
上传脚本⾄/usr/share/dynv6⽬录中
赋予脚本执⾏权限
chmod +x /usr/share/dynv6/dynv6.sh
输⼊以下命令进⾏解析(注意将红字部分替换为⾃⼰的token和域名)
token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /bin/sh /usr/share/dynv6/dynv6.sh
查看域名解析到的地址
nslookup 8.8.8.8
cat /usr/share/dynv6/.6
两个地址⼀致则域名解析成功
添加定时任务
crontab -e
添加以下内容
* * * * * token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /bin/sh /usr/share/dynv6/dynv6.sh
⼆、开放外⽹访问端⼝
防⽕墙的设置都是在主路由上进⾏的,这⾥分别以主路由是Padavan和OpenWrt开放8088端⼝为例。
1.Padavan开启IPv6外⽹访问端⼝
(1)开启路由器⾃⾝端⼝
ip6tables -A INPUT -p tcp --dport 8088 -j ACCEPT
ip6tables -A OUTPUT -p tcp --sport 8088 -j ACCEPT
(2)开启局域⽹其他设备端⼝
ip6tables -A FORWARD -p tcp --dport 8088 -j ACCEPT
(3)开机⾃动开放端⼝
在“⾼级设置”->“⾃定义设置”->“脚本”->“在防⽕墙规则启动后执⾏:”最后添加以下内容
# 开启路由器⾃⾝端⼝
ip6tables -A INPUT -p tcp --dport 8088 -j ACCEPT
ip6tables -A OUTPUT -p tcp --sport 8088 -j ACCEPT
# 开启局域⽹其他设备端⼝
ip6tables -A FORWARD -p tcp --dport 8088 -j ACCEPT
点击最下⾯的“应⽤本页⾯设置”
2.OpenWrt开启IPv6外⽹访问端⼝
(1)开启路由器⾃⾝端⼝
ip6tables -I INPUT -p tcp --dport 8088 -j ACCEPT
ip6tables -I OUTPUT -p tcp --sport 8088 -j ACCEPT
(2)开启局域⽹其他设备端⼝
ip6tables -A zone_wan_forward -p tcp -m tcp --dport 8088 -m comment --comment Allow-8088 -j zone_lan_dest_ACCEPT
或者
ip6tables -I FORWARD -p tcp --dport 8088 -j ACCEPT
(3)开机⾃动开放端⼝
vim /etc/
在exit 0上⾯添加
# 开启路由器⾃⾝端⼝
ip6tables -I INPUT -p tcp --dport 8088 -j ACCEPT
ip6tables -I OUTPUT -p tcp --sport 8088 -j ACCEPT
# 开启局域⽹其他设备端⼝
ip6tables -I FORWARD -p tcp --dport 8088 -j ACCEPT
保存退出
附:使⽤socat转发内⽹IPv4服务
如果不是访问局域⽹NAS这类对传输速度要求特别⾼的设备,可以在主路由上使⽤socat来进⾏转发,这样就只需要在主路由上配置⼀次
DDNS,然后想访问局域⽹哪个设备只需配置socat转发并开启主路由⾃⾝的外⽹访问端⼝即可,如外⽹访问主路由的IPv6 8088端⼝时转发
⾄内⽹设备的192.168.2.110:80这个服务,只需执⾏以下命令即可:
nohup socat TCP6-LISTEN:8088,reuseaddr,fork TCP4:192.168.2.110:80 > /dev/null 2>&1 &
开机⾃动执⾏转发
Padavan固件:找到“⾼级设置”->“⾃定义设置”->“脚本”->“在路由器启动后执⾏:”,添加以下命令
nohup socat TCP6-LISTEN:8088,reuseaddr,fork TCP4:192.168.2.110:80 > /dev/null 2>&1 &
点击最下⾯的“应⽤本页⾯设置”
OpenWrt固件:将上⾯的命令添加到/etc/⽂件(exit 0上⾯)中,保存退出。
发布评论