Hướng dẫn

Tự chạy VPN trên VPS nước ngoài

VPN thương mại bắt bạn tin vào chính sách không lưu nhật ký do phòng marketing viết. VPS của bạn không có gì để lưu nhật ký ngoài những gì bạn cấu hình. Dưới đây là toàn bộ thiết lập WireGuard — kèm danh sách thẳng thắn về các đánh đổi.

Vì sao tự lưu trữ vượt trội hơn VPN thương mại

"Không lưu nhật ký" của VPN thương mại là một chính sách. "Không lưu nhật ký" của VPS riêng là một kiến trúc. Khác biệt đó quan trọng hơn bất kỳ huy hiệu kiểm toán nào:

  • Nhà cung cấp VPN thấy mọi thứ theo thiết kế. Lưu lượng của hàng nghìn người dùng kết thúc trên các máy chủ mà công ty kiểm soát hoàn toàn. Một lệnh niêm phong cộng với một thay đổi ghi nhật ký lặng lẽ là vô hình với bạn — và điều đó đã từng xảy ra, ở những nhà cung cấp mà bạn đã nghe đến.
  • Trên VPS của riêng bạn, bạn kiểm soát toàn bộ hệ thống. sshd của bạn, ổ đĩa của bạn, cấu hình WireGuard của bạn. Chúng tôi không chạy gì bên trong máy khách của bạn và không lưu nhật ký hoạt động hoặc kết nối ở phía mạng. Chúng tôi không thể nhìn vào VPS của bạn; một công ty VPN được định nghĩa bằng việc nhìn vào đường hầm của họ.
  • Khu vực pháp lý đứng về phía bạn. Điểm thoát của bạn nằm nơi bạn triển khai — ngoài các liên minh giám sát nếu bạn chọn, chịu sự điều chỉnh của tòa án khu vực lưu trữ thay vì quốc gia sở tại của công ty VPN.

Và phần đánh đổi trung thực: VPN tự lưu trữ có IP chuyên dụng chỉ riêng bạn dùng. Các trang web sẽ không gắn cờ nó là VPN (một nâng cấp chất lượng cuộc sống thực sự), nhưng toàn bộ lưu lượng của bạn dùng chung một địa chỉ — bạn không hòa vào đám đông hàng nghìn người. Nếu yêu cầu là ẩn danh đám đông, hãy dùng Tor. Nếu yêu cầu là hạ tầng đáng tin cậy, không gì vượt qua một máy chủ bạn kiểm soát.

Những gì chúng tôi đang xây dựng

Điện thoại và laptop → đường hầm WireGuard → một SV-Pro tại vị trí bạn chọn → internet mở. Chuyển tiếp IPv4 với NAT trên máy chủ, định tuyến full-tunnel trên máy khách (0.0.0.0/0), DNS qua 9.9.9.9. IP máy chủ ví dụ xuyên suốt: 185.220.101.14 — thay bằng IP của bạn. Hệ điều hành cơ sở là Debian 13; nếu bạn chưa gia cố máy chủ, hãy làm danh sách kiểm tra 30 phút trước, rồi quay lại.

Thiết lập máy chủ trên Debian 13

Cài đặt và tạo khóa

apt update && apt install -y wireguard qrencode

cd /etc/wireguard
umask 077

# server keypair
wg genkey | tee server.key | wg pubkey > server.pub

# one keypair per client device (laptop shown; repeat for phone)
wg genkey | tee laptop.key | wg pubkey > laptop.pub

Tạo khóa máy khách trên máy chủ là chấp nhận được cho lần thiết lập đầu vì bạn đang chuyển cấu hình qua SSH. Để vệ sinh chặt chẽ hơn, hãy tạo khóa trên từng thiết bị và chỉ dán khóa công khai vào cấu hình máy chủ.

Viết wg0.conf

# /etc/wireguard/wg0.conf
[Interface]
Address    = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
PostUp     = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown   = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# laptop
[Peer]
PublicKey  = <contents of laptop.pub>
AllowedIPs = 10.10.0.2/32

# phone — repeat the block with 10.10.0.3/32

Kiểm tra tên giao diện uplink bằng ip route | grep default — trên image VPSRento nó là eth0, nhưng nếu khác, hãy điều chỉnh các dòng MASQUERADE.

Bật chuyển tiếp và khởi động

# turn on IPv4 forwarding, persist across reboots
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl -p /etc/sysctl.d/99-wireguard.conf

# firewall: one UDP port, nothing else
ufw allow 51820/udp comment 'WireGuard'

# bring it up, now and on boot
systemctl enable --now wg-quick@wg0
wg show

