为服务器配置ipv6和DDNS
随着ipv6的普及,我们可以利用公网ipv6使得我们可以远程访问家中的设备。这篇文章分享一下如何让家中的服务器可以从外界通过ipv6访问
ipv6配置
现在三大运营商都支持ipv6,但是如果家中的宽带运营商是其他二道贩子的话...情况就比较麻烦了。如果确认运营商不支持ipv6,那么没有什么办法,没有运营商支持无法配置ipv6,不需要继续阅读下面的内容了。
若运营商支持ipv6,那么通常将服务器的网口直接连接光猫,服务器就可以通过ipv6上网了,因为较新的光猫默认开启ipv6,完全不需要额外配置。如果不行的话,可能需要访问光猫的后台,然后上网搜索自己家运营商光猫的超级密码,登录光猫,开启ipv6,开启SLAAC等,不同光猫的设置可能不同,具体的光猫设置ipv6的方法可以带着型号或运营商进行百度。
若插上网线之后,观察到服务器有了公网ipv6地址(并非fe80开头的本地链路地址),就说明ipv6已经配置成功了。
若连接光猫有ipv6,但是连接路由器没有,但家中出于某种原因需要让服务器连接路由器,可以登录路由器后台,将路由器修改为"AP模式",应该可以解决问题。
若服务器为windows,windows会默认开启一项扩展,为自己分配临时ipv6地址。临时ipv6地址用于对外发起连接时使用,并且会定时更换临时ipv6地址,从而防止自身被外界追踪。但是作为服务器,我们需要让它着稳定的ipv6地址,以利于从外界访问,所以需要关闭这一项功能。
只需要使用管理员权限启动命令行,输入以下命令即可禁止windows生成临时ipv6地址。
netsh interface ipv6 set privacy state=disable
如果想改回来的话,将命令中的disable改为enable,再执行一遍即可
DDNS
家用宽带的ipv6地址会定期更改,具体来说,每隔大约一到两周我们的ip地址就会变一次,所以我们无法长时间使用同一个ip。那么当ip变化时,我们就无法用原来的ip地址访问服务器了,怎么办呢?
我们可以配置域名,使域名指向我们服务器的ip,这样一来我们可以使用域名访问服务器。而当服务器ip改变时,让服务器自动更改域名对应的ip,使得域名时刻指向最新的服务器ip,这就是动态域名服务(DDNS)
我选择使用免费的dynv6.com提供的DDNS服务,注册一个账号,即可为自己创建一个二级域名,在下文中我们假设创建的域名为your-domain.dynv6.net。在域名的设置界面选择Instructions,然后在下面的界面找password,会发现一长串随机字符串,将其记下来,接下来要用。
有了域名之后,要在服务器中运行一个程序,程序将持续运行,并在检测到ip变化时向dynv6报告最新的ip。
我选择godns处理这一功能。
按照godns主页的介绍对配置文件进行编辑,配置文件要修改的部分如下
"login_token": "<之前记的密码>",
"domains": [
{
"domain_name": "dynv6.net",
"sub_domains": ["your-domain"]
}
],
"ipv6_urls": ["https://ipify.org"],
"ip_interface": "eth0",
"ip_type": "IPv6"
注意,"sub_domains"中是字段只包括二级域名的名称,例如域名全称为your-domain.dynv6.net,则只需要填入your-domain即可
"ip_interface"表示从哪个网卡获取ip地址,对于windows,可以在命令行中输入ipconfig找到用于上网的网口名称,然后将其填写进去。对于linux,则使用ifconfig。
接下来,按照godns的说明,将程序打包成服务,使其自动运行。对于windows,我们使用NSSM配置服务,对于linux则使用systemd
当一切配置完毕,应当可以在dynv6网站看到域名的Records列表中出现了AAAA类记录。这就说明godns成功报告了ipv6地址。
接下来,输入命令 nslookup your-domain.dynv6.net 若查询到了服务器的ipv6地址,则大功告成。若没有找到对应的ip,可以等5分钟再试一次。
现在,我们可以使用域名代替ip,访问服务器,而且当家中ip地址改变时,会自动更新域名对应的ip,使得ip变化不会导致我们与服务器失联。
浙公网安备 33010602011771号