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+端口号进行配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/186680.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Kotlin精简】第9章 Kotlin Flow

1 前言 上一章节我们学习了Kotlin的协程【Kotlin精简】第8章 协程&#xff0c;我们知道 协程实质是对线程切换的封装&#xff0c;能更加安全实现异步代码同步化&#xff0c;本质上协程、线程都是服务于并发场景下&#xff0c;其中协程是协作式任务&#xff0c;线程是抢占式任务…

【opencv】计算机视觉:实时目标追踪

目录 前言 解析 深入探究 前言 目标追踪技术对于民生、社会的发展以及国家军事能力的壮大都具有重要的意义。它不仅仅可以应用到体育赛事当中目标的捕捉&#xff0c;还可以应用到交通上&#xff0c;比如实时监测车辆是否超速等&#xff01;对于国家的军事也具有一定的意义&a…

Python武器库开发-前端篇之Html基础语法(二十九)

前端篇之Html基础语法(二十九) HTML 元素 HTML元素指的是HTML文档中的标签和内容。标签用于定义元素的类型&#xff0c;而内容则是元素所包含的内容。HTML元素由开始标签和结束标签组成&#xff0c;也可以是自闭合标签。 例如&#xff0c;下面是一个叫做<p>的HTML元素…

laravel8安装多应用多模块(笔记三)

先安装laravel8 Laravel 安装&#xff08;笔记一&#xff09;-CSDN博客 一、进入项目根目录安装 laravel-modules composer require nwidart/laravel-modules 二、 大于laravel5需配置provider&#xff0c;自动生成配置文件 php artisan vendor:publish --provider"Nwid…

Apollo接入配置中心 -- 源码分析之如何获取配置

全文参考&#xff1a;https://mp.weixin.qq.com/s/G5BV5BIdOtB3LlxNsr4ZDQ https://blog.csdn.net/crystonesc/article/details/106630412 https://www.cnblogs.com/deepSleeping/p/14565774.html 背景&#xff1a;近期在接入行内配置中心&#xff0c;因此对配置的加载接入有了…

p12 63.删除无头结点无头指针的循环链表中所有值为x的结点 桂林电子科技大学2015年 (c语言代码实现)注释详解

