Cloudflare搭建DDNS(脚本版)

自建DDNS解决动态IP服务器访问问题
  • 把域名接入cloudflare

  • 获取Global API Key

  • 设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)

  • 下载 DDNS 脚本

  • 修改 DDNS 脚本并补充相关信息

  • 设置定时任务

把域名接入cloudflare

打开cloudflare,登陆账号添加网站按照提示操作

获取Global API Key

访问 https://dash.cloudflare.com/profile在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来 ,在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来

1
设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)

添加一条A记录,例如:hkt.test.com,Proxy status设置成DNS only

2
下载 DNNS 脚本
curl https://raw.githubusercontent.com/aipeach/cloudflare-api-v4-ddns/master/cf-v4-ddns.sh > /root/cf-v4-ddns.sh && chmod +x /root/cf-v4-ddns.sh
修改 DDNS 脚本并补充相关信息
vim cf-v4-ddns.sh
# incorrect api-key results in E_UNAUTH error
# 填写 Global API Key
CFKEY=

# Username, eg: user@example.com
# 填写 CloudFlare 登陆邮箱
CFUSER=

# Zone name, eg: example.com
# 填写需要用来 DDNS 的一级域名
CFZONE_NAME=

# Hostname to update, eg: homeserver.example.com
# 填写 DDNS 的二级域名(只需填写前缀)
CFRECORD_NAME=
设置定时任务

首次运行脚本,输出内容会显示当前IP,进入cloudflare查看 确保IP已变更为当前IP

./cf-v4-ddns.sh

定时任务

crontab -e
*/2 * * * * /root/cf-v4-ddns.sh >/dev/null 2>&1

# 如果需要日志,替换上一行代码
*/2 * * * * /root/cf-v4-ddns.sh >> /var/log/cf-ddns.log 2>&1

Amazon Route 53如何实现自动故障转移和恢复

Amazon Route 53 中,你可以使用 健康检查(Health Checks)+ 失效转移(Failover Routing) 方式来实现自动故障转移和恢复。以下是详细步骤:


📌 1. 创建健康检查

