Raspberry Pi làm proxy server tại nhà: Squid, 3proxy
Raspberry Pi proxy là cách dùng chiếc máy tính nhỏ này theo hai hướng: cho chính Pi đi ra Internet qua proxy, hoặc biến Pi thành proxy server phục vụ cả mạng gia đình. Pi tiêu thụ điện thấp, chạy cả ngày không tốn kém, rất hợp làm máy chủ nhỏ trong nhà. Bài này ProxyVN hướng dẫn cả hai hướng, từ cài Squid cho HTTP tới 3proxy cho SOCKS5, kèm xác thực, giới hạn mạng LAN và các giới hạn thực tế cần biết. Tham khảo dịch vụ tại ProxyVN.
Tổng quan về Raspberry Pi proxy
Trước khi gõ lệnh, anh em cần xác định mình đang muốn làm hướng nào. Hai hướng dùng chung chữ "proxy" nhưng cấu hình gần như không liên quan tới nhau.
Hai hướng sử dụng khác nhau
Hướng thứ nhất là Pi làm client: Pi nằm trong mạng công ty hoặc trường học bắt buộc đi qua proxy, hoặc anh em muốn Pi chạy công cụ thu thập dữ liệu qua proxy bên ngoài. Lúc này cần cấu hình apt, pip, biến môi trường để mọi lệnh trên Pi đi qua proxy.
Hướng thứ hai là Pi làm server: các thiết bị khác trong nhà như laptop, điện thoại, TV dùng Pi làm proxy. Mục đích có thể là lọc quảng cáo, chặn trang theo giờ cho con nhỏ, ghi nhật ký truy cập, hoặc cho phép truy cập mạng nhà từ xa qua một cổng có kiểm soát.
Chọn đời Pi nào
Theo bài tổng hợp về Raspberry Pi trên Wikipedia, Pi 4 và Pi 5 có cổng Ethernet gigabit đầy đủ, trong khi Pi 3B+ chỉ đạt khoảng 300 Mbit/s. Pi 4 tiêu thụ khoảng 3 W khi rảnh và hơn 6 W khi tải nặng. Pi Zero 2 W rẻ nhất nhưng chỉ có 512 MB RAM và mạng không dây.
Với proxy server phục vụ cả nhà, Pi 4 hoặc Pi 5 cắm dây mạng là lựa chọn hợp lý nhất. Đi qua wifi thì mỗi gói tin phải truyền hai lần trên cùng một sóng, tốc độ giảm rõ rệt. Pi Zero 2 W chỉ hợp cho hướng client hoặc thử nghiệm.
Hệ điều hành
Raspberry Pi OS là hệ điều hành khuyến nghị, dựa trên Debian, có bản 32 bit và 64 bit. Vì cùng gốc Debian, mọi hướng dẫn trong bài cũng áp dụng được cho Ubuntu Server chạy trên Pi. Anh em nên dùng bản Lite không có giao diện đồ hoạ để dành RAM cho dịch vụ, quản trị qua SSH là đủ.
Cấu hình Raspberry Pi proxy cho chính máy Pi

