iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
IT 管理

從零開始的網際網路隨筆系列 第 20

Day19- 代理是啥?(上)

  • 分享至 

  • xImage
  •  

到了 2025 年,說實在話我實在很少聽別人在說 proxy(代理、代理伺服器) 這東西。在這篇新聞中 駭客盯上Linux伺服器,惡意植入TinyProxy、Sing-Box工具作代理伺服器 如果你沒看懂 vmess-argo、vless-reality 等,那是非常正常的事。某方面來說,我們都很幸福,不用學習如何 "科學上網"。

昨天有講到反向代理,今天就來說說(順向)代理。我們可以偷偷借鑑一下 cloudflare 上的圖
cloudflare proxy
其中代理伺服器所扮演的角色像管家一樣,本地端的網路流量優先丟給代理伺服器,然後會讓代理伺服器把外網傳回的訊息導向正確的本地端,當然外網伺服器看到的 IP 會是代理伺服器的 IP。

是不是跟 NAT(Network Address Translation,網路位址轉換) 很像,要分別也非常簡單,代理伺服器是在 L7 (應用層)工作,而 NAT 只會改變 L3(網路層) 和 L4(傳輸層) 中的 IP。

講完了原理,簡單實作下

今天我們會用 tinyproxy 簡單實作,老規矩,先上拓譜圖
topo
然後請忽略 Ubuntu1 和 Ubuntu2 今天不會用到它們,並且想像,在上行網路有個代理伺服器在外網。
要用 tinyproxy 非常簡單,直接用指令 sudo apt install tinyproxy 就行了,然後打開設定檔案,使用指令 sudo vim /etc/tinyproxy/tinyproxy.conf ,由於今天只是簡單的實作,所以資安任何問題暫不考慮,所以

用完了記得關掉 !!!
/etc/tinyproxy/tinyproxy.conf 中有很多東西都已經預設好了,我們只需要改

Listen 0.0.0.0
# Allow 127.0.0.1
# ::1
Allow 0.0.0.0/0
BasicAuth <user> <yourStrongPassword>

其中 <user><yourStrongPassword> 分別填入使用者名稱和密碼即可
最後只要 sudo systemctl restart tinyproxy 即可投入使用

測試

要驗證也非常簡單,先用sudo systemctl status tinyproxy 確認是否成功運作,然後在任意設備上用 curl 指令 curl -I https://www.google.com --proxy <your-proxy-server-IP>:<port> --proxy-user <user>:<yourStrongPassword> 去看回傳的結果,如是 http 200 的狀態碼,則一切正常。
如果成功了,恭喜你,建立了第一個 http 代理伺服器。

瀏覽器上

要在瀏覽器上使用非常簡單,我們用 firefox 來示範,在 Settings > General > Network Setting > Connection Settings > Configure Proxy Access to the Internet 中選擇 Manual proxy configuration 裡的 http 代理伺服器的 IP 和埠號填上去按下 OK 後即可使用。
不過因為我們有設定 BasicAuth 所以使用時會出現框框要你填使用者名稱和密碼,這樣我們就正式使用代理伺服器來上網了

不過還遠遠不夠,眾所周知 http 明文傳輸訊息,在資安上欠缺考慮,所以整體的設計有待優化,改天再繼續


上一篇
Day18-填坑時間: CDN 和 反向代理是啥
系列文
從零開始的網際網路隨筆20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言