Tất cả hệ thống hoạt động bình thường Amsterdam · Paris · Reykjavík +5 Thanh toán bằng Tiền mã hoá
Mạng & tự lưu trữTrung cấpĐọc 32 phútCập nhật 2026-08-31

Đưa VPN vượt qua kiểm tra gói tin sâu

Bên kiểm duyệt không chặn “VPN”. Họ chặn một giao thức mà họ có thể nhận diện được — và WireGuard có thể bị nhận diện ngay từ gói tin đầu tiên. Đây là điều DPI thực sự dựa vào để nhận diện, giao thức ngụy trang nào sống sót qua được, và cách để bạn tự vận hành một giao thức như vậy.

Đưa VPN vượt qua kiểm tra gói tin sâu
Trong trang này
  1. Kiểm tra gói tin sâu thực sự dựa vào điều gì để nhận diện
  2. Vì sao chuyển WireGuard sang cổng 443 không có tác dụng
  3. Những họ giao thức lọt qua được, và cái giá bạn phải trả cho mỗi loại
  4. Những gì bạn cần trước khi bắt đầu
  5. Từng bước một
  6. Dò quét chủ động, và những máy chủ biết cách im lặng
  7. Địa chỉ mới là nguồn tài nguyên khan hiếm
  8. Những gì ngụy trang không làm được
  9. Pháp lý, thanh toán, và vì sao tài khoản lại quan trọng
  10. Câu hỏi thường gặp

Vào cái buổi sáng một đường hầm ngừng kết nối, bản năng đầu tiên là đổ lỗi cho máy chủ. Gần như chẳng bao giờ là do máy chủ cả. Điều đã thay đổi là có thứ gì đó nằm giữa bạn và máy chủ bắt đầu nhìn vào hình dạng của các gói tin thay vì chỉ nhìn vào đích đến của chúng, kết luận rằng hình dạng đó là một VPN, và loại bỏ nó. Chuyển sang cổng 443 sẽ chẳng giúp được gì, bởi vì cổng chưa bao giờ là thứ tố cáo bạn.

Vì vậy hướng dẫn này bắt đầu từ phần mà hầu hết các bài hướng dẫn khác bỏ qua: kiểm tra gói tin sâu thực sự dựa vào điều gì để nhận diện, vì sao WireGuard là đường hầm dễ bị nhận diện nhất thế giới, và mỗi họ giao thức ngụy trang khiến bạn phải đánh đổi điều gì để lọt qua được — lưu lượng ngẫu nhiên hóa, TLS mượn danh, và QUIC giả dạng HTTP/3. Rồi đến phần thực hành: một tệp nhị phân duy nhất, ba cấu hình máy chủ hoạt động thực sự, và một cách kiểm tra kết quả theo kiểu một bên kiểm duyệt sẽ làm chứ không phải theo kiểu một người dùng đang hy vọng. Cỗ máy bên dưới có thể đặt tại một khu vực pháp lý mà bộ lọc không thể vươn tới, được thuê mà không cần giấy tờ tùy thân và thanh toán bằng Monero — điều này quan trọng hơn vẻ ngoài của nó, và phần cuối cùng sẽ giải thích vì sao.

Kiểm tra gói tin sâu thực sự dựa vào điều gì để nhận diện

“DPI” nghe như một bài toán tình báo. Nhưng phần lớn thời gian, đó chỉ là một phép so khớp chuỗi. Một bộ lọc đặt trên một tuyến kết nối quốc gia không có khả năng suy nghĩ kỹ về từng luồng dữ liệu, nên nó dựa vào những tín hiệu rẻ nhất mà vẫn hiệu quả, theo thứ tự đại khái sau:

  • Một dấu hiệu nhận dạng giao thức ở một vị trí cố định. Gói tin đầu tiên của một phiên WireGuard là một thông điệp khởi tạo bắt tay: đúng 148 byte, byte đầu tiên là 0x01, ba byte tiếp theo bằng không. OpenVPN tự giới thiệu mình bằng một opcode ở byte đầu tiên và một session id không bao giờ đổi vị trí. So khớp một trong hai thứ này chỉ tốn vài lệnh máy cho mỗi gói tin, không cần lưu trạng thái, đó là lý do nó luôn là thứ được triển khai đầu tiên.
  • Entropy, khi không có dấu hiệu nhận dạng nào để tìm. Nếu các byte đầu tiên của một luồng dữ liệu ngẫu nhiên đồng đều — không có ký tự ASCII in được, không có header nhận ra được — thì bản thân điều đó đã là một tín hiệu, bởi vì gần như không có lưu lượng hợp lệ nào trông như vậy ngay từ byte số 0. Các bộ lọc từng chặn nguyên cả một nhóm lưu lượng “mã hóa hoàn toàn” chỉ dựa trên cơ sở này, và đó chính xác là cái bẫy mà các giao thức ngẫu nhiên hóa rơi vào.
  • Dò quét chủ động. Bộ lọc ghi lại địa chỉ máy chủ của bạn, sau đó tự mình kết nối tới nó, từ một nơi khác, và quan sát nó phản hồi ra sao. Một proxy trả lời, báo lỗi theo một kiểu đặc trưng, hoặc đơn giản là giữ kết nối mở, đều xác nhận nghi ngờ đó. Đây là cách một địa chỉ chuyển từ “có thể” sang danh sách chặn.
  • Hành vi theo thời gian. Một luồng dữ liệu duy nhất, tồn tại lâu dài, tới một địa chỉ nước ngoài, mang theo vài trăm megabyte với đường cong ngày/đêm trông giống hộ gia đình, là một thứ có đặc điểm rất riêng. Không có mức độ ngụy trang payload nào thay đổi được điều đó.
  • Bản thân địa chỉ. Các dải địa chỉ VPS đã biết, các địa chỉ xuất hiện trong danh sách subscription công khai, bất cứ thứ gì một nhà cung cấp thương mại quảng cáo. Điều này chẳng tốn của bên kiểm duyệt một xu nào, và đó là lý do một địa chỉ proxy dùng chung chết nhanh hơn nhiều so với một giao thức.