Hai cách dùng proxy với máy tính nhỏ
Đây là hướng thứ nhất, Pi đi ra Internet qua một proxy có sẵn. Mỗi công cụ trên Linux đọc cấu hình proxy theo cách riêng, nên phải đặt ở nhiều chỗ.
Biến môi trường cho phiên làm việc
Phần lớn công cụ dòng lệnh như curl, wget, git, pip đọc các biến môi trường chuẩn. Anh em đặt tạm cho phiên SSH hiện tại:
export http_proxy="http://user:pass@ip-proxy:port"
export https_proxy="http://user:pass@ip-proxy:port"
export no_proxy="localhost,127.0.0.1,192.168.0.0/16,.local"
curl -s https://api.ipify.org
Lệnh cuối in ra IP mà Internet nhìn thấy. Nếu kết quả là IP của proxy là cấu hình đã chạy. Muốn giữ lâu dài, thêm các dòng export vào `~/.bashrc` cho riêng người dùng, hoặc vào `/etc/environment` cho toàn hệ thống, lưu ý tệp này không dùng từ khoá export.
Cấu hình riêng cho apt
Lệnh `sudo apt` không mang theo biến môi trường của người dùng thường, nên cần cấu hình riêng. Theo trang cấu hình apt của Debian, anh em tạo một tệp trong thư mục `/etc/apt/apt.conf.d/`:
sudo tee /etc/apt/apt.conf.d/95proxy <<'EOF'
Acquire::http::Proxy "http://user:pass@ip-proxy:port";
Acquire::https::Proxy "http://user:pass@ip-proxy:port";
EOF
apt-config dump | grep -i proxy
Lệnh `apt-config dump` giúp kiểm tra apt đã nhận cấu hình chưa. Tệp `/etc/apt/apt.conf` cũ vẫn dùng được nhưng đã bị coi là lỗi thời. Hướng dẫn chi tiết cho các bản phân phối dựa trên Debian có trong bài cấu hình proxy Ubuntu.
pip, git và dịch vụ chạy nền
Với pip, ngoài biến môi trường anh em có thể ghi vào tệp `~/.config/pip/pip.conf` dòng `proxy = http://user:pass@ip-proxy:port` trong mục `[global]`. Git có lệnh `git config --global http.proxy` riêng. Các dịch vụ chạy bằng systemd không đọc `.bashrc`, phải thêm dòng `Environment=` trong tệp override của dịch vụ.
Một lỗi hay gặp là quên `no_proxy`. Không có nó, các lệnh gọi tới máy khác trong mạng nhà cũng bị đẩy ra proxy bên ngoài và thất bại. Luôn khai báo dải IP nội bộ trong no_proxy.
Chuẩn bị phần cứng cho Raspberry Pi proxy
Phần còn lại của bài đi theo hướng thứ hai: biến Pi thành proxy server cho các thiết bị trong nhà. Vài bước chuẩn bị giúp hệ thống chạy ổn định lâu dài.
Đặt IP tĩnh trong mạng LAN
Các thiết bị khác sẽ cấu hình proxy trỏ về IP của Pi, nên IP này không được thay đổi. Cách gọn nhất là vào trang quản trị router, tìm mục DHCP Reservation hoặc Static Lease, gán cố định một IP như `192.168.1.50` cho địa chỉ MAC của Pi. Làm ở router đỡ phải sửa cấu hình mạng trên Pi.
Cập nhật và bảo mật cơ bản
Trước khi cài dịch vụ, anh em cập nhật hệ thống và bật vài lớp bảo vệ:
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y ufw
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
sudo ufw enable
Đổi mật khẩu mặc định, chuyển SSH sang đăng nhập bằng khoá nếu được. Tường lửa UFW giới hạn SSH chỉ cho mạng nhà, các cổng proxy sẽ được mở thêm ở phần sau với cùng nguyên tắc.
Chọn phần mềm proxy
Hai lựa chọn phổ biến nhất trên Pi là Squid và 3proxy. Bảng dưới giúp anh em chọn nhanh:
Tiêu chí |
Squid |
3proxy |
|---|---|---|
Giao thức chính |
HTTP, HTTPS qua CONNECT |
HTTP, HTTPS, SOCKS4, SOCKS5 |
Bộ nhớ đệm trang web |
Có, rất mạnh |
Không |
Lọc theo tên miền, giờ |
Rất linh hoạt |
Có, đơn giản hơn |
Độ nặng |
Trung bình |
Rất nhẹ |
Cài đặt trên Pi |
Có sẵn trong kho apt |
Kho riêng hoặc biên dịch |
Cần lọc trang web, đặt giờ truy cập, ghi nhật ký chi tiết thì chọn Squid. Cần SOCKS5 cho ứng dụng, game hay phần mềm không hỗ trợ HTTP proxy thì chọn 3proxy. Hai phần mềm có thể chạy song song trên cùng một Pi ở hai cổng khác nhau.
Cài Squid làm Raspberry Pi proxy cho HTTP