步骤

  1. 登录 AWS 控制台,进入 Route 53 控制面板。
  2. 在左侧导航栏,选择 Health Checks(健康检查)
  3. 点击 Create health check(创建健康检查)
  4. 填写健康检查信息:
    • 名称:填写一个唯一的名称,例如 MyServerHealthCheck
    • Monitor Endpoint(监测端点)
      • 选择 IP 地址,输入要监测的服务器 IP
      • 端口号(例如 80443
      • 选择健康检查类型
        • HTTP / HTTPS(建议选择 HTTPS 以提高安全性)
    • Failure Threshold(失败阈值):设置触发故障的次数(默认 3 次)。
    • Request Interval(请求间隔):建议 30s(默认)。
    • Invert Health Check Status(反转健康检查状态)(可选):如果希望状态反向,可以选中。
  5. 配置 SNS 通知(可选):
    • 你可以启用 SNS 以在服务器宕机或恢复时收到通知。
  6. 点击 Create(创建)

🔹 ✅ 这样,Route 53 会定期检查服务器 IP 是否正常工作。如果该 IP 宕机,健康检查会标记为 unhealthy(不健康)。


📌 2. 配置 DNS 记录进行自动故障转移

  1. Route 53 控制台,进入 你的域名
  2. 选择 Record Sets(记录集),点击 Create Record Set(创建记录集)
  3. 配置 A 记录(IPv4)或 AAAA 记录(IPv6),针对每个 IP 设置如下:
    • Name(名称):留空或填写子域名(如 www)。
    • Type(类型):A(IPv4)或 AAAA(IPv6)。
    • Alias(别名):No。
    • TTL(缓存时间):建议 60 秒(短 TTL 可加快故障切换)。
    • Routing Policy(路由策略)
      • 选择 Failover(故障转移)。
    • Failover Record Type(故障转移记录类型)
      • 对于 主 IP(例如 192.168.1.1),选择 Primary(主)。
      • 对于 备用 IP(例如 192.168.1.2),选择 Secondary(备用)。
    • Associate with Health Check(关联健康检查)
      • 选中 Yes,并选择 之前创建的健康检查
  4. 重复上述步骤,为所有服务器 IP 添加健康检查和故障转移设置。

📌 3. 故障转移逻辑

  • 正常情况:Route 53 会解析所有 健康(healthy) 状态的 IP。
  • 某个 IP 宕机:Route 53 自动从解析列表中移除该 IP,并将流量转移到其他健康 IP。
  • IP 恢复:Route 53 自动重新解析该 IP,让它恢复上线。

📌 4. 其他优化(可选)

使用 Weighted Routing(加权路由)

如果你想让流量分配到多个 IP,但仍然具有故障转移功能,可以使用 加权路由(Weighted Routing)+ 健康检查

  • 配置 每个 IP 的权重,如 30%、30%、40%
  • 仍然关联 健康检查,宕机时 Route 53 自动调整流量分配

✅ 总结

  1. 创建 Route 53 健康检查,监控服务器 IP 是否存活。
  2. 在 DNS 解析中设置故障转移(Failover Routing),主服务器宕机时自动切换到备用 IP。
  3. 当 IP 恢复后,Route 53 会自动重新解析,让其恢复上线。

这样,你就可以实现 自动下线宕机 IP,并在服务器恢复后 自动上线。🚀

rockylinux8 批量替换文件夹下面所有html的文件的指定网址

Rocky Linux 8 上,可以使用 sed 命令批量替换指定网址,并配合 find 命令处理所有 HTML 文件。

示例命令:

find /path/to/directory -type f -name "*.html" -exec sed -i 's|旧网址|新网址|g' {} +

命令解析:

  • find /path/to/directory -type f -name "*.html"
    • 查找 /path/to/directory 目录下所有 .html 文件。
  • -exec sed -i 's|旧网址|新网址|g' {} +
    • 使用 sed 进行 就地修改(-i),将 旧网址 替换为 新网址
    • s|旧网址|新网址|g:替换所有匹配的内容。
    • {} 代表 find 结果的文件名,+ 使 find 传递多个文件,提高效率。

示例

假设你要替换 /var/www/html 目录下所有 HTML 文件里的 http://old.example.comhttps://new.example.com,命令如下:

find /var/www/html -type f -name "*.html" -exec sed -i 's|http://old.example.com|https://new.example.com|g' {} +

如果你需要更强大的替换功能,可以用 perl

find /var/www/html -type f -name "*.html" -exec perl -pi -e 's|http://old.example.com|https://new.example.com|g' {} +

注意:

  • 建议先备份文件,以防替换出错:
    cp -r /var/www/html /var/www/html_backup
    
  • sed 可能对一些特殊字符(如 /&)敏感,可以用 | 代替 / 作为分隔符,避免转义符 \

如果有更复杂的需求,可以告诉我具体情况,我帮你优化命令。 😊

Linux 查看网卡实时网速以及 nload 命令详解

1.使用 nload 工具查看

复制代码
安装工具

yum install -y epel-release #先安装epel软件库
yum install -y nload #再安装nload

# 查看所有网卡实时网速
sudo nload -m

# 查看指定网卡实时网速
sudo nload eth0 -m
复制代码

 

nload 默认分为上下两块:
上半部分:Incoming也就是进入网卡的流量
下半部分:Outgoing,也就是从这块网卡出去的流量

参数详情表

参数 描述
Curr 当前流量
Avg 平均流量
Min 最小流量
Max 最大流量
Ttl 总和流量

 

 

注:小写代表bit,大写代表byte

Bit(比特)是存储单元;Byte(字节)是计量单位,查看网络时常用Byte

1Byte=8Bit
比如:网速计算
我们常说的家庭网速为10M,100M,其值为带宽,转换为Byte为
下载速度从理论上来说,应该是带宽的八分之一
10M=1280kb/s 100M=12800kb/s=12.5Mb/s

 

参考地址:https://blog.csdn.net/m0_58292366/article/details/125145915

 

 

2.通过 ifconfig 实时查看

watch -n 1 ifconfig

 

3.通过脚本查看

复制代码
#!/bin/bash

awk 'BEGIN{
OFMT="%.3f";
devf="/proc/net/dev";
while(("cat "devf) | getline)
{
    if($0 ~ /:/ && ($10+0) > 0)
    {
        split($1,tarr,":");
        net[tarr[1]]=$10+tarr[2];
        print tarr[1],$10+tarr[2];
    }
}
close(devf);

icount=0
while((system("sleep 1")) >=0)
{
   icount +=1
    system("clear");
    while( getline < devf )
    {
        if($0 ~ /:/ && ($10+0) > 0)
            {
                split($1,tarr,":");
                if(tarr[1] in net)
                {
                    print tarr[1],":",($10+tarr[2]-net[tarr[1]])*8/1024,"kb/s";
                    net[tarr[1]]=$10+tarr[2];
                }      
            }   
    }
    close(devf);
   if (icount>100)
    {break;}
}
}'
复制代码
icount=计数100次之后自动退出。

 

