IoTLabs

Nghiên cứu, Sáng tạo và Thử nghiệm

Series: Raspberry Pi OS – Bài 9: Kết nối Wi-Fi, Ethernet và kiểm tra mạng trên Raspberry Pi

> Phần 3 — Mạng và truy cập từ xa

Kết nối mạng là phần nền tảng nếu bạn muốn dùng Raspberry Pi để cập nhật hệ thống, cài phần mềm, SSH từ xa, gửi dữ liệu IoT, chạy MQTT, truy cập web dashboard, hoặc dùng như mini server. Tài liệu chính thức của Raspberry Pi cho biết bạn có thể dùng Raspberry Pi như một máy tính có desktop hoặc một máy headless chỉ truy cập qua mạng, và khi cài bằng Raspberry Pi Imager bạn có thể preconfigure sẵn network connection, cùng với hostname, user account và SSH.

Mục tiêu sau bài học

Sau khi hoàn thành bài này, bạn nên đạt được các mục tiêu sau:

  • hiểu khi nào nên dùng Wi-Fi và khi nào nên dùng Ethernet
  • biết cách kết nối Raspberry Pi vào mạng bằng Wi-Fi hoặc dây mạng
  • biết cách kiểm tra Raspberry Pi đã có IP hay chưa
  • biết các lệnh cơ bản để kiểm tra trạng thái mạng
  • hiểu vì sao hostname, IP và SSH liên quan chặt chẽ với nhau
  • tránh được một số lỗi mạng rất hay gặp khi mới bắt đầu

Có những cách kết nối mạng nào trên Raspberry Pi?

Với nhu cầu cơ bản, bạn sẽ dùng một trong hai cách chính:

  • Wi-Fi
  • Ethernet

Nếu bạn dùng Raspberry Pi theo kiểu headless, mạng gần như là “màn hình và bàn phím gián tiếp” của bạn, vì sau khi có mạng bạn mới SSH vào được. Raspberry Pi documentation cũng mô tả rõ luồng truy cập từ xa bằng SSH trong cùng mạng nội bộ.

Khi nào nên dùng Wi-Fi?

Wi-Fi phù hợp khi:

  • bạn muốn đặt Raspberry Pi linh hoạt, ít dây
  • bạn làm project IoT, sensor node, dashboard node
  • bạn không tiện kéo dây mạng
  • bạn muốn setup headless nhanh bằng Raspberry Pi Imager

Raspberry Pi documentation cho biết trong phần cấu hình hệ thống bạn có thể cấu hình Wireless LAN, gồm SSID và passphrase.

Khi nào nên dùng Ethernet?

Ethernet phù hợp khi:

  • bạn cần kết nối ổn định hơn
  • bạn muốn giảm lỗi do nhập sai Wi-Fi
  • bạn làm mini server, NAS nhỏ, gateway hoặc máy test lâu dài
  • bạn muốn setup lần đầu ít rủi ro hơn

Trong thực tế, Ethernet thường dễ debug hơn Wi-Fi vì chỉ cần cắm dây và chờ router cấp IP qua DHCP là có thể dùng ngay trong phần lớn mạng nội bộ. Raspberry Pi documentation cũng đặt việc truy cập SSH và tìm IP như các thao tác chuẩn sau khi thiết bị vào mạng.

Trên Raspberry Pi OS mới, mạng được quản lý theo kiểu nào?

Với Raspberry Pi OS dòng Bookworm trở lên, cộng đồng kỹ thuật Raspberry Pi cho biết mặc định hệ thống dùng NetworkManager để quản lý mạng. Điều này rất quan trọng vì nhiều bài hướng dẫn cũ vẫn nói về cách cấu hình mạng theo kiểu cũ như dhcpcd.conf hoặc wpa_supplicant.conf, trong khi trên Raspberry Pi OS mới, cách làm thường xoay quanh NetworkManager, nmcli hoặc nmtui.

Nói ngắn gọn:

  • bài cũ có thể hướng bạn sửa file cũ
  • bản Raspberry Pi OS mới thường đi theo NetworkManager

Cách 1: cấu hình Wi-Fi ngay từ Raspberry Pi Imager

Đây là cách tốt nhất cho người mới làm headless.

Khi ghi Raspberry Pi OS bằng Imager, bạn có thể điền sẵn:

  • tên Wi-Fi
  • mật khẩu Wi-Fi
  • quốc gia Wi-Fi
  • hostname
  • user
  • SSH

Raspberry Pi documentation xác nhận rõ rằng bạn có thể preconfigure network connection ngay từ lúc cài hệ điều hành.

Cách này giúp bạn tránh lỗi:

  • boot lên nhưng chưa có mạng
  • không biết IP của Pi
  • chưa bật SSH
  • phải cắm màn hình chỉ để nối Wi-Fi