Squid cho thiết bị trong mạng nhà
Squid là proxy HTTP lâu đời và phổ biến nhất trên Linux. Phần lý thuyết về Squid đã có bài Squid proxy là gì, ở đây ProxyVN chỉ tập trung vào cách dựng trên Pi.
Cài đặt
Squid có sẵn trong kho của Raspberry Pi OS, cài một lệnh là xong:
sudo apt install -y squid apache2-utils
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.goc
Gói `apache2-utils` cung cấp lệnh `htpasswd` để tạo mật khẩu ở bước sau. Tệp cấu hình mặc định rất dài với hàng nghìn dòng chú thích, nên sao lưu bản gốc rồi viết một tệp gọn hơn là cách dễ quản lý nhất.
Tệp cấu hình tối giản có xác thực
Tạo người dùng và mật khẩu cho proxy, sau đó viết lại tệp cấu hình:
sudo htpasswd -c /etc/squid/passwords anhem
http_port 3128
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm Proxy nha minh
acl nguoidung proxy_auth REQUIRED
acl mangnha src 192.168.1.0/24
acl SSL_ports port 443
acl Safe_ports port 80 443
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow mangnha nguoidung
http_access deny all
cache_mem 64 MB
maximum_object_size 20 MB
cache_dir ufs /var/spool/squid 2000 16 256
access_log /var/log/squid/access.log squid
Đây là cấu hình mẫu do ProxyVN viết theo cú pháp trong tài liệu cấu hình Squid. Thứ tự các dòng `http_access` rất quan trọng: Squid đọc từ trên xuống và dừng ở dòng khớp đầu tiên. Dòng `deny all` cuối cùng đảm bảo mọi trường hợp không khớp đều bị chặn.
Khởi động và kiểm tra
Kiểm tra cú pháp trước khi nạp lại để tránh dịch vụ không chạy:
sudo squid -k parse
sudo systemctl restart squid
sudo systemctl enable squid
sudo ufw allow from 192.168.1.0/24 to any port 3128 proto tcp
curl -x http://anhem:matkhau@192.168.1.50:3128 https://api.ipify.org
Lệnh curl cuối chạy từ một máy khác trong mạng nhà. Kết quả trả về IP công khai của nhà anh em là proxy đã hoạt động. Lệnh `sudo tail -f /var/log/squid/access.log` hiển thị từng yêu cầu đi qua theo thời gian thực.
Lọc tên miền và đặt giờ truy cập
Squid mạnh ở khả năng lọc. Ví dụ chặn một số trang trong giờ học của con, thêm vào trước dòng `http_access allow`:
acl tranggiaitri dstdomain .tiktok.com .youtube.com
acl giohoc time MTWHF 19:00-21:00
http_access deny tranggiaitri giohoc
Với HTTPS, Squid chỉ thấy tên miền qua yêu cầu CONNECT, không thấy đường dẫn cụ thể. Lọc theo tên miền là đủ cho nhu cầu gia đình. Giải mã HTTPS để lọc sâu hơn đòi hỏi cài chứng chỉ lên mọi thiết bị, phức tạp và không cần thiết.
Cài 3proxy làm Raspberry Pi proxy cho SOCKS5

