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
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 <2.源码编译
1.下载源码包,这是最新稳定版,因为会变更,可以直接访问ddns-go找到最新版源码下载。
wget https://github.com/jeessy2/ddns-go/archive/refs/tags/v5.6.6.tar.gz2.安装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 <