ddns-go
是一个用Go语言编写的动态DNS客户端,可以将动态IP地址映射到固定的域名,从而实现内网穿透。
在Ubuntu上安装和配置ddns-go
的步骤如下:
安装Go语言环境
首先,在Ubuntu上安装Go语言环境。可以通过以下命令安装:
sudo apt update
sudo apt install golang
go version
获取ddns–go源码
git clone https://github.com/jeessy2/ddns-go.git
编译和安装ddns–go
进入ddns–go目录,然后使用go build命令编译项目:
cd ddns-go
go build
编译完成后,会在当前目录下看到一个名为ddns-go
的可执行文件。
配置ddns-go
在ddns-go
目录下,可以找到一个名为config.yaml
的配置文件。使用文本编辑器打开它,如:
nano config.yaml
按照你的需求修改配置文件。例如,设置域名提供商、用户名、密码、域名等。保存并关闭文件。
provider: dnspod
id: your_dnspod_api_id
token: your_dnspod_api_token
domain: example.com
sub_domain: subdomain
ip_type: ipv6
interval: 300
your_dnspod_api_id
:将其替换为你的腾讯云DNS API ID。your_dnspod_api_token
:将其替换为你的腾讯云DNS API Token。example.com
:将其替换为你的域名。subdomain
:将其替换为你想要映射到动态IP地址的子域名。
关于interval
参数,它表示客户端更新IP地址的时间间隔(以秒为单位)。在这个示例中,ddns-go
将每5分钟(300秒)检查一次IP地址并更新DNS记录。
要获取腾讯云DNS API ID和Token,请登录到腾讯云DNS控制台,然后进入API密钥管理页面创建一个新的API密钥。确保为该密钥分配适当的权限,以便能够更新DNS记录。
保存config.yaml
文件后,你可以按照之前的步骤运行ddns-go
,它将使用腾讯云域名配置更新你的动态IP地址
运行ddns-go
./ddns-go
ddns-go
将根据你的配置文件设置开始运行,将你的动态IP地址映射到指定的域名。
设置ddns-go为开机自启动(可选)
如果你希望ddns-go
在系统启动时自动运行,可以创建一个systemd服务文件。首先,将ddns-go
可执行文件复制到/usr/local/bin
目录下:
sudo cp ddns-go /usr/local/bin/
然后,创建一个名为ddns-go.service
的systemd服务文件:
sudo nano /etc/systemd/system/ddns-go.service
[Unit]
Description=ddns-go
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/path/to/ddns-go
ExecStart=/usr/local/bin/ddns-go
Restart=on-failure
[Install]
WantedBy=multi-user.target
注意:请将WorkingDirectory
设置为你的ddns-go
目录。
sudo systemctl enable ddns-go
sudo systemctl start ddns-go
以下是一个名为install_ddns_go.sh
的bash脚本,通过传入参数来自动完成ddns-go
的安装和配置过程:
#!/bin/bash
set -e
if [ "$#" -ne 4 ]; then
echo "Usage: $0 <dnspod_api_id> <dnspod_api_token> <domain> <sub_domain>"
exit 1
fi
DNSPOD_API_ID="$1"
DNSPOD_API_TOKEN="$2"
DOMAIN="$3"
SUB_DOMAIN="$4"
# 安装依赖
sudo apt update
sudo apt install -y golang git
# 获取ddns-go源码
git clone https://github.com/jeessy2/ddns-go.git
# 编译ddns-go
cd ddns-go
go build
# 配置ddns-go
cat > config.yaml << EOF
provider: dnspod
id: $DNSPOD_API_ID
token: $DNSPOD_API_TOKEN
domain: $DOMAIN
sub_domain: $SUB_DOMAIN
ip_type: ipv4
interval: 300
EOF
# 复制ddns-go可执行文件到/usr/local/bin
sudo cp ddns-go /usr/local/bin/
# 创建ddns-go.service systemd服务文件
sudo bash -c "cat > /etc/systemd/system/ddns-go.service << EOL
[Unit]
Description=ddns-go
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=$(pwd)
ExecStart=/usr/local/bin/ddns-go
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOL"
# 启用并启动ddns-go服务
sudo systemctl enable ddns-go
sudo systemctl start ddns-go
echo "ddns-go已成功安装并启动。"
要运行此脚本,请将其保存为名为install_ddns_go.sh
的文件,然后在终端中运行以下命令:
chmod +x install_ddns_go.sh
./install_ddns_go.sh <dnspod_api_id> <dnspod_api_token> <domain> <sub_domain>
请将<dnspod_api_id>
、<dnspod_api_token>
、<domain>
和<sub_domain>
替换为你的实际信息。脚本将自动完成ddns-go
的安装、配置和启动过程。
原文地址:https://blog.csdn.net/penne6074/article/details/132688574
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_48496.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!