目前使用三大运营商宽带服务都会下发公网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. JDBC相关配置和操作

    获取数据库连接的几种方式 ps.数据库URL : String url = "jdbc:mysql://localhost:3306/dailytext?useSSL=false&s ...

  2. vue中的nextTick

    ​ 今天在浏览elementUI官网时,又一次看到了nextTick,其实nextTIck我已经不是第一次看到了,但之前都没怎么弄懂,这次决定好好研究一番-- 异步说明 vue是异步执行DOM更新的. ...

  3. CSS&HTML标签

    内容索引: 1. HTML标签:表单标签 2. CSS HTML标签:表单标签 * 表单: * 概念:用于采集用户输入的数据的.用于和服务器进行交互. * form:用于定义表单的.可以定义一个范围, ...

  4. 关于MDI多文档程序的一些思考

    MDI程序的框架 客户窗口是一个预定义的窗口类(MDICLIENT),它是框架窗口的子窗口同时也是各个子文档窗口的父窗口.框架窗口和各个子文档窗口都是自定义的窗口类. MDI程序中的一些要点 窗口中的 ...

  5. .NET之API版本控制

    1. 优点 有助于保护原有系统,不受影响,并及时修改问题 可以实现用户的私人定制(比如是付费接口) 快速迭代 2. API版本控制 在URL中追加版本或者作为查询字符串参数 通过自动以标头和通过接受标 ...

  6. python模块导入原理

    转自:http://blog.csdn.net/u012422440/article/details/41791433 今日在自学Python,借此机会,正好重新开始写博文,既可以巩固python的知 ...

  7. FHD 4K 8K分辨率

    4K(2160P,即4096×2160的像素分辨率)和8K(4320P,即7,680 × 4,320的像素分辨率)属于UHDTV. FHD是FULL HD(Full High Definition)的 ...

  8. (五)Jira Api对接:修改任务状态

    项目迭代结束后我们需要把sprint下面的story.task任务状态修改到结束状态,如果手动修改会花费不少时间,本文就介绍如何通过jira api自动修改任务状态,提高工作效率. 一.查看任务工作流 ...

  9. [刷题] PTA 03-树3 Tree Traversals Again

    用栈实现树遍历 1 #include<stdio.h> 2 #include<string.h> 3 #define MAXSIZE 30 4 5 int Pre[MAXSIZ ...

  10. Linux 系统定时任务:crontab,anacron

    Linux 系统定时任务:crontab,anacron 一.Cron 服务 1. 启动服务 service cron start 2. 关闭服务 service cron stop 3. 重启服务 ...