
Xoá toàn bộ DNS trên Cloudflare – Bulk remove DNS records
Mới đây mình có mua 1 tên miền để xây dựng website giúp khách hàng có thể tăng rank, tăng like Facebook, Google map … nhưng lúc mình mua xong thêm tên miền vào Cloudflare thì nó scan và thêm tự động vào hơn 600 DNS record.
1 mẹo xử lý nhanh để fix lỗi này là bạn login vào phần quản lý tên miền, xong cập nhật đại 1 DNS nào đó vào vd: ns1.vutruso.com và ns2.vutruso.com vào rồi lưu lại, xong tạo mới 1 tài khoản cloudflare khác để add domain vào sẽ không bị mấy trăm hoặc mấy ngàn dns record nữa.
Mình có tìm hiểu thì thử qua bằng cách xoá bằng tiện ích iMacros for Chrome nhưng tốc độ xoá tự động như rùa bò nên mình thử kết nối bằng API do Cloudflare cung cấp để xử lý việc này nên bài viết này mình share lại cho những ai đang gặp phải vấn đề này có thể dễ dàng xử lý.
Các bước để xoá hàng loạt bảng ghi DNS trên Cloudflare như sau:
Bước 1: Đăng nhập vào Cloudflare
Bước 2: Cũng trên Cloudflare bạn mở trang web bạn đang gặp vấn đề, ở tab Overview bạn sẽ nhìn thấy Zone ID (Lưu cái này ra 1 nơi)
Bước 3: Tạo bearer_token bằng cách vào đường dẫn sau:
https://dash.cloudflare.com/profile/api-tokens/
Tiếp đó, click Create Token
Chọn Use template
Tiếp đó chọn theo như hình dưới và cuối cùng click vào Continue to summary
Ở bước tiếp theo bạn sẽ thấy được bearer_token
Bước 4: Bạn mở VPS lên và tạo 1 file có tên cloudflare-bulk-delete-dns.py
vào vị trí tuỳ bạn muốn, ví dụ mình tạo ở thư mục /python
Sau đó dán đoạn code phía dưới này vào, và thay YOUR_ZONE_ID
và YOUR_BEARER_TOKEN
bạn đã tạo ở bước trên nhé.
import json import requests # You can get zone ID from Overview page on the bottom right section zoneid = "YOUR_ZONE_ID" # You need to generate api token from My Profile > API Token with Edit Zone permission bearer_token = "YOUR_BEARER_TOKEN" if input("Are you sure you want to delete ALL DNS records in this zone? (y/n)") != "y": exit() # Fetch dns records from CloudFlare record_rq = requests.get("https://api.cloudflare.com/client/v4/zones/"+ zoneid +"/dns_records", headers = {"Content-Type": "application/json", "Authorization": "Bearer " + bearer_token}) data = record_rq.json() if data['success'] == False: print("Failed to fetch dns record:") print(data['errors']) quit() # Delete dns records for record in data['result']: print("Deleting:", record['name']) rq = requests.delete("https://api.cloudflare.com/client/v4/zones/"+ zoneid +"/dns_records/" + record['id'], headers = {"Content-Type": "application/json", "Authorization": "Bearer " + bearer_token}) print(rq.status_code, "\n")
Giờ bạn mở SSH lên -> vào thư mục chứa file cloudflare-bulk-delete-dns.py và chạy file cloudflare-bulk-delete-dns.py với lệnh
python3 cloudflare-bulk-delete-dns.py
Sẽ có xác nhận, Are you sure you want to delete ALL DNS records in this zone? (y/n) thì bạn gõ y và enter là được.
Chương trình sẽ tự động chạy và xoá DNS tự động, đây là kết quả.
Nếu bạn không có VPS sử dụng SSH thì bạn có thể cài Python vào Windows để chạy nhé, tải về Python tại
https://www.python.org/downloads/
Sau khi cài Python xong bạn có thể mở cmd lên, dùng lệnh cd để đi đến nơi chứa file cloudflare-bulk-delete-dns.py và chạy lệnh python cloudflare-bulk-delete-dns.py
Vd: cd C:\Users\YourName\Documents\
Tiếp theo: python cloudflare-bulk-delete-dns.py
Ngoài cách này ra bạn cũng có thể xoá hàng loạt bảng ghi bằng cách sử dụng API Cloudflare thông qua Postman, bạn có thể tìm hiểu thêm tại bài viết này:
https://medium.com/@quentinrozados/how-to-remove-all-cloudflare-dns-bulk-remove-93bd2a0366ba
Tài liệu postman: https://documenter.getpostman.com/view/7648432/SzfCUkk2?version=latest#860fe629-2df7-4b29-bab6-ee048db204e3
Ngoài ra, mình còn đọc thêm 1 git này mà chưa thử, bạn có thể thử nếu muốn
https://github.com/Fr3akyMurk/Cloudflare-bulk-dns-delete
Cảm ơn đã đọc bài viết, hy vọng bài viết sẽ giúp ích cho bạn.