Hướng dẫn liên quan
Cho máy chủ Linux và công cụ dòng lệnh đi đường truyền
Cập nhật
Trên Linux có hai con đường, chọn theo nhu cầu. Muốn cả máy đi đường truyền (kéo image Docker, dịch vụ cần truy cập nước ngoài, máy chạy không người trông) thì dùng OpenVPN: một file cấu hình trong /etc/openvpn/client/, khởi động cùng hệ thống. Muốn chỉ vài lệnh đi đường truyền (git, pip, npm, curl) thì dùng Web Proxy: đặt địa chỉ proxy vào biến http_proxy là xong, không thay đổi gì khác. Linux bản desktop còn có thể nhập qua trình quản lý mạng. Bài này nói về cả ba cách, file thông tin đăng nhập và các lệnh kiểm tra.
Cách một: cho cả máy đi đường truyền (OpenVPN)
- Cài ứng dụng. Debian/Ubuntu:
sudo apt install openvpnFedora:sudo dnf install openvpnArch:sudo pacman -S openvpn - Đăng nhập trang web và tải file .ovpn của một khu vực từ trang OpenVPN. File cấu hình cho Linux không nhúng sẵn thông tin đăng nhập (trình quản lý mạng từ chối file có nhúng), nên hãy tạo một file thông tin đăng nhập: hai dòng, dòng đầu là email đăng ký trên trang, dòng sau là mật khẩu. Rồi giới hạn để chỉ mình bạn đọc được:
chmod 600 <credentials-file> - Chép file .ovpn sang /etc/openvpn/client/<region>.conf (<region> là tên khu vực) và thêm đường dẫn file thông tin đăng nhập vào sau auth-user-pass trong file đó.
- Bật và khởi động:
sudo systemctl enable --now openvpn-client@<region>Xem trạng thái:systemctl status openvpn-client@<region>Kiểm tra cổng ra — phải hiện khu vực bạn đã chọn:curl -s https://ipinfo.io/country - Muốn khu vực khác thì tải file cấu hình khác và bật một unit khác; mỗi lúc chỉ chạy một cái.
Cách hai: chỉ cho công cụ dòng lệnh đi đường truyền (Web Proxy)
Địa chỉ proxy lấy ở trang Web Proxy của chúng tôi cùng thông tin đăng nhập được đặt thẳng vào biến môi trường (ký tự đặc biệt trong mật khẩu phải mã hóa URL): export https_proxy=https://user:password@proxy-address export http_proxy=$https_proxy Từ đó curl, wget, git, pip và npm trong shell đó đi đường truyền, không thứ gì khác bị ảnh hưởng.
Docker daemon bỏ qua biến của shell: đặt các dòng Environment= vào /etc/systemd/system/docker.service.d/proxy.conf rồi khởi động lại docker; với apt, đặt Acquire::https::Proxy trong /etc/apt/apt.conf.d/proxy.conf.
Theo thiết kế, cách này không có kết nối nào để mà rớt; không cần root và không đổi bảng định tuyến — hợp với máy chủ công ty và khi chỉ cần tăng tốc tải về; nó lo được các chương trình tôn trọng biến proxy.
Cách ba: Linux desktop qua trình quản lý mạng
- Cài network-manager-openvpn-gnome (bấm một lần trên trang OpenVPN của chúng tôi là mở trung tâm phần mềm).
- Cài đặt (Settings) → Mạng (Network) → VPN → “+” → Nhập từ tập tin (Import from file), chọn file .ovpn, nhập email và mật khẩu tài khoản trên trang, lưu lại.
- Bật tắt VPN từ thanh trên cùng hoặc khay hệ thống. Muốn tự kết nối khi khởi động, đánh dấu “Automatically connect to VPN” (tự động kết nối VPN) trong cài đặt của kết nối có dây hoặc không dây.
Kiểm tra và xử lý sự cố
- Cổng ra — trường country trong kết quả phải là khu vực bạn đã chọn:
curl -s https://ipinfo.io - DNS — giao diện VPN phải hiện DNS do đường truyền cấp:
resolvectl statusNếu bị rò rỉ, thêm dhcp-option DNS vào file cấu hình hoặc dùng script update-systemd-resolved. - AUTH_FAILED: file thông tin đăng nhập sai hoặc tài khoản đã hết hạn; đổi mật khẩu xong thì cập nhật file.
- TLS handshake timeout (bắt tay TLS hết thời gian): UDP tới máy chủ không đi qua được — đổi khu vực hoặc đổi mạng; trên máy chủ đám mây, cho phép UDP đi ra trong security group.
- Máy chủ đặt ở Trung Quốc cần đi thẳng tới các mirror Trung Quốc: kết nối xong thì mọi thứ đều đi ra qua đường truyền, nên hãy trỏ apt / pip / npm tới mirror trong nước, hoặc dùng cách hai để chỉ cho các lệnh cụ thể đi đường truyền.
Cần biết
- Một máy Linux tính là một thiết bị trong số thiết bị online cho phép của gói (Cá nhân 2, Gia đình 4, Doanh nghiệp 8), dùng chung với các thiết bị khác của bạn; Web Proxy ở cách hai cũng tính theo từng kết nối.
- File cấu hình và file thông tin đăng nhập chính là tài khoản của bạn — đừng bao giờ commit vào kho git hay đóng vào image.
- Theo thiết kế, đổi mật khẩu là các file cấu hình cũ mất hiệu lực ngay; hãy cập nhật file thông tin đăng nhập.
- Chạy đường truyền trên máy chủ đám mây phải tuân theo điều khoản của nhà cung cấp đám mây; dịch vụ chỉ ghi thời gian kết nối và tổng lưu lượng.
FAQ
Vì sao file cấu hình cho Linux không nhúng thông tin đăng nhập?
Trình quản lý mạng từ chối file cấu hình có nhúng thông tin đăng nhập và báo nhập thất bại, nên file cho Linux để trống phần đó cho bạn tự nhập; với systemd thì thông tin đó nằm trong file thông tin đăng nhập.
Có thể chỉ cho Docker đi đường truyền không?
Được — đặt biến proxy riêng cho Docker daemon (cách hai), hoặc chạy một container có OpenVPN riêng (gluetun) để chỉ những container cụ thể đi đường truyền.
Còn Mạng riêng (Tailscale) trên Linux thì sao?
Script chính thức cài chỉ bằng một dòng; sau đó đăng nhập bằng: tailscale up --login-server=<this site’s control server> Hợp khi máy cần được truy cập từ bên ngoài hoặc cần luôn online sau khi cấu hình xong; nếu chỉ để tải về nhanh hơn thì OpenVPN hoặc proxy đơn giản hơn.
OpenWrt trên router có giống vậy không?
Cài luci-app-openvpn trên OpenWrt rồi tải file .ovpn lên là cả mạng nội bộ đi đường truyền; router chạy firmware của trang này thì không cần mấy việc đó — chỉ cần đăng nhập tài khoản.