4.通过下载源文件,本地编译安装 nload

复制代码
yum install wget  #安装wget下载工具
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz  #下载 nload-0.7.4.tar.gz
tar zxvf nload-0.7.4.tar.gz  #解压这个压缩包
cd nload-0.7.4  #进入解压后的文件目录
yum install gcc gcc-c++ ncurses-devel  #安装依赖库
./configure #检测你的安装平台的目标特征的
make  #编译
make install  #安装
复制代码

 

5.scp 命令测试

A 机器请求 B 机器的数据,经常遇到超时。A机器带宽可能有限制,排查带宽的时候,又不能安装程序。这时候可以考虑 scp 命令。

通过 在 A 机器上 从B 机器上拉去文件,观察是否能正常拉取,以及拉取完成 的耗时,平均网速,来知晓机器带宽情况。

 

scp upchina@172.16.9.227:/usr/local/app/taf/app_log/algo/FactorTsbReadServer/2530318728.log  abc.log

 

scp命令解释。

scp 将   B机器文件,拷贝到  本机

scp    用户名@机器地址+目标文件地址+文件名    本机目录+本机文件名

scp username@remote:/path/to/remote/file /path/to/local/directory

 

 

scp 命令可以参考:https://www.cnblogs.com/abel-he/p/16502825.html

各种转发协议方案对比 gost,iptables,brook,caddy,ehco,socat,realm,v2ray,iperf3,haproxy,tinyportmapper

这些工具各有优劣,适用于不同的场景。下面是对它们的 优缺点稳定性 的评价:


1. gost (GO Simple Tunnel)

优点:

  • 多协议支持:支持 TCP/UDP/SOCKS5/HTTP/HTTPS/Relay 等多种协议。
  • 高性能:基于 Go 语言,性能较好,占用资源较低。
  • 配置灵活:支持链式代理,适合复杂的代理环境。

缺点:

  • 文档较少:配置相对复杂,官方文档不够详细。
  • UDP 可能不稳定:在某些网络环境下 UDP 转发不稳定。

📊 稳定性:★★★★☆(一般较稳定,但复杂配置可能有坑)


2. iptables

优点:

  • 内核级转发,性能最高,几乎无额外开销。
  • 稳定性极高,几乎不会崩溃。
  • 全局生效,可以用于系统所有流量。

缺点:

  • 配置复杂,新手不容易上手。
  • 难以进行高级协议解析,仅限于简单的端口转发和 NAT 规则。
  • 不支持用户级转发,只能在 root 权限下使用。

📊 稳定性:★★★★★(极高)


3. brook

优点:

  • 轻量级,占用资源少,适合小型服务器或低性能设备。
  • 自带加密,适合防火墙较严的环境。
  • 支持 TCP/UDP,适用于 P2P 和流媒体等应用。

缺点:

  • 功能较少,主要用于简单代理,不适合复杂转发需求。
  • 不支持链式代理,难以灵活搭配其他代理工具。

📊 稳定性:★★★☆☆(适用于小型环境,但大流量情况下可能不稳定)


4. caddy

优点:

  • 主要是 Web 服务器,自带 HTTPS,适合搭配反向代理。
  • 配置简洁,适合 HTTPS + 反向代理 + WebSocket 场景。
  • 支持自动 TLS 证书管理,减少配置复杂度。

缺点:

  • 不适合复杂端口转发,更适合作为 Web 服务器或 HTTP 反向代理。
  • UDP 支持有限,不适合 UDP 代理。