wg show sẽ in ra giao diện, cổng lắng nghe và các peer của bạn. Chưa có dòng handshake — chúng xuất hiện khi máy khách kết nối.

Cấu hình máy khách

Trên laptop, laptop.conf:

[Interface]
PrivateKey = <contents of laptop.key>
Address    = 10.10.0.2/32
DNS        = 9.9.9.9

[Peer]
PublicKey           = <contents of server.pub>
AllowedIPs          = 0.0.0.0/0, ::/0
Endpoint            = 185.220.101.14:51820
PersistentKeepalive = 25

AllowedIPs = 0.0.0.0/0, ::/0 định tuyến mọi thứ qua tunnel — sau này có thể đổi sang split tunnel nếu bạn muốn. PersistentKeepalive giữ đường truyền sống qua NAT gia đình. Với điện thoại, đừng gõ gì cả: tạo file cấu hình của điện thoại trên máy chủ và hiển thị nó dưới dạng mã QR trong terminal của bạn:

# prints a scannable QR in the terminal — scan it with the WireGuard app
qrencode -t ansiutf8 < phone.conf

Kích hoạt, rồi xác minh từ bất kỳ client nào: curl ifconfig.me sẽ trả về IP của VPS của bạn, và kiểm tra rò rỉ DNS sẽ hiển thị 9.9.9.9của nhà cung cấp — không phải ISP của bạn.

Ghi chú hiệu suất

WireGuard chạy trong kernel và dùng ChaCha20 — trên các node AMD EPYC, một tunnel đơn thực tế đạt 600–900 Mbps qua NAT, nghĩa là nó làm bão hòa cổng từ lâu trước khi làm vất vả CPU. Ràng buộc thực sự không bao giờ là thuật toán mã hóa; đó là điều khoản băng thông của gói. VPN thuần băng thông: mỗi gigabyte bạn tải xuống được tính một lần vào và một lần ra. Trên các gói tính theo mức dùng, phép tính đó quan trọng. Trên SV-Pro — $19.99/tháng, không giới hạn ở 1 Gbps — điều đó không quan trọng, đó là lý do SV-Pro là gói chúng tôi hướng dẫn cho người xây VPN. Một khách hàng chạy thiết lập cho cả gia đình trên một SV-Pro duy nhất ở Amsterdam và vẫn chưa tìm ra giới hạn của nó.

Multi-hop: vào ở Amsterdam, ra ở Reykjavik

Để có lớp thứ hai, nối hai VPS qua các khu vực pháp lý khác nhau. Node vào ở Hà Lan (độ trễ thấp đến bạn), tunnel WireGuard giữa hai server, node ra ở Iceland (khu vực pháp lý bạn thực sự muốn lưu lượng xuất phát). Thiết bị của bạn thấy một endpoint ở Amsterdam; internet thấy một IP ở Reykjavik; node vào chỉ thấy ciphertext đi qua. Về mặt kỹ thuật, đó là cùng cấu hình bạn vừa viết, lặp lại hai lần — một wg interface thứ hai trên node vào có default route trỏ đến tunnel ra. Chi phí khoảng 40–60ms độ trễ thêm và một $5.99–6.89 VPS nữa. Đáng giá khi mô hình mối đe dọa của bạn có ngân sách; chỉ là trang trí khi không có.

Giới hạn thực tế

  • Bây giờ bạn là người vận hành. Cập nhật, xoay vòng khóa và uptime là trách nhiệm của bạn. unattended-upgradesdanh sách kiểm tra bảo mật bao phủ hầu hết; phần còn lại là thỉnh thoảng apt upgrade vào Chủ nhật.
  • Một IP là một danh tính. Kẻ quan sát có thể tương quan mọi thứ thoát ra từ địa chỉ của bạn. Khi cần, triển khai lại ở vị trí khác — 55 giây sau bạn có một exit mới và một IP mới được kiểm tra với hơn 40 danh sách đen.
  • VPS không phải là Tor. Thiết lập này bảo vệ bạn khỏi ISP, khỏi Wi-Fi thù địch và khỏi các công ty VPN. Trước một kẻ thù cấp nhà nước theo dõi cả hai đầu tunnel, sự tương quan thời gian tồn tại. Biết bạn đang đối đầu với điều gì.

Tunnel của bạn. Không có log của bạn: không.

SV-Pro — 4 vCPU, 8 GB RAM, không giới hạn băng thông 1 Gbps — là lựa chọn của những người xây dựng VPN ở mức $19.99/tháng. Root trong 55 giây.

Tiếng Việt