Proxy SOCKS5 gọn nhẹ có mật khẩu
3proxy là phần mềm rất nhẹ, hỗ trợ cùng lúc HTTP, SOCKS4 và SOCKS5 kể cả UDP. Đây là lựa chọn tốt khi anh em cần SOCKS5 cho phần mềm không hỗ trợ HTTP proxy.
Cài đặt
Theo kho mã 3proxy trên GitHub, dự án có kho apt riêng cho Debian 12 và Ubuntu 22.04 trở lên, cùng các gói .deb trên trang phát hành. Nếu kho không có bản cho kiến trúc của Pi, anh em biên dịch từ mã nguồn, mất khoảng vài phút trên Pi 4:
sudo apt install -y build-essential git
git clone https://github.com/3proxy/3proxy.git
cd 3proxy
ln -s Makefile.Linux Makefile
make
sudo make install
Khi cài bằng Makefile, 3proxy dùng chroot và tệp cấu hình chính nằm ở `/usr/local/3proxy/conf/3proxy.cfg`, có liên kết từ `/etc/3proxy/conf/3proxy.cfg`. Bản cài mặc định mở SOCKS ở cổng 1080 và HTTP ở cổng 3128 có xác thực, chưa có người dùng nào. Lệnh `add3proxyuser` dùng để thêm người dùng.
Cấu hình mẫu cho mạng nhà
Dưới đây là cấu hình minh hoạ do ProxyVN viết, chỉ mở SOCKS5 cho người dùng có mật khẩu và chỉ nhận kết nối từ mạng nhà:
nserver 1.1.1.1
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
log /logs/3proxy.log D
rotate 7
users anhem:CL:matkhaumanh
auth strong
allow anhem 192.168.1.0/24
deny *
socks -p1080
Dòng `auth strong` bắt buộc nhập tên và mật khẩu. Dòng `allow` giới hạn người dùng `anhem` chỉ dùng được khi kết nối từ dải `192.168.1.0/24`. Để không lưu mật khẩu dạng chữ thường, anh em dùng công cụ `3proxy_crypt` tạo mật khẩu băm rồi đổi `CL` thành `CR`.
Kiểm tra và tự khởi động
Mở cổng trên tường lửa và kiểm tra từ máy khác:
sudo ufw allow from 192.168.1.0/24 to any port 1080 proto tcp
curl --socks5-hostname anhem:matkhaumanh@192.168.1.50:1080 https://api.ipify.org
Tham số `--socks5-hostname` yêu cầu phân giải tên miền ở phía proxy, tránh lộ truy vấn DNS. Bản cài từ gói thường kèm sẵn dịch vụ systemd, chỉ cần `sudo systemctl enable --now 3proxy`. Khi sửa cấu hình, gửi tín hiệu SIGUSR1 cho tiến trình để nạp lại mà không ngắt kết nối. Cách dùng SOCKS5 trên các phần mềm có trong bài hướng dẫn sử dụng SOCKS5 proxy.
Kết nối thiết bị vào Raspberry Pi proxy
Dựng xong proxy, việc còn lại là cấu hình các thiết bị trong nhà. Mỗi hệ điều hành có chỗ cài đặt riêng nhưng thông tin cần nhập giống nhau: IP của Pi, cổng, tên đăng nhập và mật khẩu.
Trên máy tính Windows và macOS
Trên Windows, vào Settings, chọn Network & Internet, chọn Proxy, bật Use a proxy server rồi nhập IP `192.168.1.50` và cổng `3128`. Trình duyệt sẽ hiện hộp đăng nhập khi có xác thực. Trên macOS, vào System Settings, chọn mạng đang dùng, vào Details rồi tab Proxies.
Với SOCKS5, Windows không có ô riêng trong phần cài đặt hệ thống. Anh em dùng trình duyệt Firefox có cài đặt SOCKS riêng, hoặc phần mềm hỗ trợ SOCKS5 trực tiếp.
Trên điện thoại
Android và iPhone đều đặt proxy theo từng mạng wifi. Vào cài đặt wifi, chọn mạng nhà, chọn Proxy thủ công rồi nhập IP và cổng của Squid. Điện thoại chỉ hỗ trợ HTTP proxy trong mục này, không có SOCKS5. Khi mang điện thoại ra ngoài, cấu hình này không áp dụng cho mạng khác.
Trên trình duyệt Firefox với SOCKS5
Firefox có phần cài đặt proxy riêng, không phụ thuộc hệ điều hành, và hỗ trợ SOCKS5. Anh em vào Settings, kéo xuống Network Settings, bấm Settings, chọn Manual proxy configuration. Nhập IP của Pi vào ô SOCKS Host, cổng `1080`, chọn SOCKS v5 và tích ô Proxy DNS when using SOCKS v5.
Ô tích cuối cùng giúp truy vấn tên miền cũng đi qua proxy thay vì đi thẳng ra DNS của nhà mạng. Lưu ý Firefox không có ô nhập tên và mật khẩu cho SOCKS5, nên với 3proxy có xác thực, anh em có thể mở thêm một cổng SOCKS riêng chỉ xác thực theo IP: thêm vào cuối tệp các dòng `flush`, `auth iponly`, `allow * 192.168.1.20` rồi `socks -p1081`, máy có IP đó dùng cổng 1081 không cần mật khẩu. Cách khác là dùng tiện ích quản lý proxy hỗ trợ xác thực.
Trên ứng dụng và phần mềm riêng lẻ
Nhiều phần mềm như trình tải tệp, ứng dụng nhắn tin trên máy tính, công cụ lập trình có mục cài đặt proxy riêng. Anh em chỉ cần nhập IP của Pi, cổng và thông tin đăng nhập vào đúng ô HTTP hoặc SOCKS5. Với phần mềm không có mục proxy nào, công cụ như Proxifier có thể ép toàn bộ kết nối của phần mềm đó đi qua proxy trên Pi.
Cấu hình tự động bằng tệp PAC
Khi nhà có nhiều thiết bị, cấu hình tay từng máy khá mất công. Tệp PAC là một đoạn JavaScript nhỏ chỉ định trang nào đi qua proxy, trang nào đi thẳng. Anh em đặt tệp này trên Pi qua một máy chủ web nhẹ, rồi trên mỗi thiết bị chỉ cần nhập một đường dẫn duy nhất.
Truy cập Raspberry Pi proxy từ xa an toàn
Nhiều anh em muốn dùng proxy ở nhà khi đang ở ngoài, ví dụ để có IP nhà khi đăng nhập tài khoản ngân hàng hay quản trị. Đây là chỗ dễ mắc lỗi bảo mật nghiêm trọng nhất.
Không mở proxy ra Internet không xác thực
Một proxy mở ra Internet không có mật khẩu sẽ bị các công cụ quét tìm thấy trong vài giờ. Kẻ xấu sẽ dùng IP nhà anh em để spam, tấn công hay làm việc phạm pháp, và người chịu trách nhiệm trước nhà mạng là chủ IP. Không bao giờ chuyển cổng proxy ra Internet khi chưa có xác thực và giới hạn IP nguồn.
Ngay cả khi có mật khẩu, mở cổng proxy trực tiếp vẫn để lộ dịch vụ trước các cuộc dò mật khẩu. Thao tác chuyển cổng trên router và rủi ro đi kèm được giải thích trong bài port forwarding là gì.
Dùng VPN hoặc đường hầm SSH
Cách an toàn hơn là dựng VPN như WireGuard trên Pi, chỉ mở một cổng UDP cho VPN. Khi ở ngoài, điện thoại kết nối VPN về nhà trước, sau đó dùng proxy như đang ở trong mạng LAN. Cổng proxy không bao giờ lộ ra Internet.
Với nhu cầu tạm thời, đường hầm SSH cũng là lựa chọn gọn. Lệnh `ssh -D 1080 user@ip-nha` tạo một SOCKS5 cục bộ đi qua kết nối SSH đã mã hoá, không cần cài thêm phần mềm proxy nào.
Kết hợp Raspberry Pi proxy với chặn quảng cáo
Nhiều anh em mua Pi lần đầu để chạy Pi-hole, công cụ chặn quảng cáo bằng DNS rất nổi tiếng. Proxy và Pi-hole chạy chung một máy được, và bổ trợ nhau khá tốt nếu hiểu mỗi thứ làm gì.
Chặn bằng DNS và chặn bằng proxy khác nhau thế nào
Pi-hole chặn ở bước phân giải tên miền: thiết bị hỏi địa chỉ của một tên miền quảng cáo, Pi-hole trả về địa chỉ rỗng, quảng cáo không tải được. Cách này áp dụng cho mọi thiết bị dùng Pi làm DNS, kể cả TV và ứng dụng không hỗ trợ proxy.
Proxy chặn ở bước kết nối: thiết bị phải gửi yêu cầu qua proxy, proxy so tên miền với danh sách rồi từ chối. Cách này chỉ áp dụng cho thiết bị đã cấu hình proxy, nhưng bù lại có thể lọc theo người dùng, theo giờ, và ghi nhật ký chi tiết ai vào trang nào.
Cách cho hai dịch vụ chạy chung
Pi-hole dùng cổng 53 cho DNS và cổng 80 cho giao diện quản trị. Squid dùng 3128, 3proxy dùng 1080, không đụng nhau. Anh em chỉ cần cấu hình Squid và 3proxy dùng chính Pi-hole làm máy chủ DNS, khi đó lưu lượng đi qua proxy cũng được lọc quảng cáo.
Trong Squid, thêm dòng `dns_nameservers 127.0.0.1`. Trong 3proxy, đổi dòng `nserver` thành `nserver 127.0.0.1`. Như vậy mọi truy vấn tên miền từ hai proxy đều đi qua Pi-hole trước. Một chiếc Pi 4 xử lý cả ba dịch vụ này cho một gia đình mà vẫn còn dư tài nguyên.
Sửa lỗi thường gặp với Raspberry Pi proxy
Phần lớn lỗi khi dựng proxy trên Pi rơi vào bốn nhóm: dịch vụ không khởi động, thiết bị không kết nối được, bị hỏi mật khẩu liên tục, và tốc độ chậm. Mỗi nhóm có cách kiểm tra riêng.
Dịch vụ không khởi động
Khi `systemctl status squid` báo failed, nguyên nhân gần như luôn là lỗi cú pháp trong tệp cấu hình. Lệnh `sudo squid -k parse` chỉ ra dòng sai. Với 3proxy, chạy thẳng tệp nhị phân kèm đường dẫn cấu hình trong cửa sổ dòng lệnh để xem thông báo lỗi trực tiếp, thay vì đoán qua systemd.
Một nguyên nhân khác là cổng đã bị chương trình khác chiếm. Lệnh `sudo ss -tlnp | grep 3128` cho biết chương trình nào đang giữ cổng. Trường hợp hay gặp là cài cả Squid từ kho và 3proxy cùng mở cổng 3128 mặc định.
Thiết bị không kết nối được
Nếu máy khác báo lỗi kết nối bị từ chối, kiểm tra theo thứ tự: dịch vụ có đang chạy không, tường lửa UFW đã mở cổng cho mạng nhà chưa, IP của Pi có đúng như đã gán không. Lệnh `sudo ufw status` liệt kê các quy tắc đang có.
Nếu proxy nhận kết nối nhưng trả lỗi 403 Access Denied, đó là Squid đang chặn theo quy tắc `http_access`. Thường do dải IP trong `acl mangnha` không khớp với mạng thật, ví dụ mạng nhà là `192.168.0.x` mà cấu hình ghi `192.168.1.0/24`.
Bị hỏi mật khẩu liên tục
Trình duyệt hiện hộp đăng nhập mãi không qua thường do tệp mật khẩu sai quyền đọc hoặc sai đường dẫn tới chương trình xác thực. Kiểm tra tệp `/usr/lib/squid/basic_ncsa_auth` có tồn tại không, một số bản đặt ở thư mục khác. Tệp mật khẩu phải cho phép người dùng `proxy` của Squid đọc được.
Tốc độ chậm bất thường
Proxy trên Pi 4 cắm dây xử lý tốt vài trăm Mbit/s. Nếu chậm hơn nhiều, kiểm tra Pi có đang chạy wifi thay vì dây không, thẻ nhớ có đầy không, nhiệt độ có quá cao khiến CPU tự hạ xung không. Lệnh `vcgencmd measure_temp` cho biết nhiệt độ, trên 80 độ C thì nên gắn quạt hoặc tản nhiệt.
Giới hạn thực tế của Raspberry Pi proxy

