Social Ops

在 Proxy 背後進行多帳號社群媒體管理

4 min read Published Updated 853 words

社群媒體平台並非靠魔法來連結帳號,而是透過彙整 IP 信譽、行為群聚以及瀏覽器指紋碰撞來達成。兩個帳號共用同一個代理 IP 即構成直接連結——像 Meta 和 TikTok 這類平台會將共用 IP 位址視為 95% 信賴度的共同擁有指標。若僅依賴代理而沒有為每個帳號進行 IP 隔離,保證在數天內就會被偵測出來。

為什麼共用 IP 特徵會觸發帳號連結

每個 HTTP 請求都會攜帶來源 IP。平台會將此 IP 連同帳號 ID、工作階段 Cookie 以及裝置指紋一併記錄。當第二個帳號從同一個 IP 進行驗證時,平台會執行跨帳號的 IP 比對。這並非單純的字串比對——他們會使用子網路群聚(IPv4 的 /24)、ASN 重疊以及時間接近性。如果兩個帳號在 24 小時內從同一個 203.0.113.0/24 出現,風險分數就會飆升。資料中心 IP 尤其危險:根據 ipqualityscore.com 等 IP 品質資料庫的資料,80% 的資料中心 IP 範圍在首次被社群媒體濫用團隊使用後的 24 小時內就會被標記。來自 ISP 集區的住宅 IP 表現較好,但即便如此,它們仍會依 ASN 分組——兩個帳號使用同一 ISP 在同一城市的不同 IP,仍然會共享同一個 BGP 前綴,平台會將其視為弱連結。

行動、住宅與資料中心 IP 的偵測特徵

行動 IP 來自電信級 NAT(CGNAT)範圍(RFC 6598)。單一行動 IP 可能服務數千名使用者——平台知道這一點,因此會將行動 IP 重疊視為雜訊而不予計入。但這並不表示行動代理就安全。像 T-Mobile 或 Vodafone 這類電信業者會從已知的 ASN 分配 IP,而平台會維護各家電信業者的信譽表。如果你將所有帳號都透過同一家行動電信業者路由,你們仍然共享同一個 ASN 訊號。來自 ISP(Comcast、Deutsche Telekom)的住宅代理在每個 IP 上提供較佳的匿名性,但其 IP 集區通常回收得很快——今天用於某個帳號的代理 IP,明天可能就分配給另一個使用者,破壞了工作階段的黏著性。資料中心代理最糟糕:它們便宜、快速,而且會立刻被標記。平台會執行 whois 查詢並檢查 PTR 記錄;指向 server.provider.com 的反向 DNS 就是一個即時紅旗。對於正式的多帳號設定,請使用住宅或行動代理,並搭配永不跨帳號重複使用的專屬 IP。

每個帳號的黏著工作階段——IP 持續性無可妥協

每個帳號必須在其整個生命週期中綁定單一代理 IP。工作階段的黏著性能防止平台看到 IP 變動,而 IP 變動本身就是一個可疑訊號。最簡單的實作方式是每個帳號一份代理設定檔。以下是一個 Bash 函式,它會使用專屬代理和隨機化的使用者代理字串來發起 curl 請求:

function acct_request() {
  local account_id="$1"
  local proxy_ip="$2"
  local proxy_port="$3"
  local ua=$(shuf -n1 /path/to/user_agents.txt)
  curl --proxy "socks5://$proxy_ip:$proxy_port" \
       --proxy-user "user:pass" \
       -H "User-Agent: $ua" \
       --cookie "session_$account_id=..." \
       --cookie-jar "/tmp/cookies_$account_id.txt" \
       "https://platform.com/api/endpoint"
}

這個腳本會讓代理指派在每個帳號 ID 下保持不變。對於瀏覽器自動化,請使用 Puppeteer,搭配透過 --proxy-server 設定的每個頁面代理,以及專屬的瀏覽器上下文。絕對不要讓帳號之間共用代理——即使只是一個來自共用 IP 的請求,也會被記錄下來,並且當其中一個帳號被標記時,可能觸發追溯性的連結。

瀏覽器指紋隔離與代理隔離並行

IP 只是其中一個維度。平台還會收集 Canvas 指紋、WebGL 渲染器、已安裝字型、時區以及 navigator.hardwareConcurrency。兩個帳號共享相同的瀏覽器指紋但使用不同 IP,仍然會以高信賴度被連結——指紋往往比 IP 更穩定。你必須為每個帳號隔離指紋。使用不同的瀏覽器設定檔(Chrome 的 --user-data-dir)或搭配指紋隨機化函式庫(如 puppeteer-extra-plugin-stealth)的無頭瀏覽器。即便如此,仍存在微妙的洩漏:navigator.webdriver 旗標、chrome.runtime 存在性,以及 WebRTC 的本機 IP 洩漏。請在瀏覽器中停用 WebRTC,或將其透過同一個代理路由。一個常見的錯誤是使用住宅代理卻讓 WebRTC 保持啟用——瀏覽器會透過 STUN 請求洩漏真實 IP,瞬間讓代理失效。

大規模停用的連鎖風險

當一個帳號因垃圾訊息、違反政策或自動化行為而被標記時,平台不會只停用那個帳號。他們會進行回溯掃描:所有曾經共用相同 IP、相同瀏覽器指紋,甚至相同登入模式(例如每天相同時間的活動)的帳號,都會被排入審查佇列。這就是大規模停用的連鎖效應。一個被入侵的代理 IP,如果你重複使用它,可能導致 50 個帳號一起被停用。更糟的是,平台之間會共享威脅情報——Meta 的 Facebook ThreatExchange 和 Google 的 reCAPTCHA Enterprise 會互相交換 IP 與指紋雜湊值。在 Instagram 上被標記的 IP,可能觸發 WhatsApp 或 Facebook 的停用。唯一的防禦就是嚴格的隔離:一個 IP、一個指紋、一個帳號。不要共用任何基礎設施。使用獨立的虛擬機器或 Docker 容器,每個容器搭配各自的代理與指紋設定。每週使用 virustotal API 或 ip-api.com 等工具稽核你的代理集區,檢查 IP 是否被列入黑名單——如果某個 IP 出現在任何濫用資料庫中,立即將其退役,並將該帳號遷移到新的 IP。一次停用連鎖的成本,遠高於為每個帳號維護專屬代理資源的成本。