Kết luận hữu ích ở đây là ba điều đầu tiên là những thứ bạn có thể làm gì đó để đối phó, và đó cũng chính là những gì hướng dẫn này sẽ giải quyết. Hai điều cuối cùng là lý do phần nói về bảo vệ địa chỉ của bạn không phải là một suy nghĩ muộn màng.

Vì sao chuyển WireGuard sang cổng 443 không có tác dụng

Đây là lời khuyên được lặp lại nhiều nhất về chủ đề này, và nó gần như chẳng có tác dụng gì, vì một lý do đáng nói thẳng ra: dấu hiệu nhận dạng nằm trong payload, không nằm trong số hiệu cổng. Một bộ lọc so khớp 0x01 ở offset 0 của một datagram UDP dài 148 byte sẽ tìm thấy nó trên cổng 443 dễ dàng y hệt như trên cổng 51820.

Tệ hơn, việc chuyển cổng còn có thể khiến bạn nổi bật hơn. Cổng 443 mang HTTPS, vốn chạy trên TCP, và mang QUIC cùng HTTP/3, vốn chạy trên UDP nhưng bắt đầu bằng một QUIC long header nhận ra được và một TLS ClientHello bên trong nó. Một luồng UDP trên cổng 443 mà không phải là cái nào trong hai thứ đó là một điểm bất thường nhỏ, trên một tuyến kết nối mà mọi thứ khác trên cổng đó đều là một trong hai dạng ấy.

Phần còn lại của những lời truyền miệng cũng vậy. Đổi MTU chỉ thay đổi cách phân mảnh, không thay đổi các byte bắt tay. Thêm một pre-shared key vào WireGuard giúp mật mã mạnh hơn nhưng để nguyên định dạng trên đường truyền. Đặt đường hầm lên một cổng cao không chuẩn chẳng mang lại ích lợi gì trước việc so khớp payload, dù nó có cắt giảm phần nhiễu nền từ các trình quét cơ hội.

Điều thực sự thay đổi câu trả lời là thay đổi những gì nằm trên đường truyền: hoặc làm cho các byte trông không giống bất cứ thứ gì nhận ra được, hoặc làm cho chúng trông giống một thứ mà bên kiểm duyệt đã quyết định không chặn. Mọi thứ bên dưới đây đều là một trong hai cách đó.

Những họ giao thức lọt qua được, và cái giá bạn phải trả cho mỗi loại

Có bốn cách tiếp cận khả thi trong thực tế. Chúng không chỉ được xếp hạng theo độ mạnh, bởi vì lựa chọn đúng đắn phụ thuộc vào việc lưu lượng của bạn đang bị xử lý ra sao.

  • Lưu lượng ngẫu nhiên hóa, không có header — Shadowsocks-2022. Các cipher AEAD năm 2022 (2022-blake3-aes-128-gcm và các cipher cùng họ) không đặt bất kỳ header dạng rõ nào lên đường truyền cả: ngay từ byte đầu tiên, một phiên đã không thể phân biệt được với dữ liệu ngẫu nhiên, và một khóa sai sẽ không tạo ra phản hồi nào cho bên dò quét. Rẻ, nhanh, mười phút để triển khai, xuất sắc ở gần như mọi nơi. Điểm yếu duy nhất của nó là tín hiệu entropy đã nói ở trên — trước một bộ lọc chặn theo nguyên tắc mọi luồng ngẫu nhiên không thể phân loại được, trông giống như không có gì không đồng nghĩa với trông có vẻ vô hại.
  • TLS mượn danh — VLESS với Reality. Lựa chọn mạnh nhất đang được dùng phổ biến hiện nay. Máy chủ của bạn thực hiện một cú bắt tay TLS 1.3 thật sự, và bất kỳ client nào không xác thực được sẽ được chuyển tiếp một cách trong suốt sang một trang web thật của bên thứ ba, và nhận đúng chứng chỉ thật của trang đó. Một bên dò quét sẽ thấy một khách truy cập bình thường đang kết nối tới một trang web bình thường, bởi vì đó chính xác là điều đã xảy ra. Bạn không cần domain, không cần chứng chỉ, và không để lại dấu vết nào trong nhật ký certificate transparency — không có gì được đăng ký ở bất cứ đâu trỏ về bạn.
  • TLS của riêng bạn — Trojan, hoặc VLESS qua WebSocket đặt sau một web server. Đường hầm ẩn bên trong chính trang HTTPS của bạn, trên domain và chứng chỉ của riêng bạn. Về khái niệm thì đơn giản hơn, và nó cùng tồn tại với một trang web thật trên cùng một địa chỉ. Cái giá phải trả là domain giờ đây trở thành một định danh dễ bị đốt, chứng chỉ là một bản ghi công khai trong nhật ký CT, và việc chặn một hostname là một động tác rẻ tiền đối với bên kiểm duyệt.
  • Mang dáng dấp QUIC — Hysteria2 và TUIC. Hai giao thức này giả dạng HTTP/3 và có thể phục vụ một trang web thật cho bất cứ thứ gì không xác thực được. Lý do để chọn chúng thường không phải vì kiểm duyệt, mà vì mất gói tin: trên một tuyến kết nối làm rơi năm đến mười phần trăm gói tin, chúng vẫn giữ được thông lượng ở nơi mọi thứ dựa trên TCP đều sụp đổ. Sự đánh đổi là có thật — một số mạng giới hạn hoặc chặn hoàn toàn UDP, và cơ chế kiểm soát tắc nghẽn hung hãn của Hysteria sẽ là một người hàng xóm khó chịu nếu bạn khai báo sai lệch các con số băng thông.

