ddns-go部署在linux虚拟机

news2024/9/24 21:22:49

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware虚拟机安装华为OpenEuler欧拉系统

首先去欧拉官方网站下载openEuler的安装镜像&#xff1a; openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 我下载的是最新的23.03长期维护版本&#xff0c;架构选择x86_64。 创建新虚拟机&#xff1a;选择典型配置&#xff0c;点击下一步&#xff1a;选择下载的镜像文…

html table样式的设计 表格边框修饰

<!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <title>今日小说排行榜</title> <style> table {border-collapse: collapse;border: 4px double red; /*…

Celonis推出流程智能图,希望建立首个世界级“流程智能维基百科”

近日&#xff0c;全球流程挖掘领域的领导者Celonis在其年度客户大会Celosphere上推出了流程智能领域的一项创新&#xff0c;即流程智能图Process Intelligence Graph™&#xff08;PI Graph&#xff09;。 PI Graph 是一个与具体系统无关的、丰富的业务数字孪生体&#xff0c;…

VBA_MF系列技术资料1-227

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-04属于定…

解决cad找不到vcruntime140.dll的方法,实测有效的5个的方法

最近&#xff0c;我在使用CAD软件时遇到了一个困扰我已久的问题&#xff1a;由于找不到vcruntime140.dll文件而导致CAD无法正常运行。经过一番努力和尝试&#xff0c;我终于找到了解决这个问题的方法。那么&#xff0c;如何解决vcruntime140.dll丢失的问题呢&#xff1f;本文将…

2023仿聚合搜索程序源码/轻量级搜狗泛站群程序源码/PHP整站源码+完美SEO优化+符合搜狗算法

源码简介&#xff1a; 2023仿聚合搜索/轻量级搜狗泛站群程序整站源码&#xff0c;作为PHP源码&#xff0c;可以完美SEO优化&#xff0c;符合搜狗搜索引擎算法。 轻量级的PHP搜狗泛站群程序源码&#xff0c;完美SEO优化符合搜狗搜索引擎算法&#xff0c;无需任何采集&#xff…

闲人闲谈PS之四十七——PS顾问能力评价参考标准

惯例闲话&#xff1a;逝者如斯夫&#xff0c;一晃2023年进入年尾&#xff0c;初步盘点下今年做的事情&#xff0c;还真不少&#xff0c;PLM项目、接口开发、扫码系统、数字彩虹图、专利申请…闲人发现&#xff0c;不经意间&#xff0c;SAP从自己的主营业务中占据的比重已经越来…

[pyqt5]PyQt5窗体背景图片拉伸填充

1. background-image效果 这里&#xff0c;我添加的是如下这个图片。 结果只显示了图片的部分&#xff08;天空&#xff09;&#xff0c;没有拉伸填充。 2. border-image效果 图片出现了拉伸填充整个widget&#xff0c;图中的button背景也是图片的背景。 如果想要按钮不受背景…

中低压MOSFET 2N7002W 60V 300mA 双N通道 SOT-323封装

2N7002W小电流双N通道MOSFET&#xff0c;电压60V电流300mA&#xff0c;采用SOT-323封装形式。超高密度电池设计&#xff0c;适用于极低的ros (on)&#xff0c;具有导通电阻和最大直流电流能力&#xff0c;ESD保护。可应用于笔记本中的电源管理&#xff0c;电池供电系统等产品应…

P9 C++类

目录 01 类是什么 02 如何创建类 03 方法 后话 本期我们要讲的是 C 中的类。 我们终于讲到了面向对象编程&#xff0c;这是一种非常流行的编程方式&#xff0c;面向对象编程实际上只是一种你可以采用的编写代码的方式&#xff0c;其他语言例如 C#、Java 这些主要是面向对象…

软件测试工程师必备之软技能:结构化思维

前言 今年是进入测试行业的第十年&#xff0c;回想在这十年职业生涯中&#xff0c;来来往往也接触过很多很多的人。在跟不同的人一起工作的过程中&#xff0c;我会经常产生一些困惑&#xff0c;比如&#xff1a; 面对同样复杂的测试任务&#xff0c;有些人可以在一天之内梳理…

Windows从源码构建tensorflow(离线编译)

由一开始的在线编译&#xff0c;到后面的离线编译&#xff0c;一路踩坑无数&#xff0c;历经整整6个半小时&#xff0c;终于编译成功&#xff01;在此记录一下参考过的文章&#xff0c;有时间整理一下踩坑记录。 一、环境配置 在tensorflow官网上有版本对应关系 win10 bazel …

App Inventor 2 文本转数字

App Inventor 2 是弱语言类型&#xff0c;文本和数字之间不用刻意去转换&#xff0c;之间赋值就可以了。文本赋值给数字变量如下&#xff1a; 运行结果&#xff1a;124 注意&#xff1a;数字变量初始化的时候要给一个数字的初始值&#xff0c;表明它是数字。 如果文本中含有非…

【MATLAB】全网入门快、免费获取、持续更新的科研绘图教程系列2

14 【MATLAB】科研绘图第十四期表示散点分布的双柱状双Y轴统计图 %% 表示散点分布的双柱状双Y轴统计图%% Made by Lwcah &#xff08;公众号&#xff1a;Lwcah&#xff09; %% 公众号&#xff1a;Lwcah %% 知乎、B站、小红书、抖音同名账号:Lwcah&#xff0c;感谢关注~ %% 更多…

数据结构与算法之美学习笔记:25 | 红黑树(上):为什么工程中都用红黑树这种二叉树?

目录 前言什么是“平衡二叉查找树”&#xff1f;如何定义一棵“红黑树”&#xff1f;为什么说红黑树是“近似平衡”的&#xff1f;解答开篇 前言 本节课程思维导图&#xff1a; 二叉查找树是最常用的一种二叉树&#xff0c;它支持快速插入、删除、查找操作&#xff0c;各个操作…

GEE:基于 Landst 遥感数据计算的 kNDVI 下载 APP

作者&#xff1a;CSDN _养乐多_ 本文记录了在Google Earth Engine&#xff08;GEE&#xff09;平台中&#xff0c;使用 Landsat 遥感数据计算并且下载 kNDVI 的应用 APP 链接&#xff0c;并介绍该 APP 的使用方法和步骤。该APP可以为用户展示 NDVI 和 kNDVI 的遥感影像&#…

如何简化工厂设备报修、维修流程?有什么好用的设备管理软件?

一、场景需求   以往&#xff0c;张师傅在日常巡检工作中&#xff0c;他负责监控设备的运行情况。一旦发现设备出现异常&#xff0c;他需填写一份纸质工单&#xff0c;详细记录设备的名称、型号、异常现象以及发生时间等信息交给上级主管。上级主管收到反馈信息后&#xff0c…

笔记:内网渗透流程之信息收集

信息收集 首先&#xff0c;收集目标内网的信息&#xff0c;包括子网结构、域名信息、IP地址范围、开放的端口和服务等。这包括通过主动扫描和渗透测试工具收集信息&#xff0c;以及利用公开的信息源进行信息搜集。 本机信息收集 查看系统配置信息 查看系统详细信息&#xf…

最新AIGC创作系统ChatGPT网站源码,Midjourney绘画系统,支持GPT-4图片对话能力(上传图片并识图理解对话),支持DALL-E3文生图

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

C++初阶 | [六] 模板初阶

摘要&#xff1a;泛型编程&#xff0c;函数模板&#xff0c;类模板 使用函数重载虽然可以实现&#xff0c;但是有一下几个不好的地方&#xff1a; 重载的函数仅仅是类型不同&#xff0c;代码复用率比较低&#xff0c;只要有新类型出现时&#xff0c;就需要用户自己增加对应的函…