當前位置:網站首頁>利用騰訊雲函數搭建免費代理池
利用騰訊雲函數搭建免費代理池
2022-05-14 18:28:01【YsterCcc】
前言
最近聽師傅有提到雲函數搭建代理池能實現代理功能來隱藏ip,原理是利用雲函數可以對外發包的功能再配合vps上socks服務,這裏記錄一下搭建過程
雲函數(Serverless CloudFunction,SCF)是雲計算廠商為企業和開發者們提供的無服務器執行環境,可在無需購買和管理服務器的情况下運行代碼是實時文件處理和數據處理等場景下理想的計算平臺。只需使用 SCF平臺支持的語言編寫核心代碼並設置代碼運行的條件,即可在某雲基礎設施上彈性、安全地運行代碼。
原理
雲函數(SCF)可通過 API 網關觸發器進行觸發,接受來自客戶端的數據,並將請求轉發出去。因為雲函數擁有非常多的出口IP,利用雲廠商提供的雲函數(函數計算)功能,將客戶端的HTTP請求進行轉發,就能達到代理的功能,那如何將請求轉發過去呢,這裏再利用socks代理對其進行連接然後將我們的請求通過搭建的socks轉發過去。這裏雲函數和socks都作為橋梁,雲函數一側對VPS發起連接,另一側對目標服務器發起連接,socks接受我們的請求轉發到雲函數那邊
原理的細節可以看看淺談雲函數的利用面
搭建
這裏搭建主要分為三部分,vpn上SCFProxy搭建socks服務端、騰訊雲上配置雲函數、本地代理配置。配置用到的環境
1.騰訊雲(免費注册,下面有鏈接)
2.vpn(阿裏雲centos7)
(1).python3.8.3(必須3.8以上)
3.火狐插件FoxyProxy或Proxifier代理軟件
vpn上SCFProxy搭建socks服務端
這裏用到了師傅的SCFProxy項目,這裏首先就是上傳SCFProxy項目到VPS上,上傳成功後進入到SOCKS5文件夾中執行命令
python3 -m venv .venv //python新建虛擬環境
source .venv/bin/activate //進入虛擬環境
pip3 install -r requirements.txt //python3必須3.8以上。
這裏下載完成後先配置下面的兩個操作,然後再回來運行socks服務端,運行時我是退出虛擬環境又跑到本機上運行了。
python3 socks5.py -u "API訪問路徑" -bp 監聽端口 -sp socks端口 --user user --passwd pass
eg: python3 socks5.py -u https://service--------tencentcs.com/release/helloworld -bp 19020 -sp 19022端口 --user yster --passwd pass
騰訊雲雲函數
進入控制臺後新建服務
這個是新版的編輯器,在這個py文件中寫入之前下載項目中的SCFProxy-main/SOCKS5/src/server.py文件
import json
import socket
import select
bridge_ip = ""
bridge_port = 1234
def main_handler(event, context):
data = json.loads(event["body"])
out = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
out.connect((data["host"], data["port"]))
bridge = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
bridge.connect((bridge_ip, bridge_port))
bridge.send(data["uid"].encode("ascii"))
while True:
readable, _, _ = select.select([out, bridge], [], [])
if out in readable:
data = out.recv(4096)
bridge.send(data)
if bridge in readable:
data = bridge.recv(4096)
out.send(data)
這裏的IP填vps的ip,port就是運行時候用到的bp值(比如說我這裏填的19020),有寶塔的也得在寶塔上把端口放行,這裏再把超時時間設置為最大,這樣一個socks會話最多能維持15min
配置完成後保存然後配置觸發管理,設置為API網關觸發
這是創建完成的樣子,下面這個路徑就是運行時用到的"API訪問路徑"
代理軟件
網上都是用的Proxifier,這裏我就用火狐插件FoxyProxy,感覺會更簡單一些
簡簡單單一張配置圖,代理類型必須SOCKS5不然後面瘋狂報錯67,ip填自己的vps地址,端口是運行時候的sp值,用戶名密碼就是運行時的user、passwd
留一個我自己當時開啟的命令
python3 socks5.py -u https://service--------tencentcs.com/release/helloworld -bp 19020 -sp 19022端口 --user yster --passwd pass
最後的執行效果
ip一直在更換而且是香港地區的ip,感覺訪問GitHub速度有加快,不過穀歌還是打不開,玩一玩還是挺有意思的
版權聲明
本文為[YsterCcc]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/134/202205141745416362.html
邊欄推薦
猜你喜歡
隨機推薦
- 不均衡樣本集的重采樣
- uni-app技術分享| uni-app轉小程序-實時消息
- SQL中某個字段大於等於且不等於某值該如何寫
- 【Leetcode】442. 數組中重複的數據
- 2022年為什麼降薪也要跳槽?機會比漲薪很重要?
- 工作流結合動態錶單的工作流程
- 為什麼要使用.NET5?.NET5是未來!
- (pycharm)安裝nltk包
- 安裝Apache
- 利用循環輸入輸出數組(簡便易學)利用循環設置函數
- 雲原生時代的搜索服務算力管理
- 證券投資基金的監管
- ArrayList循環删除元素的常見問題及解决方法
- Stack Overflow 上最熱門的 10 個 Kotlin 問題
- 555 定時器的時間計算
- 二叉樹的最近公共祖先
- 模擬卷Leetcode【普通】931. 下降路徑最小和
- C語言 數組(一維數組 · 二維數組)
- NFC之華為AIPASS認證:測試用例簡介
- 622. 設計循環隊列
- VMware虛擬機 之 NAT模式詳解
- 【Devops】kubernetes網絡
- 新式茶飲“拿捏”年輕人,“八馬茶業”們的出路在哪?
- 機器學習之金融風控
- 1.67版本vscode括號著色(Bracket Pair Colorizer)取消
- MySQL日期查詢使用的方法函數
- HugeGraph客戶端APP開發(一)
- [.Net]使用Soa庫+Abp搭建微服務項目框架(五):服務發現和健康監測
- 添加虛擬內存,不添加硬盤的方式
- Redis源碼學習(25),雙端鏈錶學習,adlist.h
- 虛幻5新特性之EnhancedInput
- 緩存命中錶示什麼?
- sencha touch 在線實戰培訓 第一期 第四節
- “我們從 Google 離職了”
- yolov5訓練測試與源碼解讀
- 原生JS 實現輪播圖效果
- 邏輯回歸 解决報錯:ValueError: Solver lbfgs supports only ‘l2‘ or ‘none‘ penalties, got l1 penalty.
- Oracle OCI 計算、存儲、網絡工具旨在降低雲複雜性
- Go項目實戰之日志必備篇[開源十年項目第11次更新]
- Shell脚本變量和運算符