ddns-go部署在linux虚拟机

ddns-go部署ubuntu1804

1.二进制部署

1.虚拟机部署

1.下载linux的x86二进制包
wget https://github.com/jeessy2/ddns-go/releases/download/v5.6.3/ddns-go_5.6.3_linux_x86_64.tar.gz

2.解压
tar -xzf ddns-go_5.6.3_linux_x86_64.tar.gz

3.拷贝执行文件到PATH下,实现全局命令,也可以创建软连接
cp ddns-go /usr/local/bin/  #或者ln -s ddns-go /usr/local/bin/

4.创建systemd文件,设置开机启动,方便管理,也可以一直接在rc.local中添加开机启动项。
vim /lib/systemd/system/ddns-go.service
[Unit]
Description=ddns-go service
After=network.target

[Service] 
Type=simple
ExecStart=/usr/local/bin/ddns-go start
ExecStop=/usr/local/bin/ddns-go stop

[Install]
WantedBy=multi-user.target

5.让systemd文件生效
systemctl daemon-reload

6.启动ddns-go
systemctl start ddns-go

7.设置开机自启
systemctl enable ddns-go

8.查看运行状态
systemctl status ddns-go.service

9.通过宿主机访问浏览器页面进行配置(如果是gui的安装可以直接浏览器访问127.0.0.1:9876)

2.宿主机配置通过宿主机进行管理虚拟机ip:port

image-20231022075211534

image-20231022080231585

image-20231022075257978

4.一键脚本

#**********************************************************************************************
#Author:        wwzzone
#QQ:            896517050
#Date:          2023-10-22
#FileName:      b.sh
#URL:                       
#Description:   The test script
#Copyright (C):2023 All rights reserved
#*********************************************************************************************

wget https://github.com/jeessy2/ddns-go/releases/download/v5.6.3/ddns-go_5.6.3_linux_x86_64.tar.gz
tar -xzf ddns-go_5.6.3_linux_x86_64.tar.gz
cp ddns-go /usr/local/bin/

cat > /lib/systemd/system/ddns-go.service <<eof
[Unit]
Description=ddns-go service
After=network.target

[Service] 
Type=simple
ExecStart=/usr/local/bin/ddns-go start
ExecStop=/usr/local/bin/ddns-go stop

[Install]
WantedBy=multi-user.target
eof

systemctl daemon-reload && systemctl enable --now ddns-go

echo "ddns-go deployed successfully!"

2.源码编译

1.下载源码包,这是最新稳定版,因为会变更,可以直接访问ddns-go找到最新版源码下载。

wget https://github.com/jeessy2/ddns-go/archive/refs/tags/v5.6.6.tar.gz

2.安装go和git,这里可以不用安装git,因为git的目的就是获取版本,不编译版本也是可以使用的,因此把版本变量可以注释掉就行。

1.安装编译依赖包
[root@centos7:~]#yum install git go 
#git可以不用安装,不安装的时候就需要注释掉版本变量,但是go必须安装。

2.解压源码包并进入到ddns-go目录
[root@centos7:~]#tar -xf v5.6.6.tar.gz
[root@centos7:~]cd ddns-go-5.6.6

3.查看Makefile文件
[root@centos7:~/ddns-go-5.6.6]#
cat Makefile 
.PHONY: build clean test test-race   #Makefile 中以 PHONY 关键字定义的部分是伪目标,不是真正的文件名,只是标记了一些任务名称,执行这些任务时并不会在文件系统中创建对应的文件,而是执行 Makefile 中对应的命令,定义make后面跟的命令,根据命令执行相应的命令,例如,build、clean、test、test-race 这些目标是用于构建、清理和测试代码的任务名称。执行 make build 将运行 build 目标下的命令,而 make clean 将执行清理命令。这些任务名称定义了要执行的一系列命令

# 如果找不到 tag 则使用 HEAD commit
#VERSION=$(shell git describe --tags `git rev-list --tags --max-count=1` 2>/dev/null || git rev-parse --short HEAD)    
#编译安装用不到就注释了。
BUILD_TIME=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
BIN=ddns-go
DIR_SRC=.
DOCKER_ENV=DOCKER_BUILDKIT=1
DOCKER=$(DOCKER_ENV) docker

