Bài viết này sẽ giới thiệu và hướng dẫn cách thiết lập P2P một cách đơn giản trên các thiết bị bằng Netbird. Giờ thì... bắt đầu thôi!
Netbird là gì nhỉ?
Thật sự thì mình cũng mới được thằng bạn giới thiệu Netbird trong thời gian gần đây, nhưng sự tiện lợi và hiệu năng của thằng này nó xịn xò đến mức mình phải viết một bài như thế này để mang Netbird đến với nhiều người hơn.
Để hiểu nó là gì, thì ta chỉ cần biết rằng, Netbird tạo ra một mạng giúp các thiết bị (các peer) có thể nhìn thấy được nhau, giao tiếp được với nhau. Và điều này sẽ cực kỳ tiện lợi nếu bạn đang setup một homelab để học hành các kiểu, hay có thể là NAS server tự chế, home server để làm project cá nhân,...
Setup Netbird
Tạo tài khoản Netbird (admin account)
- Truy cập vào Netbird Dashboard ở đây và tạo tài khoản: https://app.netbird.io/
Mình có tài khoản Microsoft/Google nên chọn luôn cho tiện đỡ phải Sign Up
- Sau khi đã hiện tương tự thế này tức là mình đã thành công Login nhé
- Optional: Thêm các account phụ vào làm Member follow theo guide này: https://docs.netbird.io/how-to/add-users-to-your-network#direct-user-invites Lưu ý rằng, phần Email khi Invite một người phải là Email chưa tạo tài khoản Netbird nào, sau đó thì Email này sẽ nhận được link đăng ký tài khoản Netbird.
Cái này kiểu như là setup IAM account trên cloud ấy, còn admin account mình để làm Root account quản lý các member. Mặc định bản free của Netbird sẽ cho connect 5 users và 100 thiết bị. Một user thì mình login với nhiều thiết bị được.
Cài đặt Netbird
Follow theo bí kíp thần công chính hãng của Netbird, hoặc như mình tóm gọn ở đây cho nhanh.
- Linux:
curl -fsSL https://pkgs.netbird.io/install.sh | sh
- MacOS:
- Intel: https://pkgs.netbird.io/macos/amd64
- Chip M: https://pkgs.netbird.io/macos/arm64
- Homebrew một dòng:
brew install netbirdio/tap/netbird
- Windows: https://pkgs.netbird.io/windows/x64 hoặc https://pkgs.netbird.io/windows/msi/x64
- Android hay iOS: lên Google Play Store hay App Store tìm Netbird P2P VPN
Connect đến Netbird
Bằng UI/GUI
- Ở device đầu tiên (mình tạm gọi là peer A), mở terminal lên và chạy:
netbird up
-
Nó sẽ direct mình đến trang đăng nhập tương tự ban nãy, login vào admin/member account thôi.
-
Ở device tiếp theo (mình gọi là peer B), các bạn có thể dùng một wifi hay mạng khác cho device này để test, cũng thực hiện
netbird up
và login tương tự cùng một account với peer A. -
Đến bước này, về cơ bản hai device đã có thể giao tiếp với nhau, ta lên Netbird dashboard ở https://app.netbird.io/peers và tìm private IP của các thiết bị còn lại trong mạng Netbird.
- Thử SSH vào từ máy còn lại hoặc start một service nginx ở port 80 và test thử thôi.
Ví dụ như usecase của mình là access vào Airflow nằm trên port 8080 của home server
Bằng CLI
Do default lệnh netbird up
sẽ mở browser và cần login, vậy nên các linux server sẽ không thể nào setup được bằng cách này. Vì vậy Netbird có cung cấp một method khác để login nữa đó là dùng Setup Keys.
- Cũng tại Netbird Dashboard https://app.netbird.io, ta chọn vào mục Setup Keys
- Nhấn vào nút Create Setup Key màu cam ở góc phải màn hình, ở cửa sổ hiện lên nhập tên Key và chọn group All để dễ setup (các group nhỏ hơn có thể setup sau). Expires tùy chỉnh.
-
Nhấn Create Setup Key và lưu/copy key vừa hiện lên vào một chỗ, vì cái này sẽ không hiện lại nữa.
-
Vào linux server và gõ lệnh:
netbird up --setup-key <KEY VỪA TẠO BÊN TRÊN>
- Vậy là xong, thử test SSH vào server từ máy tính local nhé.