Nếu bạn muốn một lựa chọn mặc định: triển khai Reality làm phương án chính, giữ Shadowsocks-2022 trên một cổng thứ hai làm phương án dự phòng, và chỉ thêm Hysteria2 nếu vấn đề của bạn hóa ra là một tuyến kết nối hay mất gói tin chứ không phải một tuyến bị lọc. Cả ba đều chạy từ một daemon duy nhất, và các bước bên dưới sẽ lần lượt cấu hình từng cái.

Những gì bạn cần trước khi bắt đầu

Ít hơn bạn tưởng. Đây là một khối lượng công việc nhẹ nhàng; giới hạn nằm ở băng thông và độ trễ, không phải ở máy chủ.

  • Một gói nhỏ. Mã hóa và kết thúc TLS đều rẻ trên bất kỳ vCPU hiện đại nào có AES-NI. Pup (1 vCPU / 1 GB / 25 GB NVMe, $3.50/mo) gánh vác thoải mái một đường hầm cá nhân; Cub (1 vCPU / 2 GB / 40 GB, $5.00/mo) là kích cỡ hợp lý nếu vài người cùng dùng chung; Scout (2 vCPU / 4 GB / 70 GB, $9.00/mo) nếu đó là cả một hộ gia đình hay một nhóm nhỏ và bạn muốn có dư địa. Lưu lượng không giới hạn ở tốc độ 1 Gbps trên mọi gói, đó mới là thông số thực sự quan trọng đối với một đường hầm.
  • Vị trí phù hợp, chọn theo tuyến kết nối. Đây là quyết định mà người ta hay chọn sai. Hãy chọn khu vực pháp lý gần nhất mà tuyến đường từ chỗ bạn không bị lọc, thay vì khu vực kỳ lạ nhất: với hầu hết độc giả thì đó là Amsterdam, Paris, Bucharest hoặc Sofia, còn với ai ở châu Á thì là Kuala Lumpur. Reykjavik và Zurich mua cho bạn khoảng cách pháp lý, không phải tốc độ — hữu ích cho những gì bạn lưu trữ, kém hữu ích hơn cho những gì bạn truyền qua đường hầm.
  • Debian 13 hoặc Ubuntu LTS từ thư viện template. Ảo hóa KVM đầy đủ nghĩa là một kernel thật và stack mạng của riêng bạn, đó là thứ cho phép bạn gán các cổng thấp và định hình UDP mà không cần xin phép ai.
  • Một IPv4 riêng, không có lịch sử xấu. Mọi gói đều đi kèm một địa chỉ như vậy, cộng thêm một dải IPv6 /64. Một địa chỉ chưa từng nằm trong một pool proxy dùng chung là thứ giá trị nhất ở đây, và đó là lý do các địa chỉ tái chế từ các cloud giá rẻ thường hỏng chỉ trong vài ngày.
  • Mười phút tăng cường bảo mật trước đã. Chỉ dùng SSH key, không đăng nhập bằng mật khẩu, tường lửa mặc định chặn tất cả. Danh sách kiểm tra tăng cường bảo mật Debian đã bao quát việc này; một đường hầm ngụy trang trên một máy chủ có mật khẩu root dễ đoán chẳng khác nào một ổ khóa cầu kỳ gắn trên một cánh cửa đang mở.
  • Một domain — chỉ khi bạn chọn hướng đi TLS của riêng bạn. Reality và Shadowsocks không cần domain nào cả, đó là một phần lớn sức hút của chúng.