Cách 2: nối Wi-Fi sau khi máy đã boot

Nếu Raspberry Pi đã boot xong và bạn đang dùng desktop, bạn có thể dùng phần giao diện mạng. Nếu bạn đang ở terminal hoặc headless, với Raspberry Pi OS mới thì hướng thực tế là dùng NetworkManager, thường qua nmtui hoặc nmcli. Cộng đồng Raspberry Pi đã nêu khá rõ rằng Bookworm mặc định dùng NetworkManager và nmtui là công cụ dễ bắt đầu từ terminal.

Một cách thân thiện trong terminal là:

sudo nmtui

Sau đó chọn kết nối Wi-Fi, nhập SSID và mật khẩu.

Cách 3: dùng Ethernet

Ethernet là cách đơn giản nhất để có mạng. Chỉ cần:

  • cắm dây mạng từ router hoặc switch vào Raspberry Pi
  • chờ vài giây
  • kiểm tra IP

Trong đa số mạng nội bộ, router sẽ cấp IP qua DHCP. Trên diễn đàn Raspberry Pi, nhiều trao đổi kỹ thuật cũng xem DHCP là cách đơn giản và ít lỗi hơn cho giai đoạn đầu.

Làm sao biết Raspberry Pi đã có mạng chưa?

Sau khi cắm Wi-Fi hoặc Ethernet, bạn nên kiểm tra ba thứ:

  • interface đã lên chưa
  • Raspberry Pi đã có địa chỉ IP chưa
  • có ra internet hoặc nhìn thấy gateway chưa

Một số lệnh cơ bản rất hữu ích.

Kiểm tra nhanh địa chỉ IP

ip a

Lệnh này cho bạn thấy các interface mạng như Wi-Fi và Ethernet cùng địa chỉ IP nếu đã được cấp.

Nếu bạn muốn xem route mặc định:

ip route

Điều này giúp biết Raspberry Pi đang đi internet qua interface nào.

Làm sao phân biệt Wi-Fi và Ethernet?

Thông thường bạn sẽ thấy:

  • wlan0 cho Wi-Fi
  • eth0 cho Ethernet

Nếu một interface có dòng inet ... thì nghĩa là nó đã có IPv4 address. Nếu không có địa chỉ IP, khả năng cao kết nối chưa hoàn tất.

Cách kiểm tra hostname

Bạn có thể xem hostname hiện tại bằng:

hostname

Tài liệu cấu hình của Raspberry Pi cho biết hostname là tên mDNS hiển thị của Raspberry Pi trên mạng. Điều này liên quan trực tiếp đến việc bạn SSH bằng tên máy thay vì phải nhớ IP. (Raspberry Pi)

Ví dụ nếu hostname là:

pi-study-01

thì trong nhiều mạng nội bộ bạn có thể SSH bằng:

ssh user@pi-study-01.local

Raspberry Pi documentation và các hướng dẫn remote access đều xoay quanh mô hình truy cập như vậy trong LAN.

Nếu .local không chạy thì sao?

Không phải môi trường nào cũng resolve .local giống nhau. Trong một số trường hợp, hostname có thể hoạt động không ổn định, đặc biệt nếu thiết bị đồng thời có cả Wi-Fi lẫn Ethernet hoặc nếu máy client xử lý mDNS khác nhau. Trên Raspberry Pi Forums cũng có các thảo luận về việc truy cập bằng hostname .local khi Pi đồng thời nối cả Ethernet lẫn Wi-Fi.

Khi đó, cách thực tế nhất là dùng IP trực tiếp:

ssh user@192.168.1.120

Làm sao tìm IP của Raspberry Pi?

Raspberry Pi có hẳn mục tài liệu riêng về Find the IP address of your Raspberry Pi, cho thấy đây là thao tác rất cơ bản trong quy trình remote access.

Bạn có thể tìm IP bằng các cách sau:

  • trên chính Raspberry Pi: ip a
  • xem danh sách DHCP clients trong router
  • dùng hostname .local
  • dùng công cụ quét mạng trong LAN

Một quy trình kiểm tra mạng cơ bản

Sau khi kết nối Wi-Fi hoặc cắm Ethernet, bạn có thể chạy lần lượt:

Bước 1: xem interface và IP

ip a

Bước 2: xem đường đi mặc định

ip route

Bước 3: kiểm tra hostname

hostname

Bước 4: thử ping gateway hoặc internet

ping -c 4 8.8.8.8

Bước 5: thử ping tên miền

ping -c 4 raspberrypi.com

