Nếu bạn cắm dây mạng trực tiếp giữa macOS và Raspberry Pi, bạn có thể thiết lập một mạng cục bộ giữa hai thiết bị mà không cần router, và việc truyền file qua dây mạng sẽ nhanh hơn so với Wi-Fi. Dưới đây là các bước thực hiện để truyền file qua dây mạng với tốc độ cao:
Bước 1: Kết nối mạng Ethernet trực tiếp
Cắm dây mạng Ethernet từ macOS sang Raspberry Pi. Điều này sẽ thiết lập kết nối mạng trực tiếp giữa hai thiết bị.
Bước 2: Cấu hình IP thủ công cho cả hai thiết bị
Trên macOS:
Mở System Settings > Network.
Chọn Ethernet hoặc USB Ethernet (nếu dùng adapter USB-Ethernet).
Nhấn vào Details (hoặc Advanced) > TCP/IP.
Chọn Manually trong phần Configure IPv4.
Đặt địa chỉ IP cho macOS, ví dụ: 192.168.2.1.
Subnet mask: 255.255.255.0.
Trên Raspberry Pi:
Mở Terminal trên Pi (hoặc kết nối SSH từ macOS).
Đặt địa chỉ IP tĩnh cho Pi bằng cách chỉnh sửa file:
sudo nano /etc/dhcpcd.conf
Thêm dòng sau để đặt IP tĩnh cho Pi:
interface eth0
static ip_address=192.168.2.2/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1
Lưu lại và khởi động lại mạng bằng lệnh:
sudo service dhcpcd restart
Bước 3: Kiểm tra kết nối
Trên macOS, mở Terminal và chạy lệnh ping để kiểm tra kết nối tới Raspberry Pi (Tắt wifi trên macbook và pi):
ping 192.168.2.2
Lưu ý: Tắt wifi cả 2 thiết bị: Trên macOS: Tắt Wi-Fi bằng cách nhấp vào biểu tượng Wi-Fi trên thanh menu và chọn Turn Wi-Fi Off.
Trên Raspberry Pi: Bạn có thể tắt Wi-Fi bằng lệnh sau trong Terminal:
sudo ifconfig wlan0 down
Nếu bạn nhận được phản hồi, có nghĩa là kết nối đã thiết lập thành công.
Bước 4: Truyền file bằng SCP hoặc Rsync
Sau khi kết nối thành công, bạn có thể dùng SCP hoặc Rsync để truyền file với tốc độ cao qua dây mạng.
Lưu ý tắt mạng wifi của PI và mac
Dùng SCP:
scp /path/to/local/file pi@192.168.2.2:/path/to/remote/directory
Dùng Rsync:
rsync -avz /path/to/local/file pi@192.168.2.2:/path/to/remote/directory
Sau khi hoàn tất, bạn có thể truyền file với tốc độ cao qua kết nối trực tiếp này.
Giải thích:
static ip_address=192.168.2.2/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1
Những thông tin này được cấu hình thủ công để tạo ra một mạng cục bộ giữa macOS và Raspberry Pi khi bạn sử dụng kết nối qua dây mạng Ethernet. Bạn không cần phải "lấy" những thông tin này từ đâu mà sẽ tự định nghĩa chúng. Dưới đây là cách hiểu và cấu hình những thông tin này:
- static ip_address=192.168.2.2/24:
Đây là địa chỉ IP tĩnh mà bạn sẽ đặt cho Raspberry Pi trong mạng cục bộ mà bạn đang tạo.
Bạn có thể chọn bất kỳ địa chỉ IP nào trong dải IP cục bộ, miễn là nó không xung đột với các thiết bị khác.
Cấu hình 192.168.2.2/24 có nghĩa là địa chỉ IP của Raspberry Pi là 192.168.2.2, và /24 là subnet mask 255.255.255.0 (cấu hình này phổ biến cho mạng gia đình).
- static routers=192.168.2.1: Đây là địa chỉ của router (gateway) trong mạng cục bộ.
Trong trường hợp này, vì bạn đang thiết lập một kết nối trực tiếp giữa macOS và Raspberry Pi qua dây mạng, macOS sẽ đóng vai trò "router".
Bạn sẽ đặt địa chỉ IP của macOS làm router, ví dụ là 192.168.2.1.
- static domain_name_servers=192.168.2.1:
Đây là địa chỉ của DNS server. Trong mạng đơn giản này, bạn có thể sử dụng địa chỉ IP của macOS (192.168.2.1) làm DNS server.
Nếu bạn không cần truy cập internet từ Raspberry Pi qua Ethernet, thông tin này có thể không quá quan trọng.
Tuy nhiên, việc đặt cùng địa chỉ với router sẽ giúp việc truy cập internet qua kết nối cục bộ (nếu macOS có kết nối internet qua Wi-Fi) dễ dàng hơn.
Ví dụ cấu hình: Giả sử bạn muốn đặt cấu hình như sau:
macOS có địa chỉ IP Ethernet là 192.168.2.1.
Raspberry Pi sẽ có địa chỉ IP Ethernet là 192.168.2.2.
Trong file dhcpcd.conf trên Raspberry Pi, bạn sẽ thêm cấu hình sau:
interface eth0
static ip_address=192.168.2.2/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1
Với macOS, bạn sẽ vào System Settings > Network > Ethernet và đặt IP tĩnh cho macOS như sau:
IPv4 Address: 192.168.2.1
Subnet Mask: 255.255.255.0
Sau khi hoàn tất, hai thiết bị sẽ có thể giao tiếp với nhau qua địa chỉ IP đã cấu hình qua kết nối Ethernet.
Lưu ý 2: Trên Pi có thể gặp 1 số lỗi:
Failed to restart dhopcd.service: Unit dhopcd.service not found.
sudo service dhcpcd restart không hoạt động trên Raspberry Pi, có thể Raspberry Pi của bạn đang sử dụng một dịch vụ quản lý mạng khác, hoặc dhcpcd không được cài đặt sẵn.
Trước tiên, hãy thử các bước sau để kiểm tra và khắc phục:
sudo systemctl status dhcpcd
Nếu dhcpcd không được cài đặt, bạn có thể cài đặt lại nó bằng lệnh:
sudo apt update
sudo apt install dhcpcd5
Sau đó, khởi động lại dịch vụ dhcpcd:
sudo systemctl restart dhcpcd
Sử dụng ifconfig hoặc ip để cấu hình tạm thời
sudo ifconfig eth0 192.168.2.2 netmask 255.255.255.0
Lệnh này sẽ đặt địa chỉ IP tĩnh cho giao diện Ethernet (eth0). Tuy nhiên, cấu hình này sẽ bị mất khi bạn khởi động lại Raspberry Pi,
do đó, bạn vẫn cần cấu hình IP tĩnh vĩnh viễn bằng cách chỉnh sửa file /etc/dhcpcd.conf hoặc sử dụng NetworkManager nếu cần.
Kiểm tra băng thông mạng
Để kiểm tra băng thông mạng giữa hai thiết bị, bạn có thể sử dụng công cụ iperf. Iperf là một công cụ đo lường băng thông mạng mạnh mẽ và linh hoạt, cho phép bạn kiểm tra tốc độ truyền dữ liệu giữa hai máy tính hoặc thiết bị mạng.
Trên Pi
sudo apt install iperf3
iperf3 -s
Trên mac
brew install iperf3
iperf3 -c <IP của Raspberry Pi>