Từng bước một

  1. Triển khai tại một địa điểm mà bộ lọc không vươn tới, và tăng cường bảo mật trước đã

    Triển khai Debian 13 từ thư viện template tại địa điểm gần nhất có tuyến đường sạch từ chỗ bạn, và dành mười phút tăng cường bảo mật cơ bản cho máy chủ trước khi làm bất cứ điều gì khác: chỉ dùng SSH bằng key, tắt đăng nhập bằng mật khẩu cho root, nftables mặc định chặn tất cả, cập nhật bảo mật tự động. Sau đó cập nhật hệ thống lên phiên bản mới nhất và kiểm tra đồng hồ, thứ mà Reality phụ thuộc vào:

    apt update && apt full-upgrade -y
    apt install -y curl ca-certificates systemd-timesyncd
    timedatectl set-ntp true
    timedatectl status

    Hãy giữ máy chủ này chỉ phục vụ một mục đích duy nhất. Một đường hầm dùng chung địa chỉ với một dịch vụ web công khai sẽ thừa hưởng mọi vấn đề về uy tín mà dịch vụ đó từng có.

  2. Cài đặt sing-box từ kho chính thức

    Một daemon duy nhất bao quát cả ba giao thức, nên chẳng có lý do gì để chạy tới ba daemon riêng biệt. Hãy dùng kho riêng của chính dự án thay vì gói của bản phân phối, bởi vì đây là loại phần mềm mà việc chậm mất một bản phát hành là một cái giá phải trả thực sự:

    mkdir -p /etc/apt/keyrings
    curl -fsSL https://sing-box.app/gpg.key -o /etc/apt/keyrings/sagernet.asc
    chmod a+r /etc/apt/keyrings/sagernet.asc
    printf 'Types: deb\nURIs: https://deb.sagernet.org/\nSuites: *\nComponents: *\nEnabled: yes\nSigned-By: /etc/apt/keyrings/sagernet.asc\n' > /etc/apt/sources.list.d/sagernet.sources
    apt update && apt install -y sing-box
    sing-box version

    Gói cài đặt này đi kèm một unit systemd đọc tệp /etc/sing-box/config.json. Mọi thứ bên dưới đều ghi vào chính tệp đó; hãy thêm các inbound bạn muốn dùng và bỏ qua những cái bạn không cần.

  3. Phương án A — Shadowsocks-2022, phương án dự phòng mười phút

    Hãy bắt đầu ở đây ngay cả khi Reality sẽ là phương án chính của bạn, bởi vì nó chỉ mất hai phút và cho bạn một cửa thứ hai với kiểu thất bại khác đi. Hãy tạo một khóa có độ dài phù hợp với cipher — 16 byte cho aes-128, 32 byte cho aes-256:

    sing-box generate rand --base64 16

    Sau đó là inbound, trên một cổng cao thay vì một cổng dễ nhớ:

    {
      "log": { "level": "warn" },
      "inbounds": [
        {
          "type": "shadowsocks",
          "tag": "ss-in",
          "listen": "::",
          "listen_port": 23456,
          "method": "2022-blake3-aes-128-gcm",
          "password": "PASTE_THE_GENERATED_KEY"
        }
      ],
      "outbounds": [ { "type": "direct" } ]
    }

    Ghi nó vào /etc/sing-box/config.json, rồi chạy systemctl enable --now sing-box. Lưu ý là ở đây không có TLS và không có chứng chỉ nào cần lấy: sự bảo vệ nằm ở chỗ lưu lượng hoàn toàn không có header nào nhận ra được, và một khóa sai sẽ không nhận được phản hồi nào.

  4. Phương án B — VLESS với Reality, mượn TLS của người khác

    Đây là phương án nên chạy làm phương án chính. Trước tiên hãy tạo cặp khóa và các định danh, giữ PrivateKey trên máy chủ và PublicKey cho client:

    sing-box generate reality-keypair
    sing-box generate uuid
    openssl rand -hex 8

    Sau đó là inbound. handshake.server là trang web thật mà máy chủ của bạn sẽ mạo danh — hãy chọn một trang phổ biến, tải nhanh từ vị trí máy chủ của bạn, hỗ trợ TLS 1.3, và bản thân nó không dễ bị chặn ở nơi bạn đang ở:

    {
      "type": "vless",
      "tag": "vless-in",
      "listen": "::",
      "listen_port": 443,
      "users": [
        { "uuid": "GENERATED_UUID", "flow": "xtls-rprx-vision" }
      ],
      "tls": {
        "enabled": true,
        "server_name": "www.cloudflare.com",
        "reality": {
          "enabled": true,
          "handshake": { "server": "www.cloudflare.com", "server_port": 443 },
          "private_key": "GENERATED_PRIVATE_KEY",
          "short_id": [ "GENERATED_HEX" ]
        }
      }
    }

    Thêm object đó vào mảng inbounds bên cạnh object Shadowsocks, rồi nạp lại bằng systemctl restart sing-box. Client cần năm giá trị: địa chỉ của bạn, cổng 443, UUID, khóa công khai, và short id — cộng thêm cùng một server_name, đó là thứ khiến cú bắt tay trở nên nhất quán.

  5. Phương án C — Hysteria2, khi tuyến kết nối hay mất gói tin hơn là bị lọc

    Chỉ thêm phương án này nếu bạn đã đo được tình trạng mất gói tin trên tuyến kết nối và các đường hầm dựa trên TCP đang khựng lại. Nó nói QUIC, nên cần một chứng chỉ — hoặc một chứng chỉ thật cho một domain bạn sở hữu, hoặc một cặp tự ký mà client được báo trước để chấp nhận:

    {
      "type": "hysteria2",
      "tag": "hy2-in",
      "listen": "::",
      "listen_port": 8443,
      "up_mbps": 100,
      "down_mbps": 100,
      "users": [ { "password": "A_LONG_RANDOM_PASSWORD" } ],
      "masquerade": "https://news.ycombinator.com/",
      "tls": {
        "enabled": true,
        "alpn": [ "h3" ],
        "certificate_path": "/etc/sing-box/cert.pem",
        "key_path": "/etc/sing-box/key.pem"
      }
    }

    masquerade là thứ mà một khách truy cập chưa xác thực sẽ nhận được: một reverse proxy HTTP/3 thuần túy tới một trang web thật, thay vì một lỗi để lộ ra daemon đó là gì. Hãy đặt up_mbpsdown_mbps thành những con số bạn thực sự có thể duy trì được — cơ chế kiểm soát tắc nghẽn tin vào chúng, và những con số bị thổi phồng sẽ khiến bạn trở thành một người hàng xóm khó chịu trên tuyến kết nối, chứ không phải một người nhanh hơn.

  6. Chỉ mở đúng những cổng bạn dùng, và không gì khác

    Mặc định chặn tất cả, sau đó chỉ mở vài thứ thực sự cần tiếp cận được. Giả sử bạn đã có cấu hình nftables từ hướng dẫn tăng cường bảo mật, hãy thêm các cổng đường hầm vào input chain:

    nft add rule inet filter input tcp dport 443 accept
    nft add rule inet filter input udp dport 443 accept
    nft add rule inet filter input udp dport 23456 accept
    nft list ruleset > /etc/nftables.conf

    Có hai chi tiết quan trọng hơn vẻ ngoài của chúng. Hãy giữ SSH trên cổng riêng của nó và chỉ cho phép qua tường lửa từ những địa chỉ bạn thực sự dùng, bởi vì một cổng SSH mở là một dấu hiệu nhận dạng tốt hơn nhiều cho “một máy chủ ai đó đang quản trị từ xa” so với chính đường hầm. Và đừng để các cổng thử nghiệm tiếp tục lắng nghe sau khi bạn đã thử xong — mỗi cổng mở thêm là thêm một thứ mà bên dò quét có thể khai thác để mô tả đặc điểm máy chủ của bạn.

  7. Kết nối một client, và giữ một cửa thứ hai luôn mở

    Các client hiểu được tất cả những giao thức này là các ứng dụng sing-box trên Android, iOS, Windows và macOS, cùng với chính tệp nhị phân sing-box trên Linux với một cấu hình phía client. Hãy dựng profile client từ các giá trị bạn đã tạo ra: địa chỉ, cổng, UUID, khóa công khai, short id và server_name cho Reality; địa chỉ, cổng, cipher và khóa cho Shadowsocks.

    Hãy cấu hình cả hai trước khi bạn cần đến chúng, và đặt chúng trong cùng một profile để việc chuyển đổi chỉ là một cú chạm. Kiểu thất bại mà điều này tránh được rất cụ thể và rất phổ biến: một lệnh chặn ập tới, giao thức duy nhất của bạn ngừng hoạt động, và cách duy nhất để sửa máy chủ lại chính là một kết nối không còn khả thi nữa. Một giao thức thứ hai trên một cổng khác, với một dấu hiệu thất bại khác, là khoản bảo hiểm rẻ nhất trong toàn bộ hướng dẫn này.

    Nếu bạn quản trị máy chủ qua SSH từ bên trong một mạng bị lọc, hãy đảm bảo rằng tuyến đường đó cũng không phụ thuộc vào đường hầm.

  8. Kiểm tra nó theo cách một bên kiểm duyệt sẽ làm, không phải theo cách một người dùng làm

    “Nó kết nối được” là bài kiểm tra yếu nhất có thể có. Hãy kiểm tra ba điều mà một bộ lọc sẽ kiểm tra, từ một máy không phải là máy chủ của bạn:

    curl -sv --max-time 8 https://YOUR_IP 2>&1 | grep -E 'subject:|issuer:'
    nc -vz -w 5 YOUR_IP 23456
    nmap -Pn -sV -p 443,8443,23456 YOUR_IP

    Kết quả tốt trông như thế nào: curl hiển thị một chứng chỉ cho đích bắt tay của bạn và không có gợi ý nào về một proxy; nc nhắm vào cổng Shadowsocks kết nối được rồi im lặng cho tới khi hết thời gian chờ; nmap nhận diện ra một web server và không có gì thú vị hơn thế. Nếu bất kỳ phép dò nào tạo ra một banner đặc trưng, một reset tức thì, hoặc một chuỗi phiên bản nêu tên daemon, hãy sửa điều đó trước khi bạn tin tưởng vào thiết lập này.

    Sau đó hãy kiểm tra cả những kiểu thất bại nhàm chán hơn — rằng dịch vụ sống sót qua một lần khởi động lại bằng systemctl is-enabled sing-box, và rằng journalctl -u sing-box -f im lặng trong điều kiện sử dụng bình thường thay vì ghi log mọi kết nối xuống đĩa.