GO_ENV=CGO_ENABLED=0
GO_FLAGS=-ldflags="-X main.version=$(VERSION) -X 'main.buildTime=$(BUILD_TIME)' -extldflags -static -s -w" -trimpath
GO=$(GO_ENV) $(shell which go)
GOROOT=$(shell `which go` env GOROOT)
GOPATH=$(shell `which go` env GOPATH)

build: $(DIR_SRC)/main.go
	@$(GO) build $(GO_FLAGS) -o $(BIN) $(DIR_SRC)

build_docker_image:
	@$(DOCKER) build -f ./Dockerfile -t ddns-go:$(VERSION) .

test:
	@$(GO) test ./...

test-race:
	@$(GO) test -race ./...

# clean all build result
clean:
	@$(GO) clean ./...
	@rm -f $(BIN)
	@rm -rf ./dist/*
#@符号的作用是把命令不显示出来,因为默认是shell命令会输出到屏幕上。

4.通过make install编译安装,注意需要能访问github才行,否则就编译失败。
[root@centos7:~/ddns-go-5.6.6]#
make build
go: downloading github.com/kardianos/service v1.2.2
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading github.com/wagslane/go-password-validator v0.3.0


5.复制文件到/usr/local/bin/,或者直接移动到次目录下
[root@centos7:~/ddns-go-5.6.6]#
mv ddns-go /usr/local/bin/

6.启动并运行
[root@centos7:~]#
ddns-go 
2023/11/24 17:21:25 可使用 sudo ./ddns-go -s install 安装服务运行
2023/11/24 17:21:25 监听 :9876 ...
请手动打开浏览器并访问 http://127.0.0.1:9876 进行配置
#注意此时是前台运行的,可以通过设置为后台运行,开机自启

7.编写service文件
[root@centos7:~]#cat > /lib/systemd/system/ddns-go.service <<eof
[Unit]
Description=ddns-go service
After=network.target

[Service] 
Type=simple
ExecStart=/usr/local/bin/ddns-go start
ExecStop=/usr/local/bin/ddns-go stop

[Install]
WantedBy=multi-user.target
eof

8.设置开机重启并查看状态
[root@centos7:~]#systemctl daemon-reload && systemctl enable --now ddns-go

[root@centos7:~]#
systemctl status ddns-go
● ddns-go.service - ddns-go service
   Loaded: loaded (/usr/lib/systemd/system/ddns-go.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-11-24 17:25:34 CST; 32s ago
 Main PID: 13062 (ddns-go)
   CGroup: /system.slice/ddns-go.service
           └─13062 /usr/local/bin/ddns-go start

[root@centos7:~]#
ss -ntlp |grep ddns-go
LISTEN     0      128       [::]:9876                  [::]:*                   users:(("ddns-go",pid=13062,fd=4))

9.可以在宿主机直接访问虚拟机的IP+端口号进行配置
  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DDNS动态域名系统)是一种通过更新 DNS 记录来动态地映射一个变化的 IP 地址到一个域名的方法。在 Linux 中,可以使用 Go 语言编写的 DDNS 客户端来实现自动更新域名解析记录。以下是使用 ddns-go 在 Linux 中实现 DDNS 的步骤: 1. 下载 ddns-go 可以从 ddns-go 的 Github 仓库中下载二进制文件或者源代码。如果你想自己编译,可以执行以下命令: ``` git clone https://github.com/ddns-go/ddns-go.git cd ddns-go make ``` 2. 配置 ddns-go 在执行 ddns-go 之前,你需要先配置好 ddns-go。创建一个名为 `config.yaml` 的文件,并在其中添加以下内容: ``` provider: <provider-name> domain: <domain-name> username: <username> password: <password> ``` 其中: - `<provider-name>` 是你的 DNS 服务提供商的名称(例如 Cloudflare、Godaddy 等)。 - `<domain-name>` 是你需要绑定的域名。 - `<username>` 和 `<password>` 是你的 DNS 服务提供商的用户名和密码。 你需要将这些值替换为你自己的信息。 3. 运行 ddns-go 当你完成配置后,即可运行 ddns-go。在终端中执行以下命令: ``` ./ddns-go -c config.yaml ``` 这将启动 ddns-go 并开始更新你的域名解析记录。你可以将这个命令添加到定时任务中,以便自动更新域名解析记录。 总结: 使用 ddns-go 在 Linux 中实现 DDNS 非常简单。你只需要下载、配置和运行 ddns-go,就可以自动更新你的域名解析记录。这是一种非常方便的方法,可以帮助你在 IP 地址变化时保持域名解析的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值