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ó:
- Một máy Raspberry Pi 2 hoặc Raspberry Pi 3 được thiết lập địa chỉ IP nội bộ là IP tĩnh (xem thêm Thiết lập IP tĩnh cho Raspberry Pi), có kết nối internet và đã cài đặt hệ điều hành. Bài viết này hướng dẫn với hệ điều hành Raspbian, bạn cũng có thể thực hiện tương tự với Ubuntu hoặc Pidora, .. Bạn có thể tham khảo bài viết Hướng dẫn cài đặt hệ điều hành NOOBS cho Raspberry Pi và Thiết lập địa chỉ IP tĩnh cho Raspberry Pi để có bước chuẩn bị thành công.
- Quyền kiểm soát modem tại nhà của bạn
- Một domain có quyền quản lý DNS.
- Một cốc cafe để thưởng thức trong quá trình setup.
CÁC BƯỚC THỰC HIỆN
- Đăng ký domain
- Cấu hình dịch vụ Dynamic DNS (Dyn DNS)
- Mở cổng trên modem để truy cập từ xa
THỰC HIỆN
BƯỚC 1: ĐĂNG KÝ DOMAIN
- 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.
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/.
Sau khi đăng ký xong, bạn truy cập menu [Dynamic DNS] ở bên trái
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.
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.
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.
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, ..
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