Cài đặt Dynamic DNS cho Raspberry Pi

Từ yêu cầu của các bạn trên group Cộng đồng Raspberry Pi Việt Nam, hôm nay chúng tôi sẽ hướng dẫn các bạn cách để có thể truy cập Raspberry Pi từ xa qua Internet nhờ dịch vụ Dynamic DNS.

BÀI VIẾT DÀNH CHO CÁC NHU CẦU:

  • Bạn cần truy cập Raspberry Pi ở nhà từ xa. Ví dụ bạn biến Raspberry Pi thành một chiếc webserver chạy trong nhà chẳng hạn. Bạn có thể tham khảo Hướng dẫn cài đặt Webserver và PHP, MySQL trên Raspbian để biết cách biến Raspberry Pi thành máy chủ web.
  • Mạng của bạn chỉ có IP động. IP tĩnh thì không cần đọc bài viết này, tuy nhiên có thể tham khảo một số phần để thực hiện.
  • Bạn làm chủ được modem của mình. Tức là bạn có quyền admin của modem.
  • Bạn có domain riêng, kiểu để cho nó … xịn hơn. Nếu bạn không có domain riêng cũng không sao, bài viết này cũng có giải pháp để bạn sử dụng subdomain miễn phí. Hoặc bạn cũng có thể đăng ký domain .tk miễn phí.

CHUẨN BỊ

Bạn cần có:

CÁC BƯỚC THỰC HIỆN

  1. Đăng ký domain
  2. Cấu hình dịch vụ Dynamic DNS (Dyn DNS)
  3. Mở cổng trên modem để truy cập từ xa

THỰC HIỆN

BƯỚC 1: ĐĂNG KÝ DOMAIN

  1. Nếu bạn sử dụng subdomain miễn phí

Rất đơn giản, bạn đăng ký một subdomain miễn phí tại http://freedns.afraid.org/signup/. Đây cũng là dịch vụ Dynamic DNS mà chúng ta sẽ sử dụng trong bài hướng dẫn này.

Truy cập địa chỉ trên, bạn cần nhập các thông tin như dưới hình để đăng ký, lưu ý cần nhập email chính xác vì Afraid sẽ gửi cho bạn một email xác nhận.

dyndns_raspberrypi_1
Đăng ký tài khoản Dynamic DNS miễn phí tại Afraid

Bạn cần check mail để kích hoạt tài khoản, sau đó chọn cho mình một subdomain thật đẹp. Ví dụ: raspberrypi.homenet.org

Lưu ý: Bạn có thể chọn rất nhiều subdomain miễn phí do người dùng đóng góp  tại đây: http://freedns.afraid.org/domain/registry/.

Đăng ký subdomain miễn phí tại Afraid
Đăng ký subdomain miễn phí tại Afraid

Sau khi đăng ký xong, bạn truy cập menu [Dynamic DNS] ở bên trái

dyndns_raspberrypi_3

Và chuột phải vào Direct URL phía dưới để lấy link. Bạn paste tạm link này ra đâu đó để sử dụng cho bước 2 tiếp theo.

dyndns_raspberrypi_4

Direct Link sẽ có dạng: http://freedns.afraid.org/dynamic/update.php?b1dmZFVEY1RqQmpiRWxOxxxxxxxxx

2. Nếu bạn sử dụng domain riêng.

Bạn có thể đăng ký domain riêng miễn phí tại dot.tk hoặc nếu bạn đã có domain thì có thể add domain vào Afraid. Bạn bấm vào menu [Domain] ở bên trái và bấm [Add a domain into FreeDNS] để thêm domain riêng của bạn vào.

dyndns_raspberrypi_5

Sau khi thêm domain, bạn cần tiến hành đổi DNS domain của mình thành các DNS ns1.afraid.org, ns2.afraid.org, ns3.afraid.org, ns4.afraid.org như hướng dẫn ở hình trên. Việc này để Afraid sẽ tiến hành quản lý các bản ghi domain của bạn.

Kết thúc bước này bạn cũng vào menu [Dynamic DNS] như ở phần trên và lấy Direct Link cho domain của bạn.

BƯỚC 2: CẤU HÌNH DỊCH VỤ DYNAMIC DNS

Cài đặt ứng dụng inadyn qua lệnh sau:

sudo apt-get install inadyn

Sau khi cài đặt xong, thực hiện chỉnh sửa cấu hình inadyn qua lệnh:

sudo nano /etc/inadyn.conf

Nội dung file inadyn.conf như dưới đây:

–username your_username
–password your_password
–update_period 3600
–forced_update_period 14400
–alias yourdomain.com,alphanumeric key
–background
–dyndns_system default@freedns.afraid.org
–syslog

Bạn thực hiện chỉnh sửa các thông tin được bôi đỏ cho đúng với tài khoản của mình, trong đó lưu ý về alphanumeric key. Đấy chính là chuỗi chữ số ở trong Direct Link mà bạn đã lấy ở bước 1.