Dò quét chủ động, và những máy chủ biết cách im lặng

Việc nhận dạng dấu hiệu tìm ra các ứng viên; dò quét thì xác nhận chúng. Một khi bộ lọc nghi ngờ một địa chỉ, nó sẽ tự mở một kết nối riêng từ một mạng không liên quan và xem điều gì trả về. Mọi thứ đều phụ thuộc vào câu trả lời đó.

Một máy chủ trả về một lỗi đặc trưng, đóng kết nối vào một thời điểm đặc trưng, hoặc chấp nhận một kết nối mà nó không thể nào xác thực được, đều đã xác nhận phỏng đoán đó. Đây không phải là chuyện lý thuyết: đó là cơ chế đã được ghi nhận, qua đó các bộ lọc quy mô lớn đã loại bỏ hàng loạt các giao thức ngụy trang đời trước, và đó cũng là lý do các plugin kiểu obfs chỉ đơn giản xáo trộn một header đã không sống sót khi va chạm với nó.

Các thiết kế hiện đại trả lời việc dò quét theo một trong hai cách đúng đắn:

  • Không nói gì cả. Shadowsocks-2022 không thể tạo ra một phản hồi hợp lệ nếu không có khóa, nên nó không tạo ra phản hồi nào hết. Với bên dò quét, cổng đó là một lỗ đen, giống hệt như những gì một cổng bị tường lửa chặn trông như vậy. Nó cũng mang theo khả năng chống phát lại với một cửa sổ thời gian giới hạn, nên một phiên bị bắt lại không thể được gửi lại sau đó để khơi ra hành vi.
  • Nói điều gì đó đúng, nhưng về một ai khác. Reality chuyển tiếp cú bắt tay chưa xác thực tới một host thật của bên thứ ba và chuyển tiếp lại chứng chỉ thật của host đó. Bên dò quét nhận được một chuỗi chứng chỉ hợp lệ cho một trang web rõ ràng không phải là bạn. Hãy chọn một đích bắt tay phổ biến, có thể tiếp cận được một cách hợp lý từ quốc gia đặt máy chủ của bạn, và bản thân nó khó có khả năng bị chặn — và giữ đồng hồ máy chủ luôn đồng bộ, bởi vì Reality từ chối các cú bắt tay nằm ngoài một cửa sổ thời gian hẹp.

