刘耀文

刘耀文

java开发者
github

使用Kaggle來當作http伺服器部署服務😂

剛剛去了解了一下 Kaggle,一周有 30h 的免費 GPU 算力,但是是使用 jupyter notebook 提供服務的,我不太習慣使用 notebook 來使用 python 環境,感覺適合使用單文件代碼來快速實現想法的工具,對於層級很多的工程化代碼,有一股代碼分割感,所以我想試試是否可以 SSH 連上去

可行方案#

使用 ngrok 內網穿透將 kaggle 中的 SSH 服務器暴露出來,以下是 notebook cell 代碼

# 1. 安裝並配置ngrok
!pip install pyngrok
from pyngrok import ngrok

# 設置ngrok認證token
ngrok.set_auth_token("your_auth_token")

# 2. 啟動SSH服務
!DEBIAN_FRONTEND=noninteractive apt-get install -y openssh-server
!mkdir -p /var/run/sshd

# 配置SSH服務,允許root登錄並啟用密碼認證
!echo "root:your_password" | chpasswd
!echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
!echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
!service ssh start

# 3. 使用ngrok暴露SSH端口
ssh_tunnel = ngrok.connect(22, "tcp")
print("SSH Tunnel:", ssh_tunnel.public_url)

# 4. 輸出本地SSH連接命令
ssh_host, ssh_port = ssh_tunnel.public_url.replace("tcp://", "").split(":")
print(f"Use the following command to connect via SSH:\nssh root@{ssh_host} -p {ssh_port}")

限制

運行發現,ngrok 需要綁定信用卡或者借記卡才能使用 TCP 端口,然而大陸的卡好像無法驗證通過

使用 HTTP 代理服務出去

將 Kaggle 上的 HTTP 服務穿透出去

%cd ../../
%cd kaggle
%ls
%cp -r input/testfilebox /my
%cd /my
%cd fcb-fronted
!npm  install
!npm run build
%cd ../
%pip install -r requirements.txt


# 設置ngrok認證token
ngrok.set_auth_token("your token")

# 2. 使用ngrok暴露FastAPI服務的HTTP端口
http_tunnel = ngrok.connect(12345, "http")
print("Public URL:", http_tunnel.public_url)

!python main.py

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://me.liuyaowen.cn/posts//fun/20240901and1


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。