目前使用三大运营商宽带服务都会下发公网IPv6地址,这样我们想要在外网访问家里的路由、NAS等设备就可以直接通过IPv6地址来访问了。但是每次重新拨号后IPv6地址都会改变,而且IPv6的地址很长,这样就引出了动态域名服务,即DDNS。

其实DDNS的原理就是将本地获取到的公网IP地址告诉域名服务商,并且在IP地址发生变化时也会同步新的IP地址到域名服务器程序,这样我们只需使用域名就可以随时随地去访问家里的设备了。

为了安全起见,路由器的防火墙策略默认是禁止从外网主动访问内网的设备的,我们需要将被访问的设备上的服务对应的端口开放出来。

归纳起来其实就两步:1)DDNS;2)开放端口。

下面我们就来实际操作一下吧

一、配置IPv6 DDNS

以下是两种DDNS方法,任选其一即可

1.使用每步DDNS

首先去免费动态域名解析服务器IPV6内网穿透软件监控源码下载-青岛每步 (meibu.com)这个网站注册一个域名,如:xxxxxx.noip.cn,并且复制出注册时设置的登陆密码备用。

下载meibu.sh这个脚本,将第35行中xxxxxx.noip.cn和123456改为你自己申请的域名和登陆密码。

将meibu.sh脚本使用WinSCP等工具上传至需要做域名解析的设备中,此处以我的OpenWrt为例

SSH登陆设备

创建目录

mkdir -p /usr/share/meibu

将脚本上传至此目录(/usr/share/meibu)

赋予脚本执行权限

chmod +x /usr/share/meibu/meibu.sh

执行脚本

/usr/share/meibu/meibu.sh

查看ip.txt文件内容

ll /usr/share/meibu
cat /usr/share/meibu/ip.txt

查看域名解析到的地址是否和ip.txt中的匹配

nslookup xxxxxx.noip.cn 8.8.8.8

如果两个地址一致则表明解析成功

添加定时任务

crontab -e

添加以下内容

* * * * * /bin/sh /usr/share/meibu/meibu.sh

这样每分钟就会查询一次IP地址,有变化时就将新的IP地址绑定到域名上

2.使用dynv6 DDNS

Free dynamic DNS for IPv6 (dynv6.com)这个网站注册一下,使用邮箱确认(注:邮箱链接确认可能需要梯子)后登陆

dynv6这儿创建一个域名

创建好后切换到instructions标签,如下图,复制域名和token备用

下载dynv6.sh这个脚本文件

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 xxxxxx.v6.navy

查看域名解析到的地址

nslookup xxxxxx.v6.navy 8.8.8.8
cat /usr/share/dynv6/.dynv6.addr6

两个地址一致则域名解析成功

添加定时任务

crontab -e

添加以下内容

* * * * * token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /bin/sh /usr/share/dynv6/dynv6.sh xxxxxx.v6.navy

二、开放外网访问端口

防火墙的设置都是在主路由上进行的,这里分别以主路由是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 -I zone_wan_forward -p tcp -m tcp --dport 8088 -m comment --comment Allow-8088 -j zone_lan_dest_ACCEPT

(3)开机自动开放端口

vim /etc/rc.local

在exit 0上面添加

# 开启路由器自身端口
ip6tables -I INPUT -p tcp --dport 8088 -j ACCEPT
ip6tables -I OUTPUT -p tcp --sport 8088 -j ACCEPT
# 开启局域网其他设备端口
ip6tables -I zone_wan_forward -p tcp -m tcp --dport 8088 -m comment --comment Allow-8088 -j zone_lan_dest_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/rc.local文件(exit 0上面)中,保存退出。