Hãy tự mình kiểm tra điều này trước khi tin tưởng nó. Từ một máy không liên quan, chạy curl -v https://YOUR_IP nhắm vào một cổng Reality: bạn sẽ phải thấy một chứng chỉ thuộc về đích bắt tay, và không có gì gợi ý về một proxy cả. Nhắm vào một cổng Shadowsocks, nc sẽ phải treo rồi hết thời gian chờ mà không trả về byte nào. Bất cứ điều gì khác đều là một phát hiện đáng lưu ý.

Địa chỉ mới là nguồn tài nguyên khan hiếm

Giao thức có thể thay thế được trong mười phút. Địa chỉ thì không. Một khi một địa chỉ IPv4 bị chặn bên trong một quốc gia, nó thường vẫn bị chặn rất lâu sau khi bất cứ điều gì gây ra chuyện đó đã không còn nữa, bởi vì chẳng có ai ở phía bên kia được trả tiền để rà soát lại danh sách. Hãy coi địa chỉ là tài sản và giao thức là thứ tiêu hao.

Ba thói quen sau đây bắt nguồn từ điều đó. Đừng công khai nó. Một địa chỉ được đăng trong một danh sách subscription công khai, một kênh, hay một cấu hình dùng chung, đều có thể bị liệt kê ra, và việc liệt kê là kiểu tấn công rẻ nhất tồn tại — đây là lý do các đường hầm riêng tư tồn tại lâu hơn rất nhiều so với các đường hầm công khai miễn phí. Đừng gắn cho nó một cái tên dễ bị đốt. Nếu bạn chạy theo hướng TLS của riêng bạn, một domain còn phục vụ bất cứ thứ gì gây chú ý sẽ kéo địa chỉ đó chìm theo nó. Đừng trộn lẫn vai trò. Một máy chủ chỉ có một mục đích duy nhất, chỉ chạy đường hầm của bạn và không gì khác, sẽ không thừa hưởng một danh sách chặn mà thứ khác bạn từng chạy đã gây ra.

Nửa còn lại là địa chỉ đó đến từ đâu. Các cloud giá rẻ có tỷ lệ luân chuyển cao tái chế IPv4 qua hàng nghìn khách hàng tồn tại trong thời gian ngắn, nên một địa chỉ “mới” có thể đã mang sẵn danh tiếng của ai đó khác trước cả gói tin đầu tiên của bạn. Mọi gói ở đây đều đi kèm một IPv4 riêng, đã được sàng lọc, thay vì một phần của một pool dùng chung — xem ý nghĩa thực sự của một IP sạch để biết định nghĩa và cách tự mình kiểm chứng. Nếu địa chỉ của bạn từng bị gắn cờ, hoặc bị chặn ở đâu đó quan trọng, hãy yêu cầu đổi địa chỉ qua panel; bạn không nên phải đặt một đơn hàng mới chỉ để có một địa chỉ hoạt động được. Và khi bạn muốn biết một vấn đề là do bên kiểm duyệt hay do danh sách uy tín, hướng dẫn kiểm tra xem một IP có bị đưa vào danh sách đen hay không của chúng tôi sẽ phân biệt rõ hai điều đó.

Những gì ngụy trang không làm được

Bảng tổng kết trung thực, bởi vì phần còn lại của hướng dẫn này chỉ đáng đọc nếu có cả phần này trong đó.

  • Nó không che giấu việc bạn đang gửi lưu lượng đã mã hóa tới đâu đó. Nhà vận hành mạng vẫn nhìn thấy một luồng dữ liệu tới một địa chỉ nước ngoài, khối lượng của nó, thời điểm của nó và nó kéo dài bao lâu. Reality khiến luồng đó trông như một lượt truy cập bình thường tới một trang web bình thường; nó không khiến luồng đó biến mất.
  • Nó không đánh bại được phân tích lưu lượng. Các luồng dữ liệu khối lượng lớn kéo dài liên tục với một kiểu mẫu ngày/đêm đặc trưng vẫn cứ đặc trưng như vậy. Trước một đối thủ sẵn sàng bỏ ra nguồn lực thật để làm tương quan dữ liệu thay vì chỉ so khớp mẫu, ngụy trang payload là công cụ sai, và Tor cùng một pluggable transport là câu trả lời đã được nghiên cứu kỹ hơn.
  • Nó không bảo vệ các đầu cuối. Một thiết bị bị xâm phạm, một tài khoản đã đăng nhập, việc nhận dạng dấu hiệu trình duyệt, và mọi thứ bạn gõ ở phía bên kia đều không hề được động chạm tới bởi bất cứ điều gì trong số này.
  • Nó không khiến máy chủ trở nên ẩn danh. Nhà cung cấp biết địa chỉ nào là của bạn, và việc đăng ký không cần KYC chỉ giới hạn những gì có thể biết được chứ không loại bỏ hoàn toàn nó. Chúng tôi đã trình bày chính xác điều gì có thể nhìn thấy được và điều gì không trong bài một VPS trả bằng crypto có thực sự ẩn danh hay không, và điều đó đáng để bạn dành mười phút trước khi dựa vào các giả định.
  • Nó không phải là vĩnh viễn. Đây là một cuộc chạy đua vũ trang có chu kỳ phát hành riêng. Một cấu hình hoạt động tốt hôm nay có thể cần được thay thế trong vòng một năm, đó chính là lý do thực sự để có một thiết lập bạn tự kiểm soát và có thể thay đổi trong mười phút, thay vì một gói thuê bao mà bạn chỉ có thể hủy.

