一般來講,如果我們有一台需要做為代理的伺服器,我們可以自己寫代碼來實現。
如:nodejs
1. 建立一個代理伺服器
先建立一個代理伺服器,並且使用 TCP 協議來進行基本的數據轉發。
1 | const net = require('net'); |
2. 確保遠端伺服器的端口開放
假設你的遠端伺服器上的 Node.js 代理服務運行在 **0.0.0.0:1080
**,你需要確保這個端口對外是開放的。這樣,你可以從你的本地設備發送請求到這個端口。
比如我使用的是 Linux,可以檢查是否開放了端口,使用以下命令:
1 | sudo ufw allow 1080/tcp # 檢查1080端口防火牆是否允許通行 |
對與小白來講,其實完整的步驟應該是這樣的吖吖:
步驟 1:檢查 ufw
狀態
首先,檢查你的 ufw
是否已經啟動。你可以使用以下命令來查看狀態:
1 | sudo ufw status |
如果顯示 inactive
,那麼你需要先啟動 ufw
。
步驟 2:啟用 ufw
(如果尚未啟用)
如果 ufw
目前處於關閉狀態,可以使用以下命令啟動它:
1 | sudo ufw enable |
步驟 3:允許端口
假設你要允許 1080 端口,你可以使用以下命令:
1 | sudo ufw allow 1080/tcp |
這條命令會允許 TCP 流量通過 1080 端口。
步驟 4:檢查防火牆規則
設置完後,你可以再次查看 ufw
的狀態,確保端口已經被允許:
1 | sudo ufw status |
應該會顯示像這樣的結果,表示 1080 端口已經允許:
1 | To Action From |
步驟 5:關閉防火牆(可選)
如果你覺得麻煩,其實直接不需要上面做咁多,可以使用這個命令:
1 | sudo ufw disable |
這樣,端口 1080 就已經被允許了,你可以開始使用它來接收外部流量。
步驟 6:
如果你使用的是 云服務提供商,還需要確保安全組或防火牆規則允許端口 1080 的進入流量。
例如,我的設置:
3. 在本地機器設置代理
假設你的遠端伺服器 IP 是 **123.123.123.123
**,且代理端口是 1080,你現在需要在本地機器設置代理,讓本地的網絡流量都經過這個遠端的代理服務器。
你可以按照以下方式設置:
使用 cURL 測試遠端代理服務:
使用 cURL 在服務器端測試遠端代理服務:
1 | curl -x socks5://127.0.0.1:1080 https://www.google.com |
使用 cURL 在本地測試遠端代理服務:
1 | curl -x socks5://123.123.123.123:1080 https://www.google.com |
**
-x socks5://123.123.123.123:1080
**:這告訴 cURL 使用遠端伺服器(123.123.123.123:1080`)作為代理進行請求。其實一般來講呢,socks協議是要設置用戶名密碼的吖,命令:
1
curl -v -x socks5h://123.123.123.123:1080 -U username:password https://www.google.com
-x socks5h://123.123.123.123:1080
指定 SOCKS5 代理地址和端口。-U username:password
提供了代理认证所需的用户名和密码。
不過我這裏沒有設置。
在 Chrome 設置代理:
如果你想在瀏覽器中使用這個代理,則需要配置 Chrome 使其通過遠端的代理伺服器來訪問網站。
- 打開 Chrome。
- 點擊右上角的三個點,選擇 設置。
- 滾動到底部,選擇 進階。
- 在 系統 部分,點擊 打開代理設置。
- 在 Internet 屬性 中,選擇 連接 頁面,然後點擊 局域網設置。
- 在局域網設置中,勾選 使用代理伺服器,並設置 地址 為 123.123.123.123,端口 設為 1080。
- 保存設置後,Chrome 就會通過遠端代理伺服器來訪問 目標網站。