Giới hạn của proxy tự dựng
Pi là máy chủ nhỏ tuyệt vời cho gia đình, nhưng anh em cần nhìn rõ những gì nó không làm được, tránh kỳ vọng sai.
IP vẫn là IP nhà mạng của anh em
Proxy trên Pi đi ra Internet bằng đúng đường truyền gia đình. Mọi trang web nhìn thấy cùng một IP công khai mà nhà anh em đang dùng. Nó không giúp đổi IP, không giúp ẩn danh với nhà mạng. Muốn có nhiều IP khác nhau cho nhiều tài khoản thì Pi không giải quyết được.
IP nhà mạng còn thường là IP động, thay đổi mỗi khi router khởi động lại. Nhiều nhà mạng còn dùng CGNAT, nhiều thuê bao chung một IP công khai, khi đó chuyển cổng từ ngoài vào gần như không làm được.
Băng thông upload và độ ổn định
Khi dùng từ xa, tốc độ bị giới hạn bởi băng thông upload của gói cước gia đình, thường thấp hơn nhiều so với download. Mất điện, rớt mạng, thẻ nhớ hỏng đều làm proxy ngừng hoạt động. Thẻ nhớ microSD hay hỏng khi ghi nhật ký liên tục, nên dùng ổ SSD qua USB nếu chạy lâu dài.
Khi nào nên thuê proxy thay vì tự dựng
Tự dựng hợp với nhu cầu lọc nội dung trong nhà, học hỏi, hay truy cập mạng nhà từ xa. Nhưng với công việc cần nhiều IP, IP ổn định ở nhiều nhà mạng, hay chạy liên tục không gián đoạn, thuê proxy thương mại tiết kiệm công sức hơn. Bài nên tự build hay thuê proxy có bảng tính chi phí cụ thể.
Khi cần nhiều IP Việt Nam cho công việc, anh em có thể mua proxy Việt Nam tại ProxyVN, gồm dân cư tĩnh Viettel, VNPT, FPT, datacenter và 4G, hỗ trợ HTTP và SOCKS5. Pi ở nhà vẫn giữ vai trò lọc nội dung, còn proxy thuê lo phần IP cho công việc.
Bảo trì Raspberry Pi proxy lâu dài
Một proxy chạy cả năm cần vài thói quen bảo trì đơn giản để không tự dưng ngừng hoạt động vào lúc cần.
Theo dõi nhật ký và dung lượng
Nhật ký truy cập của Squid tăng rất nhanh trong nhà có nhiều thiết bị. Gói Squid trên Debian đã có sẵn cấu hình logrotate, nhưng anh em nên kiểm tra định kỳ dung lượng bằng `df -h`. Bộ nhớ đệm của Squid cũng chiếm chỗ, 2 GB trong cấu hình mẫu là vừa đủ cho gia đình.
Cập nhật bảo mật
Squid và 3proxy đều từng có lỗ hổng bảo mật được vá qua các bản cập nhật. Anh em bật gói `unattended-upgrades` để Pi tự cài bản vá bảo mật. Với 3proxy biên dịch tay, phải tự theo dõi trang phát hành và biên dịch lại khi có bản mới.
Sao lưu cấu hình
Thẻ nhớ có thể hỏng bất cứ lúc nào. Sao lưu thư mục `/etc/squid` và tệp cấu hình 3proxy sang máy khác giúp dựng lại trong mười phút thay vì cả buổi. Một cách gọn hơn là tạo bản sao toàn bộ thẻ nhớ sau khi cấu hình xong, khi hỏng chỉ cần ghi lại sang thẻ mới.
Ngoài ra, ghi chú lại các bước đã làm, cổng đã mở, IP đã gán vào một tệp văn bản. Sau vài tháng không đụng tới, chính anh em cũng sẽ quên mình đã cấu hình những gì. Hướng dẫn tạo máy chủ proxy tổng quát hơn có trong bài cách tạo máy chủ proxy.
Kết luận
Raspberry Pi proxy là dự án nhỏ mà hữu ích: Pi có thể đi ra ngoài qua proxy, hoặc làm proxy server lọc nội dung cho cả nhà với Squid và 3proxy. Luôn bật xác thực, giới hạn mạng LAN, truy cập từ xa qua VPN. Cần nhiều IP cho công việc, hãy liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam bên cạnh Raspberry Pi proxy tự dựng.