ubuntu安装ddns-go实现内网穿透

ddns-go是一个用Go语言编写的动态DNS客户端,可以将动态IP地址映射到固定的域名,从而实现内网穿透。
在Ubuntu上安装和配置ddns-go的步骤如下:

目录

安装Go语言环境

获取ddns-go源码

编译和安装ddns-go

配置ddns-go

运行ddns-go

设置ddns-go为开机自启动(可选)


安装Go语言环境

首先,在Ubuntu上安装Go语言环境。可以通过以下命令安装:

sudo apt update
sudo apt install golang

安装完成后,检查Go是否正确安装:

go version

获取ddns-go源码

接下来,从GitHub上克隆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

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目录。

接下来,启用并启动ddns-go服务:

sudo systemctl enable ddns-go
sudo systemctl start ddns-go

现在,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的安装、配置和启动过程。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值