預設情況下,用戶端開的那個連接埠只有本機連得上,別的裝置連過來會被直接拒絕。這是個合理的預設值,也是一行就能改掉的預設值。改完之後,同一網段裡任何一台能填代理位址的裝置都能共用這條線路——Android 電視、遊戲主機、iPad、另一台什麼都沒裝的筆電,都算。

這個開關變的是監聽位址

選項一般叫「允許區域網路連線」或者 Allow LAN,設定裡對應 allow-lan: true。關著的時候核心只監聽 127.0.0.1,除了本機誰也連不上;打開之後監聽位址變成 0.0.0.0,任何網路卡上進來的連線都收。主機上要是有好幾張網路卡——例如插著網路線同時又有虛擬機器的虛擬網路卡——可以用 bind-address 把範圍收回到指定的那一個位址,其餘網路卡照舊關著。

合作推薦訂閱連結從哪來?本站合作機場註冊即送 1GB 香港高速體驗流量,可直接一鍵匯入。取得高速節點

接上去只要三步

  1. 在主機的用戶端裡打開允許區域網路連線,順手記下混合連接埠號碼,預設多半是 7890。
  2. 查主機在內網裡的位址。要找 192.168. 或者 10. 開頭的那個,不是「查我的 IP」網頁給你看的那個外網位址。
  3. 到另一台裝置上填手動 HTTP 代理:伺服器寫主機位址,連接埠寫剛才記的那個。Android 和大部分電視盒子在 Wi-Fi 的進階設定裡,iOS 在這個網路詳情頁的最下面,遊戲主機在網路設定的手動設定裡。
  4. 有件事值得先知道:很多電視盒子和遊戲主機只給一個 HTTP 代理的欄位,翻遍設定也找不到 SOCKS。混合連接埠兩種協定都收,填同一個號碼就行,不用再去找別的。
ipconfig
ip -4 addr show
ifconfig | grep inet

看著都對,就是連不上

十次有九次是防火牆。用戶端第一次監聽外部位址時,Windows 會跳一個框問你允許在專用網路、公用網路還是兩者上通訊。這個框經常在沒人看清的時候就被點掉了,或者只勾了公用網路而家裡的 Wi-Fi 被系統歸成專用。結果是主機自己用得好好的,別的裝置一台都連不上,用戶端介面上還什麼異常都看不出來。去防火牆的輸入規則裡找到用戶端或者核心那一條,確認它在你目前所處的網路類型下是允許的。macOS 上對應的位置在系統設定的防火牆那一節;Linux 上要看你用的是 ufw 還是 firewalld。

先驗連接埠,再懷疑裝置

curl -x http://127.0.0.1:7890 -I https://www.cloudflare.com
curl -x http://192.168.1.10:7890 -I https://www.cloudflare.com

第一條在主機上跑,第二條在另一台電腦上跑,位址換成你自己的。主機通、別的機器不通,那就是防火牆,或者兩台根本不在同一個網段——常見的家用網路裡,兩邊位址的前三段應該是一樣的。兩條都不通,那是用戶端或者節點的事,和區域網路共享無關。沒有 curl 的裝置就用瀏覽器隨便開個頁面,圖片出得來就是通了。

開之前先想清楚誰能連

  • 同網段的裝置都能連,代理不認人。想加道門檻就在設定裡寫 authentication,值是一串「使用者名稱:密碼」,之後裝置端填代理時會多兩欄要填。宿舍、分租、公司這類環境下這不是選配。
  • DHCP 早晚會換位址。主機重開一次,或者租約到期,位址一變,之前設好的裝置集體失聯。在路由器上給主機做位址保留,或者直接設成靜態,省掉後面反覆重填。
  • 有些裝置根本沒有代理設定,很多智慧家電和老電視就是這樣。讓整個網段什麼都不設定就走代理是完全另一回事——閘道裝置、旁路由、透明代理,難度和影響範圍都大得多,不在這篇範圍裡。
別在公共 Wi-Fi、宿舍網路、公司網路這類大網段上開。allow-lan 不認人:同網段裡任何一台裝置都能拿你的代理當免費出口,產生的流量和存取紀錄都記在你頭上。真到了非開不可的場合,bind-addressauthentication 是底線而不是加分項——更多時候,正確答案是別開。