Ví dụ: Direct Link của bạn là: http://freedns.afraid.org/dynamic/update.php?ZFVTVkZNSjhLc2RNQ2pTUGNmcxxxxx

Khi đó alphanumeric key là ZFVTVkZNSjhLc2RNQ2pTUGNmcxxxxx

Tiếp theo, bạn cần chắc chắn rồi inadyn sẽ tự khởi động mỗi khi máy bạn reboot. Bạn chạy lệnh sau:

export EDITOR=gedit && sudo crontab -e

Sau đó thêm dòng dưới dây vào và save lại:

@reboot /usr/sbin/inadyn

Giờ đây, bạn đã update IP mạng của bạn vào domain, bạn có thể tiến hành ping thử domain của bạn từ ngoài Internet. Bước tiếp theo dưới dây sẽ hướng dẫn các bạn cách mở port modem để có thể truy cập các dịch vụ như Web, FTP, Remote Desktop, SSH từ xa qua internet.

BƯỚC 3: MỞ CỔNG TRÊN MODEM CHO CÁC DỊCH VỤ CƠ BẢN

Các dịch vụ cơ bản thường hay được sử dụng là:

  • Web – Port: 80
  • FTP – Port: 21
  • SSH – Port: 22
  • Remote Desktop: 3389

(Bạn có thể xem danh sách các port và giao thức thường dùng tại đây: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml)

Tại Việt Nam, có khá nhiều hãng thiết bị modem, vì vậy phần hướng dẫn mở cổng trên Modem chúng tôi xin phép không đi vào chi tiết vì mỗi modem sẽ có thiết lập khác nhau. Tuy nhiên, tựu chung thì đều sẽ nằm ở các phần như NAT hay Virtual Server hay Port Forwarding/Port Mapping. Các bạn có thể tìm kiếm trên Google với cú pháp như: “Cách mở port modem ABC”, trong đó ABC là tên modem của nhà bạn.

Ở hình minh họa dưới dây, chúng tôi giới thiệu với modem Huawei của mạng VNPT.

Các bạn truy cập modem, sau đó chọn Forward Rules, click menu Port Mapping Configuration rồi bấm nút New.

Truy cập Forward Rules trên modem Huawei để mở cổng.
Truy cập Forward Rules trên modem Huawei để mở cổng.

Tiếp theo, việc bạn cần làm là thiết lập để RPI của bạn được mở các cổng cần thiết. Bạn bấm nút New để tạo thêm các rule cho từng dịch vụ như web, FTP, SSH, ..

Thiết lập mở cổng cho RPI
Thiết lập mở cổng cho RPI

Một số hướng dẫn cho mở cổng:

  • Type: Bạn có thể tự định dạng dịch vụ bằng cách chọn User-defined hoặc lựa chọn các dịch vụ có sẵn mà modem hỗ trợ bằng cách bấm vào lựa chọn Application và chọn dịch vụ tương ứng bên cạnh. Ví dụ bạn bấm Application và chọn Web Server (HTTP) để mở cổng cho dịch vụ web.
  • Enable Port Mapping: Cái này phải tick chọn
  • Mapping Name: Đặt tên thôi, bạn đặt là gì cũng được, miễn là nó dễ nhớ.
  • WAN Name: Giữ nguyên mặc định
  • Internal Host: Bạn gõ địa chỉ IP máy RPI của bạn vào. Nhớ là phải IP tĩnh nhé, cách thiết lập IP tĩnh chúng tôi có giới thiệu ở trên cùng.
  • External Source IP Address: Để trống
  • Protocol: Tùy theo dịch vụ mà bạn chọn giao thức phù hợp. Thường web, FTP, SSH, Remote Desktop sẽ là TCP. Dịch vụ như DNS sẽ là UDP. Bạn cũng có thể chọn cả 2 nếu muốn.
  • Internal port number: Chỗ này quan trọng, bạn cần ghi đúng cổng cho dịch vụ cần mở, phía trên chúng tôi cũng có giới thiệu một số cổng thông dụng.
  • External port number: Trùng với Internal Port Number.

Sau đó các bạn chỉ cần Apply (Save) lại là được.
Việc còn lại, các bạn hãy nhờ bạn bè thử truy cập RPI của bạn xem đã vào được chưa.

Chúc các bạn thành công.

Nếu có gì chưa rõ, các bạn có thể:

  • Hỏi chúng tôi qua inbox fanpage Raspberry Pi Việt Nam
  • Hỏi các bạn trên group Cộng đồng Raspberry Pi Việt Nam
  • Liên hệ chúng tôi qua email info@raspberrypi.vn
  • Hoặc gọi điện cho kỹ thuật của chúng tôi theo số: 092.707.8688