Nếu ping IP được nhưng ping tên miền không được, có thể vấn đề nằm ở DNS. Nếu cả hai đều không được, có thể Pi chưa ra mạng.

Dùng Wi-Fi hay Ethernet cho project thực tế?

Với project học tập cơ bản

Wi-Fi thường tiện hơn vì gọn dây.

Với mini server hoặc gateway

Ethernet thường đáng tin hơn.

Với project cần vừa tiện vừa ổn

Bạn có thể setup Ethernet khi cấu hình ban đầu, sau đó mới chuyển sang Wi-Fi khi mọi thứ đã ổn.

Với headless setup lần đầu

Preconfigure Wi-Fi trong Imager là rất tiện, nhưng nếu hay gặp lỗi, Ethernet vẫn là phương án debug dễ nhất. Raspberry Pi documentation xác nhận rõ lợi ích của việc preconfigure network connection từ đầu.

Trên Raspberry Pi OS mới nên nhớ gì về NetworkManager?

Đây là điểm rất dễ nhầm:

  • nhiều bài cũ hướng dẫn sửa /etc/dhcpcd.conf
  • nhiều bài cũ hướng dẫn dùng wpa_supplicant.conf
  • nhưng trên Raspberry Pi OS Bookworm trở lên, mặc định thường là NetworkManager

Cộng đồng Raspberry Pi đã nói rất rõ điều này, đồng thời gợi ý dùng nmtui hoặc nmcli thay vì cứ cố làm theo các hướng dẫn cũ.

Nếu bạn đọc một tutorial cũ và thấy không có file hoặc cách làm không còn đúng, đây thường là lý do.

Những lỗi mạng thường gặp

1. Nhập sai Wi-Fi SSID hoặc mật khẩu

Đây là lỗi phổ biến nhất khi setup headless qua Imager. Raspberry Pi documentation xác nhận phần Wireless LAN cần đúng SSID và passphrase.

2. Quên đặt đúng quốc gia Wi-Fi

Thiết lập WLAN country là một phần cấu hình quan trọng trong Raspberry Pi OS.

3. Làm theo hướng dẫn cũ không còn phù hợp

Trên Bookworm và các bản mới, mặc định là NetworkManager, nên các hướng dẫn cũ về mạng có thể không áp dụng nguyên xi nữa.

4. Có IP nhưng SSH không vào được

Khi đó cần kiểm tra thêm:

  • SSH đã bật chưa
  • user đúng chưa
  • hostname đúng chưa
  • đang dùng IP hay .local

Tài liệu remote access của Raspberry Pi đặt SSH là phương thức chuẩn để truy cập terminal từ xa trong cùng mạng.

5. Dùng cả Wi-Fi lẫn Ethernet rồi bị rối đường đi

Khi Pi cùng lúc nối cả hai, nó có thể có hai địa chỉ IP khác nhau. Thảo luận trên Raspberry Pi Forums cho thấy điều này là hoàn toàn có thể xảy ra.

Một cấu hình thực tế mình khuyên dùng

Nếu bạn mới học Raspberry Pi, đây là cách khá an toàn:

Cách đơn giản nhất

  • dùng Raspberry Pi Imager
  • preconfigure hostname, Wi-Fi, user, SSH
  • nếu không vào được, chuyển sang Ethernet để debug

Cách ổn định hơn cho máy học hoặc lab cố định

  • dùng Ethernet trong giai đoạn đầu
  • SSH vào máy bằng IP
  • sau khi ổn định mới thêm Wi-Fi nếu cần

Cách hợp cho IoT gateway

  • ưu tiên Ethernet nếu vị trí lắp cho phép
  • chỉ dùng Wi-Fi khi cần linh hoạt vị trí

Checklist sau khi nối mạng

[ ] Raspberry Pi đã có IP
[ ] Hostname đã đúng
[ ] SSH đã bật nếu cần remote
[ ] Ping IP ngoài được
[ ] Ping tên miền được
[ ] Biết dùng IP hoặc hostname để truy cập

Kết luận

Kết nối Wi-Fi và Ethernet trên Raspberry Pi không khó, nhưng rất dễ bị rối nếu bạn đọc lẫn hướng dẫn cũ và mới. Điều quan trọng nhất cần nhớ là: trên Raspberry Pi OS mới, mạng thường được quản lý theo NetworkManager, còn quy trình headless tốt nhất vẫn là cấu hình sẵn network connection, hostname, user và SSH ngay từ Raspberry Pi Imager. Sau khi thiết bị lên mạng, bạn cần biết cách kiểm tra IP, hostname và trạng thái kết nối để có thể SSH, cập nhật hệ thống và tiếp tục các bài sau.

Bài tiếp theo

Bài 10: SSH vào Raspberry Pi từ Windows, macOS và Linux