Hướng dẫn cài đặt DynDNS với CloudFlare trên Raspberry Pi

Sau khi bạn biến chiếc Raspberry Pi của mình thành web server tại nhà, thì việc tiếp theo cần làm là cài đặt DynDNS với CloudFlare trên Raspberry Pi để mọi người dễ dàng truy cập. Thông thường bạn hay sử dụng gói mạng không có IP tĩnh tại nhà. Nên IP này sẽ bị thay đổi sau một thời gian bởi nhiều lí do khác nhau (mất điện, định kỳ đổi IP từ nhà mạng, …) dẫn đến mất kết nối từ tên miền tới server Raspberry Pi của bạn.
Khi đó, để cập nhật IP mới, chúng ta sẽ cần kiểm tra địa chỉ IP rồi login vào các hệ thống quản lý DNS của tên miền rồi nhập địa chỉ đã thay đổi ở trên. Thao tác này khá mất công, không chủ động và đặc biệt là bạn không thể biết khi nào IP của mình được thay đổi. Vì vậy, có rất nhiều dịch vụ Dynamic DNS ra đời để giúp chúng ta làm việc này một cách tự động. Trong số đó, có dịch vụ của Cloud Flare, một nhà cung cấp dịch vụ Internet mà chúng tôi cũng đã từng giới thiệu đến các bạn giải pháp VPN Warp+ giúp vượt qua các biện pháp ngăn chặn truy cập mạng.

Cloudflare and Raspberry Pi

Với dịch vụ DynDNS của CloudFlare giúp ta xử lý hiệu quả vấn đề này. Đây vốn là dịch vụ tối ưu website, cung cấp cho người dùng khả năng bảo mật với SSL miễn phí, cache web và record IP mỗi khi IP này bị thay đổi. Ngay cả khi IP bị thay đổi cần thời gian cập nhật IP mới thì cloudflare có sẵn chức năng cache để website vẫn có thể sử dụng được cho đến khi kết nối tới server Raspberry Pi với IP mới.

Yêu cầu khi cài đặt DynDNS CloudFlare đó là:

Bạn cần biết cập nhật name server của CloudFlare tới quản lý tên miền của bạn, chỉ cần như vậy thôi và tiếp theo hãy thực hiện nhưng thao các dưới đây:
DynDNS với Cloudflare

Bước 1: Cập nhật tên miền trên trang web CloudFlare

Vào trang quản lý Cloudflare của bạn, bạn có thể vào đường link tại đây:
DynDNS với Cloudflare
Tại trang chủ, bạn nhấn nút + Add a Site

DynDNS với Cloudflare

Nhập tên miền của bạn, và nhấn nút Add site

DynDNS với Cloudflare

Lựa chọn bản miễn phí, chọn nút Confirm plan

DynDNS với Cloudflare

Cloudflare sẽ scan các cấu hình có sẵn trong trang web nhưng bạn hãy xóa hết nó đi. Bằng cách nhấn vào dấu X

DynDNS với Cloudflare

Sau khi xóa hết cấu hình, bạn nhập thông số như trong ảnh trên:

Type: A

Name: home

IPv4 address: 0.0.0.0

TTL: auto
Proxy status: DNS only (chỉ cần bấm chuột vào biểu tượng)
Sau đó ấn vào nút Add Record, ấn tiếp vào nút Continue
DynDNS với Cloudflare
Sau đó bạn lưu ý 2 dòng Nameserver 1Nameserver 2. Đăng nhập tiếp vào trang quản trị tên miền của bạn và nhập 2 Nameserver này vào
 DynDNS với Cloudflare
Quay trở lại tab Cloudflare nhấn nút Done, check nameservers
DynDNS với Cloudflare
Sau đó nhấn nút Done để hoàn tất.
Profile Cloudflare
Tiếp theo chọn vào biểu tượng user, chọn My Profile
api tokens
Chọn tab API Tokens
global api key
Tại dòng Global API Key, bạn chọn nút View
global api key
Nhập mật khẩu đăng nhập Cloudflare của bạn. Tick vào I am human, và bấm nút View
global api key
Copy dòng key này, và chuẩn bị sang Bước 2.

Bước 2: Cài đặt DynDNS trên server Raspberry Pi

Bạn mở terminal trên Pi hoặc kết nối SSH. Tạo thư mục cf bằng lệnh:
mkdir cf
Sau đó mở thư mục cf bằng lệnh cd cf, và tải file này:
wget https://gist.githubusercontent.com/TheFirsh/c9f72970eaae3aec04beb1106cc304bc/raw/131e57a51ecbcec25c333bef8add3dcfe12704b6/lwp-cloudflare-dyndns.sh
Trong lúc này hãy chuẩn bị cho mình 4 thông tin sau:
auth_email=”email@example.com(tài khoản email dùng cho cloudflare)”
auth_key=”global_api_key(key được copy ở cuối Bước 1)”
zone_name=”example.com(tên miền của bạn)”
record_name=”home.example.com (home.tên miền của bạn)”
Sau đó dùng lệnh để sửa file:
sudo nano lwp-cloudflare-dyndns.sh
Thay thế thông tin trên vào file.
file Dyndns.sh
Sửa xong nội dung trên, bạn nhấn CTRL + X và ấn Y để lưu lại.
Rồi cấp quyền cho file:
chmod +x lwp-cloudflare-dyndns.sh
Chạy file lần đầu (nếu không chạy được thì bạn thêm sudo vào đằng trước lệnh)
./lwp-cloudflare-dyndns.sh
Bạn sẽ thấy trong thư mục này xuất hiện thêm file cloudflare.ids  như vậy là thành công
File này có chức năng lấy ip hiện tại và gửi tới cloudflare nên bạn cần thêm file này vào cronjob để nó tự động thực  hiện. Trên terminal nhập lệnh:
crontab -e
Thêm dòng sau
*/1 * * * * /bin/bash /home/pi/cf/lwp-cloudflare-dyndns.sh

Crontab -e

Dòng lệnh này có ý nghĩa là nó sẽ cứ 1 phút tự thực thi file sh để cập nhật ip lên cloud phòng trường hợp mất điện hay reset modem thì website của bạn sẽ chỉ mất kết nối khoảng tầm 1 phút là sẽ online trở lại.
Nhập tiếp lệnh đẻ hoàn tất:
sudo service cron reload
Như vậy công việc cập nhật ip tới cloudflare đã xong, từ giờ bạn chỉ việc phát triển nội dung trang web của mình. Còn lại Pi sẽ tự động đồng bộ kết nối dữ liệu đến tên miền thông qua Cloudflare. Bạn hãy thử nhập tên miền của mình vào trình duyệt web và kiểm tra kết quả. Chúc bạn thành công!