Điều mà nó thực sự làm được, một cách đáng tin cậy, là nâng cái giá của việc chặn bạn từ mức “một phép so khớp byte ở tốc độ đường truyền” lên thành “một quyết định phải phá vỡ rất nhiều lưu lượng bình thường khác”. Trong thực tế, đó thường là toàn bộ cuộc chơi.

Pháp lý, thanh toán, và vì sao tài khoản lại quan trọng

Giao thức quyết định gói tin có lọt qua được hay không. Mọi thứ khác quyết định đường hầm có tiếp tục tồn tại hay không đều được quyết định ngoài đường truyền.

Pháp lý quyết định ai có thể ép buộc điều gì. Dấu chân của chúng tôi trải khắp tám địa điểm: Hà Lan, Pháp, Romania, Bulgaria, Thụy Điển, Iceland, Thụy Sĩ và Malaysia; một yêu cầu có sức nặng ở nơi này có thể vô nghĩa ở nơi khác, và không một thông báo gỡ bỏ nội dung kiểu Mỹ nào có hiệu lực ở bất kỳ nơi nào trong số đó. Đó là chính sách vận hành được nói ra một cách trung thực, không phải là sự miễn trừ pháp lý — lệnh tòa án địa phương vẫn có hiệu lực, và có một giới hạn cứng về lạm dụng mà chúng tôi không hề dịch chuyển. Hosting offshore giải thích rõ sự khác biệt này.

Tài khoản là phần mà người ta hay đánh giá thấp. Một đường hầm chỉ riêng tư đúng bằng mức riêng tư của hồ sơ về việc ai đã thuê nó. Đăng ký ở đây chỉ cần một địa chỉ email để gửi thông tin đăng nhập và không gì khác — không giấy tờ tùy thân, không thẻ, không địa chỉ, không số điện thoại. Không có tệp xác minh nào phải nộp, bởi vì chúng tôi chưa từng thu thập tệp nào như vậy.

Khoản thanh toán là nửa còn lại của câu chuyện đó. Một chiếc thẻ gắn kết một máy chủ với một hồ sơ ngân hàng và một tên pháp lý trong một cơ sở dữ liệu mà không ai trong hai chúng ta kiểm soát. Thanh toán ở đây được xử lý on-chain, và Monero được đối xử như công dân hạng nhất chứ không phải một ý nghĩ thêm vào sau cùng: hướng dẫn thanh toán VPS bằng XMR của chúng tôi đi qua toàn bộ quy trình, còn mua mà không cần thẻ tín dụng nói về cách bắt đầu từ con số 0 crypto. Triển khai mất khoảng sáu mươi giây sau khi xác nhận, nên một địa chỉ thay thế chỉ cách bạn vài phút, nếu bạn từng cần đến nó.

Gộp lại, đó là hình hài của một đường hầm có thể tồn tại lâu dài: một giao thức mà bộ lọc không thể so khớp một cách rẻ tiền, một địa chỉ chưa ai từng đốt, một khu vực pháp lý nằm ngoài tầm với của bộ lọc, và một tài khoản chưa từng nắm giữ bất cứ thứ gì đáng để đòi hỏi. Nếu bạn muốn bắt đầu với phiên bản trần trụi của cùng một đường hầm này trước, hướng dẫn thiết lập WireGuard chỉ mất mười phút và là một nơi tốt để bắt đầu — hãy quay lại đây khi có gì đó ngừng kết nối.

Câu hỏi thường gặp

Vì sao đường hầm WireGuard của tôi đột nhiên ngừng hoạt động chỉ sau một đêm?

Gần như luôn luôn là vì một bộ lọc trên tuyến kết nối đã bắt đầu so khớp được giao thức, chứ không phải vì có gì đó thay đổi trên máy chủ của bạn. Cú bắt tay của WireGuard là một gói tin cố định 148 byte bắt đầu bằng 0x01, thứ rất dễ so khớp ở tốc độ đường truyền, và các đợt triển khai bộ lọc thường xảy ra đồng loạt cùng lúc. Hai cách xác nhận nhanh: máy chủ vẫn trả lời SSH từ nơi khác, và cùng một đường hầm đó vẫn hoạt động từ một mạng khác. Nếu cả hai đều đúng, vấn đề nằm ở tuyến kết nối, không phải ở máy chủ — và đổi cổng sẽ không khắc phục được điều đó.

Dùng một VPN ngụy trang có hợp pháp không?