配置IPv6公网地址DDNS并开放外网访问端口的更多相关文章

  1. windows server 2012 r2 8080外网访问端口发布设置

    windowser server 2012 r2 8080外网访问端口发布设置,在配置服务器时候,8080端口作为默认的web访问的端口,那么如何配置呢如下步骤: 工具/原料 windowser se ...

  2. 配置Internal Load balancer中VM的外网访问

    当在Azure中部署SQL VM时,处于安全考虑,不会配置VM的Public IP,会禁止外网的进出站访问,只允许从内部VNET,或者特定的内部IP访问.特别是当使用Azure Internal Lo ...

  3. 使用Xshell配置外网访问端口

  4. 腾讯云linux系统部署项目无法通过外网访问

    最近尝试使用了一下腾讯去的linux系统服务器,但是却遇到各种问题,下面记录的问题是项目部署完成后却无法通过外网访问. 服务器:腾讯云 系统 :CentOS 8.0 64位 处理思路:通过度娘百般摸索 ...

  5. Apache2.4.x版wampserver本地php服务器如何让外网访问及启用.htaccess

    http://www.jb51.net/article/61193.htm ———————————————————————————————————————————— 这篇文章主要介绍了Apache2. ...

  6. 设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务

    设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-02. 参考文章: IPv6"内网"设备 ...

  7. 外网配置花生壳动态域名解析实现外网访问本地iis及vs实时调试

    描述:假如已连外网,具备一台路由器的情况下在路由器设置页面配置花生壳动态域名解析,使得外网可以访问到本地iis 托管的web服务,模拟真实环境调试应用程序. 网络运营商ip的动态分配,通常网络提供商给 ...

  8. 配置 redis 外网访问

    redis采用的安全策略,默认会只准许本地访问 1 2 3 4 5 6 7 8 9 10 通过简单配置,完成允许外网访问 [root@cache01 conf]# egrep "(^bind ...

  9. 配置多层NAT和端口映射实现外网访问内网

    配置多层NAT和端口映射实现外网访问内网 背景和原理 通过配置NAT可以实现内网中不能直接访问外网的主机通过NAT代理访问内网,配置方法这里不再赘述(前文有介绍).本文以两层的NAT代理做模拟,通过端 ...

随机推荐

  1. IOS小组件(6):小组件实现时钟按秒刷新

    引言   上一节中我们了解了IOS小组件的刷新机制,发现根本没法实现按秒刷新,但是看别的App里面有做到,以为用了什么黑科技,原来是因为系统提供了一个额外的机制实现时间的动态更新,不用走小组件的刷新机 ...

  2. .NET平台系列7 .NET Core 体系结构详解

    系列目录     [已更新最新开发文章,点击查看详细]   .NET Core 是基于.NET Framework 为基础,借鉴了其优秀的思想与强大的功能,经过重新设计与构建,实现了.NET Fram ...

  3. 如何通过Zoho Books门户管理供应商

    作为一个企业,不管规模大小,都有自己的供应商来为业务提供相关的服务和配件.随着采购的频率和供应商数量的增加,采购的管理和付款的跟踪难度就会增加,进而影响到企业和供应商之间的关系. 为了解决这个问题,Z ...

  4. C#·JSON的处理和解析

    阅文时长 | 0.34分钟 字数统计 | 309.6字符 主要内容 | 1.引言&背景 2.声明与参考资料 『C#·JSON的处理和解析』 编写人 | SCscHero 编写时间 | 2021 ...

  5. Spring的Xml和JavaConfig 扩展你选哪一个?

    引言 上一篇文章我们有怎么介绍到如何通过XML的形式来定义Spring的扩展<Spring面试高频题如何:自定义XML schema 扩展>,好多人都在吐槽现在都什么年代了,xml还有人再 ...

  6. .NET平台系列10 .NET统一平台愿景

    系列目录     [已更新最新开发文章,点击查看详细] 2019年,微软分享了[统一的.NET堆栈和生态系统的愿景].给开发者带来的价值是,将能够使用一组API,语言和工具来针对广泛的应用程序类型,包 ...

  7. (Dubbo架构)基于MDC+Filter的跨应用分布式日志追踪解决方案

    在单体应用中,日志追踪通常的解决方案是给日志添加 tranID(追踪ID),生成规则因系统而异,大致效果如下: 查询时只要使用 grep 命令进行追踪id筛选即可查到此次调用链中所有日志,但是在 du ...

  8. 进入单用户模式修改root密码

    进入单用户模式修改root密码 1.进入引导菜单界面2.按e进入grub,在linux或linux16那行结尾加上 rw init=/bin/bash,按Ctrl+x或F103.进入bash-4.3# ...

  9. 1.4 重置root用户密码

    图1-45  系统的欢迎界面 1.4 重置root用户密码 平日里让运维人员头疼的事情已经很多了,因此偶尔把Linux系统的密码忘记了并不用慌,只需简单几步就可以完成密码的重置工作.但是,如果您是第一 ...

  10. python基础之内建模块base64

    一.Base64概念 什么是Base64? 按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式.(The Base6 ...