Mấy hôm trước mình nhặt được 1 con Pi của đứa bạn bỏ không, con máy hơn 9 tuổi. Dự định mua về vọc làm cái hệ thống giám sát Camera thôi nhưng chưa rảnh để làm.

Mấy hôm nay sự cố cáp quang hay Internet gì đó mà 3G, 4G rất chậm, không xem được phim. Mạng ở nhà của mình thì dùng gói cước cao cấp của FPT có IP tĩnh và cam kết băng thông quốc tế. Nhưng ở nhà trọ mình chỉ dùng 4G và tốc độ cực tệ. Vì vậy nảy ra ý tưởng dùng Raspi làm VPN server ở nhà.
Thật ra cái router dd-wrt hay openwrt đều có thể hỗ trợ làm VPN. Nhưng mình sợ làm brick con modem lại mệt nên chọn cách an toàn.
Hệ thống của mình bao gồm: 1 Raspi 1 B, nguồn điện (cung cấp nhiều cổng ra dự phòng mất điện có thể kéo cả router + converter), theo mình tính thì với công suất hiện tại có thể kéo được 2 tiếng.

Mình cài Raspberry Pi OS bằng hướng dẫn trên trang chính thức, dù là phiên bản mới nhất vẫn chạy được trên phần cứng cũ nhất.
https://www.raspberrypi.org/documentation/installation/installing-images/

Do mình chưa bao giờ xà RasPi nên thử cắm vô màn hình với bàn phím ra sao, ai ngờ vẫn chạy được sau gần 10 năm :D. Tuy nhiên cần tạo file ssh ở thư mục boot loader của thẻ SD để bật SSH server.

Sau khi gắn vào dây LAN mình phải khai báo DHCP Reservation để giữ IP cho máy + thêm port forwarding UDP 51820 về máy (Lúc đầu định dùng OpenVPN, nhưng sau đó mới biết có wireguard).
Sau đó thì dùng https://pivpn.io để cài VPN. Trước giờ mình chỉ dùng OpenVPN tuy nhiên sau khi đọc về Wireguard thì cũng thích xài thử, vì nghe đâu nó nhỏ nhẹ mà chạy nhanh hơn.
Vào khi cài nó sẽ hỏi 1 vài thông tin, hoặc là upgrade firmware của Pi, nếu thích bạn cứ Upgrade nhưng hơi lâu 1 xíu.
Sau khi cài xong hết, bạn có thể dùng lệnh `pivpn add` để thêm 1 profile mới, có thể chép profile này về add thủ công vào máy muốn xài. Với Android chó thể dùng QRCode theo hướng dẫn ở đây: https://serversideup.net/generating-wireguard-qr-codes-for-fast-mobile-deployments/
1 vài lưu ý trong file cấu hình:
- Mục: AllowedIPs = 0.0.0.0/0
Chỉ dùng IPv4 trong đây, nếu cho thêm IPv6 vào có thể bị lỗi không kết nối được.
- Mục DNS để DNS của các dịch vụ SmartDNS .
- Để xem các kết nối có tới server chưa sử dụng lệnh với quyền root :
wg show
- Nếu vì 1 lý do gì đó mà pivpn kết nối được nhưng không thể vào internet, có thể là lỗi iptables, sử dụng lệnh sau đây để tự kiểm tra và sửa:
pivpn -d
Kết quả khi sửa có thể là
:: [OK] IP forwarding is enabled
:: [ERR] Iptables MASQUERADE rule is not set, attempt fix now? [Y/n]
Done
:: [OK] WireGuard is running
:: [OK] WireGuard is enabled (it will automatically start on reboot)
SmartDNS là gì? Tại sao có thể dùng thay được VPN để xem DisneyPlus?
Nhiều bạn bảo chỉ có VPN đổi IP mới xem được Netflix ở US hoặc Disneyplus. Nhưng thật ra cơ chế xác định vùng địa lý của các dịch vụ phim sử dụng CDN DNS chứ ít khi dựa vào cơ sở dữ liệu IP. Bởi vì lý do duy nhất: Chi phí rẻ.
Nếu dùng IP thì các công ty phải tốn tiền server lưu trữ, băng thông rất nhiều. Trong khi giá của các dịch vụ CDN lại rẻ hơn rất nhiều (https://ns1.com/resources/how-geographic-routing-works) vì vậy họ chấp nhận sử dụng các phương pháp không chính xác bằng.
Có nhiều giải pháp SmartDNS, hiện tại thì mình dùng của KeepSolid giá khoảng $20 1 năm (https://my.keepsolid.com/pricing/smartdns/), các bạn có thể tìm giá rẻ hơn thì cho mình biết vì mình cũng lười tìm.
Với giải pháp này mỗi lần bật đổi IP các bạn phải vào App để đăng kí IP cho DNS nếu không sẽ không sử dụng được, ngoài ra DNS các dịch vụ này thì chậm hơn các dịch vụ khác (1.1.1.1 hay 8.8.8.8) cho các website VN, vì vậy thường mình phải đổi qua đổi lại DNS. Các này dùng vẫn được nhưng với mình khá là phiền phức mỗi lần muốn xem phim.
Khi kết hợp SmartDNS với Wireguard, thì chỉ khi mình kết nối VPN, thì DNS sẽ được tự động đổi, ngắt kết nối thì DNS vẫn bình thường. Do nhà mình sử dụng IP tĩnh, cho nên không cần đăng kí IP mới với SmartDNS. Và do có cam kết quốc tế, cho nên không sợ bị bóp băng thông quốc tế nếu dùng 4G hoặc Wifi free. Ngoài ra kết nối này đảm bảm Secure 100% khi dùng Wifi công cộng.
Thêm 1 cái nữa là mình có thể chia sẻ tài khoản VPN và Disney cho bạn bè hoàn toàn hợp lệ (1 tài khoản 1 IP cho nhiều người xài :D).
Sắp tới mình dự định sẽ cắm hệ thống Camera quan sát này vào để làm báo động tự động khi có người vào nhà :D.

Raspi: Chôm của bạn.
Thẻ nhớ mua đầu ngõ nhà https://cellphones.com.vn/the-nho-sandisk-64gb-class-10-100mbs.html
Dây cáp LAN, dây USB + adapter thẻ nhớ nhặt đâu đó trong nhà.
Tuyệt vời lắm Trúc. Viết bài nhiều hơn đi chứ. Ít ra cũng nên mỗi tháng 1 bài cho anh em hóng hớt với.
Để em viết thêm 😛