본문 바로가기

기타

Cloudflare API를 사용하여 A 레코드의 프록시를 활성화 및 비활성화하는 방법

728x90

Cloudflare API를 사용하여 A 레코드의 프록시를 활성화 및 비활성화하는 방법

A 레코드의 프록시를 켜고 끄는 것은 해당 도메인의 프록시 설정을 변경하는 것을 의미합니다.

1. 도메인의 A 레코드 ID 얻기

도메인의 A 레코드 ID를 가져와야 합니다. curl 명령어를 사용하여 해당 정보를 확인할 수 있습니다.

curl -X GET "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/dns_records?type=A&name=YOUR_DOMAIN" \
-H "X-Auth-Email: YOUR_EMAIL" \
-H "X-Auth-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"

여기서 YOUR_ZONE_ID는 Zone ID, YOUR_DOMAIN은 도메인 이름입니다. 이 명령어를 실행하면 JSON 응답이 반환되며, 여기서 "result" 배열의 각 요소에는 A 레코드에 대한 정보가 들어 있습니다. 원하는 A 레코드의 "id" 값을 기록해 두세요.

2. 프록시 활성화/비활성화

A 레코드의 ID를 얻었다면 프록시를 활성화 또는 비활성화할 수 있습니다.

  • 프록시 활성화
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/dns_records/A_RECORD_ID" \
-H "X-Auth-Email: YOUR_EMAIL" \
-H "X-Auth-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"proxied":true}'
  • 프록시 비활성화
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/dns_records/A_RECORD_ID" \
-H "X-Auth-Email: YOUR_EMAIL" \
-H "X-Auth-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{"proxied":false, "ttl":60}'

여기서 YOUR_ZONE_ID는 Zone ID, A_RECORD_ID는 이전에 얻은 A 레코드의 ID로 대체하세요. 위 명령어를 실행하면 해당 A 레코드의 프록시가 활성화 또는 비활성화됩니다.

728x90

3.클라우드플레어에서 프록시를 활성화 또는 비활성화하는 Bash 스크립트

  • Bash 스크립트
vim cloudflare_proxy_toggle.sh
더보기

---

#!/bin/bash

# Replace with your actual values
YOUR_API_KEY="YOUR_API_KEY"
YOUR_EMAIL="YOUR_EMAIL"
zone_identifier="zone_identifier"
identifier="a_recode_identifier"
ttl_value="60"  # TTL in seconds

# Function to enable or disable proxy
toggle_proxy() {
  local proxy_set=$1

  curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$identifier" \
    -H "X-Auth-Email: $YOUR_EMAIL" \
    -H "X-Auth-Key: $YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    --data "{\"proxied\":$proxy_set, \"ttl\":$ttl_value}"
}

# Enable proxy
echo "Enabling proxy..."
toggle_proxy true

# Sleep for 4 hours (14400 seconds)
echo "Sleeping for 4 hours..."
sleep 14400

# Disable proxy
echo "Disabling proxy..."
toggle_proxy false

echo "Script completed."

---

#!/bin/bash

# Replace with your actual values
YOUR_API_KEY="YOUR_API_KEY"
YOUR_EMAIL="YOUR_EMAIL"

# Function to enable or disable proxy
toggle_proxy() {
  local zone_identifier=$1 #zone identifier
  local identifier=$2 #a record identifier
  local proxy_set=$3
  local ttl_value=${4:-60}

  curl -X PATCH "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$identifier" \
    -H "X-Auth-Email: $YOUR_EMAIL" \
    -H "X-Auth-Key: $YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    --data "{\"proxied\":$proxy_set, \"ttl\":$ttl_value}"
}

# Enable proxy
toggle_proxy "zone_identifier_01" "a_record_id_01" true
toggle_proxy "zone_identifier_02" "a_record_id_02" true
toggle_proxy "zone_identifier_03" "a_record_id_03" true

# Sleep for 4 hours (14400 seconds)
sleep 14400

# Disable proxy
toggle_proxy "zone_identifier_01" "a_record_id_01" false 60
toggle_proxy "zone_identifier_02" "a_record_id_02" false 60
toggle_proxy "zone_identifier_03" "a_record_id_03" false 60
  • 실행 권한 부여
chmod +x cloudflare_proxy_toggle.sh
  • 스크립트 실행
./cloudflare_proxy_toggle.sh

 

참고URL

- Cloudflare API : Patch DNS Record

 

728x90