📊 稳定性:★★★★★(适用于 Web 代理,其他用途受限)


5. ehco

优点:

  • 轻量级,基于 Rust 开发,资源占用低。
  • 支持 TCP/UDP,适用于流量转发和负载均衡。
  • 简单易用,仅需一条命令即可完成端口转发。

缺点:

  • 功能单一,主要用于 TCP/UDP 端口转发,不支持复杂协议。
  • 开发较新,生态较小,社区支持不如其他成熟方案。

📊 稳定性:★★★★☆(相对稳定,但功能有限)


6. socat

优点:

  • 功能强大,支持 TCP/UDP/Unix Socket/TTY/SSL 等各种协议。
  • 轻量级,仅依赖系统本身,几乎无额外资源消耗。
  • 非常灵活,适用于端口转发、协议转换、数据流重定向等。

缺点:

  • 配置复杂,参数繁琐,不易上手。
  • 不支持流量控制,可能导致大流量下不稳定。

📊 稳定性:★★★☆☆(轻量但大流量下不够稳定)


7. realm

优点:

  • 专注于流量转发,支持 TCP/UDP/HTTP/SOCKS5。
  • 支持多路复用,适合高并发代理环境。
  • 有较好的文档,上手相对容易。

缺点:

  • 生态较小,社区支持不如 v2ray/gost。
  • 开发较新,长期稳定性待观察

📊 稳定性:★★★★☆(较为稳定,但长期可靠性待观察)


8. v2ray

优点:

  • 功能强大,支持 VMess/VLESS/SOCKS/HTTP/MTProto 等多种协议。
  • 抗封锁能力强,适用于防火墙环境。
  • 强大的路由功能,可以精细控制流量。

缺点:

  • 配置复杂,JSON 规则较多,学习成本高。
  • 资源占用较高,比 gost/brook/socat 等稍重。

📊 稳定性:★★★★★(非常稳定,适合长期使用)


9. iperf3

优点:

  • 专门用于网络性能测试,可以测试 TCP/UDP 速率、丢包率等。
  • 支持多种模式,可以进行单向、双向、并发测试。

缺点:

  • 不是端口转发工具,只能用于测速,不能用于代理或 NAT。

📊 稳定性:★★★★★(作为测试工具很稳定,但不适合端口转发)


10. haproxy

优点:

  • 高性能负载均衡,适用于高并发代理和服务器负载均衡。
  • 支持 TCP/HTTP/HTTPS/WebSocket,适用于 Web 代理和 API 网关。
  • 稳定性极高,企业级应用广泛使用。

缺点:

  • 配置较复杂,相比 caddy、nginx 需要更多调整。
  • 不适用于 UDP 转发,仅适用于 TCP 和 HTTP/S。

📊 稳定性:★★★★★(非常稳定,适用于大规模代理)


11. tinyPortMapper

优点:

  • 超轻量级,占用资源极少。
  • 简单易用,一条命令即可完成端口转发。

缺点:

  • 功能极少,仅支持基础端口映射。
  • 不支持高级协议或负载均衡

📊 稳定性:★★★☆☆(适用于小型场景,但功能有限)


综合对比表

工具 优点 缺点 适用场景 稳定性
gost 多协议、链式代理 复杂 多协议代理 ★★★★☆
iptables 内核级,极快 配置难 端口转发 ★★★★★
brook 轻量,加密 功能少 轻量级代理 ★★★☆☆
caddy 易用,自动 HTTPS 仅限 HTTP Web 反代 ★★★★★
ehco 轻量,支持 TCP/UDP 生态小 简单转发 ★★★★☆
socat 强大,协议广泛 复杂 端口转发 ★★★☆☆
realm 流量复用,文档好 生态小 TCP/UDP 转发 ★★★★☆
v2ray 功能强,抗封锁 配置复杂 防火墙环境 ★★★★★
iperf3 测速工具 不能代理 网络测试 ★★★★★
haproxy 高性能负载均衡 不支持 UDP 负载均衡 ★★★★★
tinyPortMapper 超轻量 功能少 简单端口转发 ★★★☆☆

如果你有具体的使用需求,我可以推荐最适合的方案!😊