當你的量化交易策略在本地電腦上運行良好,下一步就是將它部署到雲服務器上,實現 7×24 小時全天候運行。 但在此之前,我們需要了解一些基礎知識:什麼是雲服務器?為什麼大多數服務器都運行 Linux?這些神秘的命令行到底在幹什麼?
讀完這篇文章,你將能夠:理解雲服務器的基本概念、了解 Linux 的歷史和特點、掌握日常運維所需的核心命令、為部署量化交易系統打好基礎。
🌥️ 第一部分:什麼是雲服務器?
從「物理服務器」到「雲」
在雲計算出現之前,如果你想運行一個 24 小時在線的程序,你需要:
- 購買一台物理服務器(幾萬到幾十萬元)
- 租用機房空間(每月幾千元)
- 配置網絡、電力、散熱
- 僱人維護硬件
物理服務器 = 自己買房子,要操心裝修、維修、交水電費
雲服務器 = 租酒店房間,拎包入住,不用操心其他
雲服務器(Cloud Server)本質上是運行在雲服務商數據中心的虛擬機,你可以按需租用,按時計費,隨時擴展或釋放。
主流雲服務商對比
AWS
Amazon Web Services
全球市場份額第一,服務最全面。產品名:EC2
適合:企業級應用、全球部署
阿里雲
Alibaba Cloud
中國市場份額第一,中文文檔友好。產品名:ECS
適合:國內業務、A股交易系統
Google Cloud
GCP
數據分析和機器學習強項。產品名:Compute Engine
適合:AI/ML 項目、大數據分析
騰訊雲
Tencent Cloud
遊戲和社交領域經驗豐富。產品名:CVM
適合:國內業務、微信生態
💡 量化交易建議:如果你交易美股/港股/加密貨幣,推薦使用 AWS(新加坡或東京節點);如果交易 A 股,推薦使用阿里雲(上海或深圳節點)。
🐧 第二部分:Linux 的前世今生
為什麼服務器都用 Linux?
打開任何一家雲服務商的控制台,你會發現 90% 以上的服務器操作系統選項都是 Linux。為什麼?
| 特性 | Linux | Windows Server |
|---|---|---|
| 價格 | 🆓 免費開源 | 💰 需要授權費 |
| 穩定性 | ⭐⭐⭐⭐⭐ 可運行數年不重啟 | ⭐⭐⭐ 經常需要重啟 |
| 資源佔用 | 💚 輕量,512MB 內存可運行 | 🔴 至少需要 2GB 內存 |
| 安全性 | 🔒 開源社區快速修復漏洞 | ⚠️ 病毒和攻擊目標較多 |
| 遠程管理 | 🖥️ SSH 命令行,高效 | 🖱️ 需要圖形界面,帶寬大 |
Linux 發展時間線
貝爾實驗室的 Ken Thompson 和 Dennis Ritchie 創造了 Unix,現代操作系統的始祖。
Richard Stallman 發起 GNU 計劃,目標是創建一個完全自由的操作系統。
21 歲的芬蘭大學生 Linus Torvalds 發布了 Linux 內核,與 GNU 工具結合,形成完整系統。
最古老的 Linux 發行版之一,Ubuntu 的基礎。
基於 Debian,以「人性化」著稱,成為最流行的桌面和服務器發行版。
雲計算時代開啟,Linux 成為雲服務器的首選操作系統。
全球 90% 以上的雲服務器、100% 的超級計算機、Android 手機都運行 Linux。
常見 Linux 發行版
| 發行版 | 特點 | 適用場景 | 包管理器 |
|---|---|---|---|
| Ubuntu | 最流行,文檔豐富 | 通用服務器、開發環境 | apt |
| CentOS / Rocky | 企業級穩定 | 生產環境、企業應用 | yum / dnf |
| Debian | 極度穩定保守 | 長期運行的服務 | apt |
| Amazon Linux | AWS 優化 | AWS EC2 專用 | yum |
🎯 量化交易推薦:使用 Ubuntu 22.04 LTS(Long Term Support),穩定性好,Python 支持完善,社區資源豐富。
⌨️ 第三部分:Linux 實戰命令大全
以下是部署和維護量化交易系統最常用的 Linux 命令,建議收藏!
🔌 連接服務器
ssh -i ~/.ssh/your-key.pem ubuntu@your-server-ip
使用密鑰文件連接到遠程服務器(ubuntu 是默認用戶名)
ssh root@your-server-ip
使用密碼連接(會提示輸入密碼)
📁 文件與目錄操作
| 命令 | 說明 | 示例 |
|---|---|---|
pwd |
顯示當前目錄路徑 | pwd → /home/ubuntu |
ls |
列出目錄內容 | ls -la 顯示詳細信息含隱藏文件 |
cd |
切換目錄 | cd /home/ubuntu/trading |
mkdir |
創建目錄 | mkdir -p project/src 遞歸創建 |
rm |
刪除文件/目錄 | rm -rf folder ⚠️ 強制刪除(慎用!) |
cp |
複製文件 | cp file.py backup.py |
mv |
移動/重命名文件 | mv old.py new.py |
cat |
查看文件內容 | cat config.py |
head |
查看文件開頭 | head -n 20 log.txt 前 20 行 |
tail |
查看文件結尾 | tail -f log.txt 實時追蹤日誌 |
nano |
簡易文本編輯器 | nano config.py Ctrl+X 保存退出 |
vim |
專業文本編輯器 | vim config.py :wq 保存退出 |
📦 軟件包管理(Ubuntu/Debian)
sudo apt update
從軟件源獲取最新的軟件包信息(安裝前必做)
sudo apt upgrade -y
升級所有可更新的軟件包(-y 自動確認)
sudo apt install python3 python3-pip git -y
安裝 Python3、pip 和 Git
sudo apt remove package-name
卸載指定軟件包
🐍 Python 環境
| 命令 | 說明 |
|---|---|
python3 --version |
查看 Python 版本 |
pip3 install pandas numpy |
安裝 Python 包 |
pip3 install -r requirements.txt |
從文件安裝依賴 |
python3 -m venv venv |
創建虛擬環境 |
source venv/bin/activate |
激活虛擬環境 |
deactivate |
退出虛擬環境 |
📊 進程管理
| 命令 | 說明 | 示例 |
|---|---|---|
ps aux |
查看所有進程 | ps aux | grep python |
top |
實時監控進程 | 按 q 退出 |
htop |
更好看的 top | 需要先 apt install htop |
kill |
結束進程 | kill -9 12345(12345 是進程 ID) |
nohup |
後台運行程序 | nohup python3 bot.py & |
🔄 Screen / Tmux(保持程序運行)
當你關閉 SSH 連接時,正在運行的程序會被終止。使用 Screen 或 Tmux 可以讓程序在後台持續運行:
sudo apt install screen -y
安裝 screen
| 命令 | 說明 |
|---|---|
screen -S trading |
創建名為 trading 的會話 |
Ctrl+A, D |
分離會話(程序繼續在後台運行) |
screen -ls |
列出所有會話 |
screen -r trading |
重新連接到 trading 會話 |
exit |
在會話內輸入,結束會話 |
📤 文件傳輸
scp -i ~/.ssh/key.pem local_file.py ubuntu@server-ip:/home/ubuntu/
從本地上傳文件到服務器
scp -i ~/.ssh/key.pem ubuntu@server-ip:/home/ubuntu/data.csv ./
從服務器下載文件到本地
scp -i ~/.ssh/key.pem -r ./project ubuntu@server-ip:/home/ubuntu/
-r 參數用於遞歸上傳目錄
🌐 網絡相關
| 命令 | 說明 | 示例 |
|---|---|---|
curl |
HTTP 請求工具 | curl https://api.binance.com/api/v3/time |
wget |
下載文件 | wget https://example.com/file.zip |
ping |
測試網絡連通性 | ping google.com |
netstat |
查看網絡連接 | netstat -tlnp 查看監聽端口 |
ifconfig |
查看網絡配置 | 或使用 ip addr |
💾 系統信息與磁盤
| 命令 | 說明 |
|---|---|
df -h |
查看磁盤使用情況(-h 人類可讀格式) |
du -sh * |
查看當前目錄下各文件/文件夾大小 |
free -h |
查看內存使用情況 |
uname -a |
查看系統信息 |
uptime |
查看系統運行時間和負載 |
lsb_release -a |
查看 Linux 發行版信息 |
🔐 權限管理
chmod 755 script.sh
設置腳本可執行(755 = 所有者可讀寫執行,其他人可讀執行)
chown ubuntu:ubuntu file.py
將文件所有者改為 ubuntu 用戶
| 權限數字 | 含義 | 常用場景 |
|---|---|---|
644 |
所有者可讀寫,其他只讀 | 普通文件 |
755 |
所有者完全權限,其他可讀執行 | 腳本、目錄 |
600 |
只有所有者可讀寫 | 私鑰文件(.pem) |
777 |
所有人完全權限 | ⚠️ 不推薦,有安全風險 |
🚀 第四部分:實戰 - 部署 Python 程序
讓我們用一個完整的例子,演示如何將量化交易程序部署到雲服務器:
步驟 1:連接服務器
# 設置密鑰文件權限(只需執行一次)
chmod 600 ~/.ssh/your-key.pem
# 連接服務器
ssh -i ~/.ssh/your-key.pem ubuntu@your-server-ip
步驟 2:安裝必要軟件
# 更新軟件包列表
sudo apt update
# 安裝 Python 和 pip
sudo apt install python3 python3-pip python3-venv git -y
# 驗證安裝
python3 --version
pip3 --version
步驟 3:上傳代碼(在本地終端執行)
# 上傳項目文件夾
scp -i ~/.ssh/your-key.pem -r ./trading_bot ubuntu@your-server-ip:/home/ubuntu/
步驟 4:設置 Python 環境
# 進入項目目錄
cd /home/ubuntu/trading_bot
# 創建虛擬環境
python3 -m venv venv
# 激活虛擬環境
source venv/bin/activate
# 安裝依賴
pip install -r requirements.txt
步驟 5:使用 Screen 運行程序
# 創建 screen 會話
screen -S trading
# 激活虛擬環境
source venv/bin/activate
# 運行程序
python main.py
# 按 Ctrl+A, D 分離會話(程序繼續在後台運行)
# 下次連接服務器後,重新進入會話
screen -r trading
你的量化交易程序現在已經在雲服務器上 24/7 運行了!即使你關閉電腦,程序也會持續執行。
📝 總結
本文介紹了:
- 雲服務器:相當於租用遠程電腦,按需付費,隨時擴展
- Linux:服務器首選操作系統,免費、穩定、安全
- 核心命令:文件操作、軟件安裝、進程管理、文件傳輸
- 實戰部署:連接、上傳、運行 Python 程序
掌握這些知識後,你已經具備了將量化交易系統部署到雲端的基礎能力。在我們的課程中,會有更詳細的實戰演練,帶你一步步完成從本地開發到雲端部署的全流程。
📚 推薦閱讀:《鳥哥的 Linux 私房菜》— 華語世界最經典的 Linux 學習資料