Ở phần lớn thế giới thì có — các đường hầm mã hóa là hạ tầng bình thường và phần mềm này là mã nguồn mở chính thống. Một số ít quốc gia điều chỉnh hoặc hạn chế việc dùng VPN, và các quy định dao động từ yêu cầu cấp phép cho tới cấm hoàn toàn, nên câu trả lời phụ thuộc vào việc bạn đang ở đâu, chứ không phải máy chủ đặt ở đâu. Chúng tôi không ở vị trí để đưa ra tư vấn pháp lý cho khu vực pháp lý của bạn. Điều chúng tôi có thể nói là những gì áp dụng ở phía chúng tôi: chạy một đường hầm riêng tư cho lưu lượng của chính bạn trên một VPS bạn thuê là cách dùng bình thường, và giới hạn cứng trong chính sách sử dụng chấp nhận được của chúng tôi — không CSAM, không khủng bố — không hề thay đổi dù thế nào đi nữa.

Tôi nên chọn cái nào: Reality, Shadowsocks-2022 hay Hysteria2?

Reality làm phương án chính: đây là lựa chọn mạnh nhất trước cả việc nhận dạng dấu hiệu lẫn dò quét chủ động, và nó không cần domain hay chứng chỉ riêng nào của bạn cả. Shadowsocks-2022 làm cửa thứ hai trên một cổng khác, vì nó chỉ tốn hai phút công sức và thất bại theo một kiểu khác. Hysteria2 chỉ khi bạn đã đo được tình trạng mất gói tin thực sự trên tuyến kết nối — nó thắng thế trên các đường truyền hay mất gói và chẳng mang lại gì thêm trên một đường truyền sạch. Cả ba đều chạy từ một daemon sing-box duy nhất, nên đây là một lựa chọn về inbound, không phải về phần mềm.

Tôi có cần một domain cho việc này không?

Không cần cho Reality hay Shadowsocks-2022, và đó chính là một phần lớn sức hút của chúng — không cần đăng ký, không cần chứng chỉ, và không để lại bản ghi nào trong nhật ký certificate transparency mang địa chỉ của bạn. Bạn chỉ cần một domain cho cách tiếp cận TLS của riêng bạn (Trojan, hoặc VLESS qua WebSocket đặt sau một web server), hoặc nếu bạn muốn một chứng chỉ được ký hợp lệ cho Hysteria2. Bỏ qua domain cũng loại bỏ luôn một định danh có thể bị chặn độc lập với địa chỉ của bạn.

IP máy chủ của tôi bị chặn. Tôi có thể đổi nó không?

Có, và bạn không cần phải đặt một đơn hàng mới để làm điều đó — hãy yêu cầu đổi địa chỉ qua panel. Trước khi làm vậy, hãy tìm hiểu xem điều gì đã bị liệt vào danh sách: một địa chỉ bị chặn bên trong một quốc gia là một sự kiện kiểm duyệt, trong khi một địa chỉ nằm trong Spamhaus hay một DNSBL là một sự kiện về uy tín, với nguyên nhân khác và cách khắc phục khác, điều mà hướng dẫn về danh sách đen của chúng tôi sẽ trình bày chi tiết. Nếu địa chỉ đó từng được công khai trong một cấu hình dùng chung hay một danh sách subscription công khai, hãy coi việc bị liệt kê ra là nguyên nhân và đừng công khai địa chỉ thay thế.

Ngụy trang có làm chậm mọi thứ không?

Gần như không, và hiếm khi theo cách người ta thường nghĩ. Bất kỳ CPU máy chủ x86-64 nào trong thập kỷ qua đều có AES-NI, nên bản thân việc mã hóa không phải là điểm nghẽn — trên một cổng 1 Gbps, mạng mới là điểm nghẽn. Reality thêm một cú bắt tay TLS thật ở bước thiết lập kết nối và gần như không thêm gì sau đó. Shadowsocks-2022 là nhẹ nhất trong ba giao thức. Hysteria2 có thể nhanh hơn đáng kể so với các lựa chọn khác trên một tuyến kết nối hay mất gói tin, và chậm hơn một chút trên một tuyến sạch. Thứ thực sự khiến bạn tốn độ trễ là địa lý, đó là lý do vì sao chọn địa điểm gần nhất còn dùng được sẽ tốt hơn chọn địa điểm kỳ lạ nhất.

Một đường hầm ngụy trang tự lưu trữ có tốt hơn một VPN thương mại không?

Để vượt qua một bộ lọc, thường là có, vì một lý do mang tính cấu trúc: dải địa chỉ của một nhà cung cấp thương mại được công khai, dùng chung bởi hàng nghìn người dùng và có thể bị liệt kê ra, nên chúng bị chặn hàng loạt và cứ thế mà bị chặn mãi. Địa chỉ của riêng bạn thì chỉ mình bạn dùng. Sự đánh đổi ở đây rất trung thực — một đường hầm một người dùng không cho bạn một đám đông để hòa lẫn vào, nên nó bảo vệ bạn trước việc bị chặn tốt hơn nhiều so với việc bảo vệ bạn trước việc bị quy kết danh tính. Bạn thực sự đang gặp vấn đề nào trong hai vấn đề đó là câu hỏi đáng trả lời trước tiên, và bài một VPS trả bằng crypto thực sự giấu được điều gì là bảng phân tích trung thực về điều đó.

Triển khai VPS offshore trong khoảng một phút

Không KYC, thanh toán crypto, toàn NVMe. Chọn gói, thanh toán bằng Monero hoặc coin lớn bất kỳ, nhận quyền root sau khoảng 60 giây.

Fenrir đứng canh