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
'기타' 카테고리의 다른 글
인터넷 속도 "100 Mbps"의 의미? (0) | 2023.11.29 |
---|---|
네트워크 대역폭(Network Bandwidth)이란 (0) | 2023.11.28 |
File system, Raw Device 및 ASM(Automatic Storage Management) 고유한 특징과 장점 (0) | 2023.10.28 |
IDS와 IPS의 정의, 개념, 차이점 및 구성 방법 (0) | 2023.10.27 |
ZABBIX 로그 파일 모니터링 (0) | 2023.10.26 |