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 serviceAfter=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 <<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=1DOCKER=$(DOCKER_ENV)dockerGO_ENV=CGO_ENABLED=0GO_FLAGS=-ldflags="-X main.version=$(VERSION) -X 'main.buildTime=$(BUILD_TIME)' -extldflags -static -s -w"-trimpathGO=$(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 -sinstall 安装服务运行
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 serviceAfter=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 0128[::]:9876 [::]:* users:(("ddns-go",pid=13062,fd=4))9.可以在宿主机直接访问虚拟机的IP+端口号进行配置
本文转载自: https://blog.csdn.net/aa896517050/article/details/134605210
版权归原作者 wwzroom 所有, 如有侵权,请联系我们删除。
版权归原作者 wwzroom 所有, 如有侵权,请联系我们删除。