本题代码如下 void delete(linklist* L, int x) {lnode* p *L, * q *L;while (p->next ! q)// 从第一个结点开始遍历链表&#xff0c;直到尾结点的前一个结点{if (p->next->data x)//判断是否等于x{lnode* r p->next;//将r指向x的位置p->next r->next;…

JoyT的科研之旅第一周——科研工具学习及论文阅读收获

CiteSpace概述 CiteSpace 是一个用于可视化和分析科学文献的工具&#xff0c;它专门针对研究者进行文献回顾和趋势分析。CiteSpace 的核心功能是创建文献引用网络&#xff0c;这些网络揭示了研究领域内各个文献之间的相互关系。使用 CiteSpace 可以为论文研究做出贡献的几种方…

Linux常用命令——bind命令

在线Linux命令查询工具 bind 显示或设置键盘按键与其相关的功能 补充说明 bind命令用于显示和设置命令行的键盘序列绑定功能。通过这一命令&#xff0c;可以提高命令行中操作效率。您可以利用bind命令了解有哪些按键组合与其功能&#xff0c;也可以自行指定要用哪些按键组合…

【Proteus仿真】【STM32单片机】智能垃圾桶设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用报警模块、LCD1602液晶模块、按键模块、人体红外传感器、HCSR04超声波、有害气体传感器、SG90舵机等。 主要功能&#xff1a; 系统运行后&…

python基础-numpy

numpy中shape (1,X) 和 &#xff08;X&#xff0c;&#xff09;的区别 参考 首先放结论&#xff1a;shape(x,)是一维数组&#xff0c;ndim1,[1,2,3,…x] ;shape(1,x)是二维&#xff1f;数组&#xff0c;ndim2,[[1,2,3,…n]] >>> import numpy as np >>> a…

常见树种(贵州省):016杜鹃、含笑、桃金娘、金丝桃、珍珠花、观光木

摘要&#xff1a;本专栏树种介绍图片来源于PPBC中国植物图像库&#xff08;下附网址&#xff09;&#xff0c;本文整理仅做交流学习使用&#xff0c;同时便于查找&#xff0c;如有侵权请联系删除。 图片网址&#xff1a;PPBC中国植物图像库——最大的植物分类图片库 一、杜鹃 …

记录华为云服务器(Linux 可视化 宝塔面板)-- 安全组篇

文章目录 前言安全组说明安全组的特性安全组的应用场景 进入安全组添加基本规则添加自定义规则如有启发&#xff0c;可点赞收藏哟~ 前言 和windows防火墙类似&#xff0c;安全组是一种虚拟防火墙&#xff0c;具备状态检测和数据包过滤功能&#xff0c;可以对进出云服务器的流量…

5种主流API网关技术选型,yyds!

API网关是微服务项目的重要组成部分&#xff0c;今天来聊聊API网关的技术选型&#xff0c;有理论&#xff0c;有实战。 不 BB&#xff0c;上文章目录&#xff1a; 1 API网关基础 1.1 什么是API网关 API网关是一个服务器&#xff0c;是系统的唯一入口。 从面向对象设计的角度…

Linux加强篇002-部署Linux系统

目录 前言 1. shell语言 2. 执行命令的必备知识 3. 常用系统工作命令 4. 系统状态检测命令 5. 查找定位文件命令 6. 文本文件编辑命令 7. 文件目录管理命令 前言 悟已往之不谏&#xff0c;知来者之可追。实迷途其未远&#xff0c;觉今是而昨非。舟遥遥以轻飏&#xff…

测试用例的缝缝补补

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️山水速疾来去易&#xff0c;襄樊镇固永难开 ☁️定位页面的元素 参数:抽象类By里…

四、防火墙-NAT Server

学习防火墙之前&#xff0c;对路由交换应要有一定的认识 NAT Server1.1.基本原理1.2.多出口场景下的NAT Server1.3.源进源出 —————————————————————————————————————————————————— NAT Server 一般对用户提供一些可访问的…

apipost接口200状态码,浏览器控制台500状态码

后端 url 登录login方法 login(){this.$refs.loginForm.validate(async valid > {if (!valid) return// 由于data属性是一个json对象&#xff0c;需要进行解构赋值{data:result}&#xff0c;进行状态码判断const {data: result} await this.$http.post(/api/doLogin,this.…

普通程序员 VS 高级程序员!

见字如面&#xff0c;我是军哥&#xff01; 最近有读者朋友问我&#xff0c;普通程序员和高级程序员到底有什么区别&#xff1f;我说最关键的3点&#xff0c;你看看是否认同哈&#xff5e; 1、需求评审的能力 普通程序员&#xff0c;就是根据产品经理提的需求细节&#xff0c;开…

vue2:mixin混入的使用

前言 在使用vue2开发业务时,难免会遇到一些多组件公用的方法和基础的数值。 比如你的页面里面有很多相似的列表展示,分页器都是默认1页10行,都需要调用某个公共的接口,或者某一个操作函数很多页面都需要调用。 这个时候,就可以使用mixin和extend这两个api,将公共的数据和代码…

【鸿蒙应用ArkTS开发系列】- 云开发入门实战二 实现省市地区三级联动地址选择器组件(下)

文章目录 概述端云调用流程端侧集成AGC SDK端侧省市地区联动的地址选择器组件开发创建省市数据模型创建省市地区视图UI子组件创建页面UI视图Page文件 打包测试总结 概述 我们在前面的课程&#xff0c;对云开发的入门做了介绍&#xff0c;以及使用一个省市地区联动的地址选择器…