配置IPv6公网地址DDNS并开放外网访问端口
目前使用三大运营商宽带服务都会下发公网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并开放外网访问端口的更多相关文章
- windows server 2012 r2 8080外网访问端口发布设置
windowser server 2012 r2 8080外网访问端口发布设置,在配置服务器时候,8080端口作为默认的web访问的端口,那么如何配置呢如下步骤: 工具/原料 windowser se ...
- 配置Internal Load balancer中VM的外网访问
当在Azure中部署SQL VM时,处于安全考虑,不会配置VM的Public IP,会禁止外网的进出站访问,只允许从内部VNET,或者特定的内部IP访问.特别是当使用Azure Internal Lo ...
- 使用Xshell配置外网访问端口
- 腾讯云linux系统部署项目无法通过外网访问
最近尝试使用了一下腾讯去的linux系统服务器,但是却遇到各种问题,下面记录的问题是项目部署完成后却无法通过外网访问. 服务器:腾讯云 系统 :CentOS 8.0 64位 处理思路:通过度娘百般摸索 ...
- Apache2.4.x版wampserver本地php服务器如何让外网访问及启用.htaccess
http://www.jb51.net/article/61193.htm ———————————————————————————————————————————— 这篇文章主要介绍了Apache2. ...
- 设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务
设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-02. 参考文章: IPv6"内网"设备 ...
- 外网配置花生壳动态域名解析实现外网访问本地iis及vs实时调试
描述:假如已连外网,具备一台路由器的情况下在路由器设置页面配置花生壳动态域名解析,使得外网可以访问到本地iis 托管的web服务,模拟真实环境调试应用程序. 网络运营商ip的动态分配,通常网络提供商给 ...
- 配置 redis 外网访问
redis采用的安全策略,默认会只准许本地访问 1 2 3 4 5 6 7 8 9 10 通过简单配置,完成允许外网访问 [root@cache01 conf]# egrep "(^bind ...
- 配置多层NAT和端口映射实现外网访问内网
配置多层NAT和端口映射实现外网访问内网 背景和原理 通过配置NAT可以实现内网中不能直接访问外网的主机通过NAT代理访问内网,配置方法这里不再赘述(前文有介绍).本文以两层的NAT代理做模拟,通过端 ...
随机推荐
- Sublime 快捷生成HTML 插件安装
更多精彩关注公众号 1 安装 Package Control1.1 ctrl + ` 呼出控制台1.2 复制(不要带最外层的双引号,该代码仅适用于sublime text 3)"import ...
- 006-Java的访问权限控制符和包导入机制
目录 一.Java的访问权限控制符 一.访问控制符的作用 二.访问控制符的分类 二.Java的包导入机制 一.为什么要使用package? 二.package怎么用? 三.对于带有package的ja ...
- [DB] Spark SQL
概述 基于Spark,兼容Hive 集成在Spark中,不需单独安装 提供统一的数据访问方式 结构化的数据类型:JDBC.JSON.Hive.Parquet(Saprk SQL 默认数据源) 支持标准 ...
- [Web] 网络安全(SSH SSL HTTPS)
概念 SSH(Secure Shell) 一种安全通信协议 为shell提供加密通信服务 使用了非对称加密和对称加密 对称加密(Symmetric-Key Encryption):只用一个密钥来进行加 ...
- Centos7使用mail命令发送邮件
以配置outlook邮箱(微软邮箱)为例 一.配置mail邮箱账号密码 [root@bogon log]# tail -n 8 /etc/mail.rc set from=bp**@outlook.c ...
- Linux useradd 命令介绍
Linux useradd 命令介绍 作者: Alan Formy-duval 译者: LCTT Brooke Lau | 2020-01-06 22:58 使用 useradd 命令来添加用户(并且 ...
- shell基础之pxe批量部署
通过安装及配置DHCP,tftp-server,xinetd,httpd,syslinux来实现批量安装Linux系统 #!/bin/bash #检查环境 se_state=`getenforce` ...
- shell应用之习题一
1 #!/bin/bash 2 #.写一个脚本/root/bin/argsnum.sh,接受一个文件路径作 为参数:如果参数个数小于1,则提示用户"至少应该给一个 参数",并立即退 ...
- 【JDK命令行 一】手动编译Java源码与执行字节码命令合集(含外部依赖引用)
写作目标 记录常见的使用javac手动编译Java源码和java手动执行字节码的命令,一方面用于应对 Maven 和 Gradle 暂时无法使用的情况,临时生成class文件(使用自己的jar包):另 ...
- Stream中的Peek操作
1.引言 如果你试图对流操作中的流水线进行调试, 了解stream流水线每个操作之前和操作之后的中间值, 该如何去做? 首先我们看一个例子, 使用forEach将流操作的结果打印出来. 1 /** 2 ...