ddns-go一个用Go语言编写动态DNS客户端可以动态IP地址映射固定域名,从而实现内网穿透
在Ubuntu上安装配置ddns-go步骤如下

目录

安装Go语言环境

获取ddns-go源码

编译和安装ddns-go

配置ddns-go

运行ddns-go

设置ddns-go为开机自启动(可选)


安装Go语言环境

首先,在Ubuntu上安装Go语言环境可以通过以下命令安装:

sudo apt update
sudo apt install golang

安装完成后,检查Go是否正确安装:

go version

获取ddnsgo源码

接下来,从GitHub克隆ddns-go源代码

git clone https://github.com/jeessy2/ddns-go.git

编译和安装ddnsgo

进入ddnsgo目录然后使用go build命令编译项目

cd ddns-go
go build

编译完成后,会在当前目录看到一个名为ddns-go可执行文件

配置ddns-go

ddns-go目录下,可以找到一个名为config.yaml配置文件使用文本编辑打开它,如:

nano config.yaml

按照你的需求修改配置文件例如设置域名提供商、用户名密码域名等。保存关闭文件

腾讯为例配置文件如下

provider: dnspod
id: your_dnspod_api_id
token: your_dnspod_api_token
domain: example.com
sub_domain: subdomain
ip_type: ipv6
interval: 300

请将以下内容替换为你的实际信息

关于interval参数,它表示客户端更新IP地址时间间隔(以秒为单位)。在这个示例中,ddns-go将每5分钟(300秒)检查一次IP地址更新DNS记录

获取腾讯云DNS API ID和Token,请登录腾讯云DNS控制台,然后进入API密钥管理页面创建一个新的API密钥确保为该密钥分配适当的权限以便能够更新DNS记录

保存config.yaml文件后,你可以按照之前的步骤运行ddns-go,它将使用腾讯云域名配置更新你的动态IP地址

运行ddns-go

运行ddns-go可执行文件

./ddns-go

ddns-go将根据你的配置文件设置开始运行,将你的动态IP地址映射指定域名

设置ddns-go为开机自启动(可选)

如果你希望ddns-go系统启动自动运行,可以创建一个systemd服务文件。首先,将ddns-go可执行文件复制到/usr/local/bin目录下:

sudo cp ddns-go /usr/local/bin/

然后,创建一个名为ddns-go.servicesystemd服务文件:

sudo nano /etc/systemd/system/ddns-go.service

将以下内容粘贴到该文件中,然后保存关闭

[Unit]
Description=ddns-go
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/path/to/ddns-go
ExecStart=/usr/local/bin/ddns-go
Restart=on-failure

[Install]
WantedBy=multi-user.target

注意:请将WorkingDirectory设置为你的ddns-go目录。

接下来启用并启动ddns-go服务

sudo systemctl enable ddns-go
sudo systemctl start ddns-go

现在,ddns-go将在系统启动时自动运行

以上步骤编辑完整脚本如下

以下是一个名为install_ddns_go.shbash脚本通过入参数来自动完成ddns-go的安装和配置过程

#!/bin/bash

set -e

if [ "$#" -ne 4 ]; then
    echo "Usage: $0 &lt;dnspod_api_id> <dnspod_api_token> <domain> <sub_domain>"
    exit 1
fi

DNSPOD_API_ID="$1"
DNSPOD_API_TOKEN="$2"
DOMAIN="$3"
SUB_DOMAIN="$4"

# 安装依赖
sudo apt update
sudo apt install -y golang git

# 获取ddns-go源码
git clone https://github.com/jeessy2/ddns-go.git

# 编译ddns-go
cd ddns-go
go build

# 配置ddns-go
cat > config.yaml << EOF
provider: dnspod
id: $DNSPOD_API_ID
token: $DNSPOD_API_TOKEN
domain: $DOMAIN
sub_domain: $SUB_DOMAIN
ip_type: ipv4
interval: 300
EOF

# 复制ddns-go可执行文件到/usr/local/bin
sudo cp ddns-go /usr/local/bin/

# 创建ddns-go.service systemd服务文件
sudo bash -c "cat > /etc/systemd/system/ddns-go.service << EOL
[Unit]
Description=ddns-go
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=$(pwd)
ExecStart=/usr/local/bin/ddns-go
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOL"

# 启用并启动ddns-go服务
sudo systemctl enable ddns-go
sudo systemctl start ddns-go

echo "ddns-go已成功安装并启动。"

运行脚本,请将其保存名为install_ddns_go.sh的文件,然后在终端运行以下命令

chmod +x install_ddns_go.sh
./install_ddns_go.sh <dnspod_api_id> <dnspod_api_token> <domain> <sub_domain>

请将<dnspod_api_id><dnspod_api_token><domain><sub_domain>替换为你的实际信息。脚本将自动完成ddns-go的安装、配置和启动过程

原文地址:https://blog.csdn.net/penne6074/article/details/132688574

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_48496.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注