just do it and waiting

omv搭建一

2021-01-06


omv配置网络

在面板上设置了静态网络发现无法上网,因此这里直接编辑netplan的配置文件实现静态ipv4.

编辑文件/etc/netplan/10-openmediavault-eno1.yaml

network:
  ethernets:
    eno1:
      match:
        macaddress: xx:xx:xx:xx:xx:xx
      dhcp4: false
      dhcp6: false
      addresses: [192.168.2.222/24]
      gateway4: 192.168.2.1
      nameservers:
        addresses: [114.114.114.114, 8.8.8.8]
      link-local: []

最后执行

netplan apply

上面编辑的配置文件中相当于没有启用ipv6,如果要启用ipv6,可以把 dhcp6: false 改为dhcp6: true .

docker安装

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash

ipv6 ddns

首先要有一个域名,可以使用常见的阿里云域名cloudflare 或者是godaddy。由于我之前已经有了一个godaddy的域名,我这里直接用godaddy。关于阿里云域名的教程在网上很多,可以更容易解决。

关于申请域名部分比较简单,这里不赘述。

增加AAAA记录

打开管理域名页面.

product

manage

add

AAAA

创建API Key

进入管理API页面,创建api key

create_api

ote

Next后得到 Key和Secret.

created

创建脚本

将上面的到的Key和Secret填入下方

#!/bin/bash

#这里是你购买的域名
mydomain="domain.xyz"
#这里是dns配置中的名称
myhostname="router"
#这里key和Secret之间注意有个冒号
gdapikey="你的key:你的Secret"
logdest="local7.info"
#另外注意,我这里的ipv6地址,所以使用的是AAAA类型解析,如果是ipv4那么下面所有的AAAA需改为A

setNewIp(){
    #这里的地址也是为ipv6服务,ipv4地址为https://api.ipify.org
    myip=`curl -s "https://api6.ipify.org"`
    dnsdata=`curl -s -X GET -H "Authorization: sso-key ${gdapikey}" "https://api.godaddy.com/v1/domains/${mydomain}/records/AAAA/${myhostname}"`#这里最后的2-9是针对性取得ipv6的字符, dnsdata中的返回字符串是一个json格式,需对齐解析。
    gdip=`echo $dnsdata | cut -d ',' -f 1 | tr -d '"' | cut -d ":" -f 2-9`
    echo "`date '+%Y-%m-%d %H:%M:%S'` - Current External IP is $myip, GoDaddy DNS IP is $gdip"

    if [ "$gdip" != "$myip" -a "$myip" != "" ]; then
        echo "IP has changed!! Updating on GoDaddy"
        curl -s -X PUT "https://api.godaddy.com/v1/domains/${mydomain}/records/AAAA/${myhostname}" -H "Authorization: sso-key ${gdapikey}" -H "Content-Type: application/json" -d "[{\"data\": \"${myip}\"}]"
        logger -p $logdest "Changed IP on ${hostname}.${mydomain} from ${gdip} to ${myip}"
    fi
}
while(true):
do
    setNewIp
    # 每15分钟更新一下IP
    sleep 900
done

开机执行脚本

将上面的脚本命名为ddnsipv6.sh放如路径/etc/scripts中,利用systemd开机启动脚本,在/etc/systemd/system中创建服务renewip.service

[Unit]
Description=renew ipv6 (ddns)
After=network.target

[Service]
Type=oneshot
ExecStart=/bin/bash /etc/scripts

[Install]
WantedBy=multi-user.target