第三章:服务器选型与部署

做期货套利,服务器选型是第一步。这一步走错了,后面全是坑。

我个人习惯把服务器比作「交易员的工作台」。你想想看,一个交易员如果桌子不稳、网络老断、电脑卡顿,他能做好交易吗?服务器也是这个道理。

3.1 云服务器怎么选?

国内主流就三家:阿里云、腾讯云、AWS。我三家用过,说说真实感受。

云厂商 优势 劣势 适合场景
阿里云 国内节点多,延迟低 价格偏高,带宽贵 主力交易服务器
腾讯云 性价比高,轻量应用服务器便宜 部分区域稳定性一般 备用服务器、回测环境
AWS 全球覆盖,服务丰富 国内访问慢,中文文档少 跨境套利、海外数据源

我建议:主力用阿里云,备用用腾讯云。为什么?因为期货交易所的服务器大多也在阿里云上,同机房延迟能控制在1ms以内。这个差距,在套利交易中就是真金白银。

核心配置建议:

  • CPU:4核起步,8核更稳
  • 内存:8GB够用,16GB安心
  • 硬盘:40GB系统盘 + 100GB数据盘(SSD)
  • 带宽:5Mbps保底,10Mbps舒适

我曾经帮一个朋友调试,他图便宜买了2核4G的机器。结果策略一跑,CPU直接飙到90%,行情数据都来不及处理。嗯,后来他换了8核16G,问题全没了。

3.2 操作系统配置:Ubuntu 22.04

为什么选Ubuntu 22.04?说白了,稳定、生态好、社区活跃。我最早用CentOS,后来发现很多量化工具包对Ubuntu支持更好,就转过来了。

系统安装完成后,第一件事就是更新和安装基础工具:

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装基础工具
sudo apt install -y git curl wget vim htop net-tools

# 安装Python环境
sudo apt install -y python3 python3-pip python3-venv

# 安装编译工具(有些库需要)
sudo apt install -y build-essential libssl-dev libffi-dev

这里有个坑:千万别用root用户跑交易程序。我见过有人图省事,全程root操作,结果被黑客入侵,服务器成了挖矿肉鸡。血的教训。

我的习惯:

创建一个专用用户,比如叫「trader」。所有交易程序都跑在这个用户下,权限最小化。

sudo adduser trader
sudo usermod -aG sudo trader
su - trader

3.3 安全组与防火墙设置

安全组是云服务器的第一道防线。说白了,就是「谁可以进来,谁不能进来」。

我建议的端口开放策略:

端口 用途 开放范围
22 SSH远程连接 仅限你的IP
80/443 Web管理界面 仅限你的IP
3306 MySQL数据库 仅限内网
6379 Redis缓存 仅限内网
其他 交易API端口 仅限交易所IP

你可能会问:为什么SSH只开放自己的IP?因为暴力破解太常见了。我有个朋友,开放了SSH端口给所有人,结果一天被尝试登录3000多次。后来他改了配置,世界清净了。

除了云平台的安全组,服务器内部也要配防火墙。我习惯用UFW,简单好用:

# 安装UFW
sudo apt install ufw

# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 开放必要端口
sudo ufw allow from 你的IP to any port 22
sudo ufw allow from 你的IP to any port 80
sudo ufw allow from 你的IP to any port 443

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status verbose

重要提醒:

配置防火墙时,千万不要先启用再配置。否则你可能把自己锁在外面。正确做法是:先配置规则,最后再enable。

我曾经手滑,在远程服务器上执行了「ufw enable」但忘了放行SSH端口。结果...只能找机房的人帮忙重启。尴尬。

3.4 本章知识体系

下面这张图,是我梳理的服务器选型与部署的核心逻辑:

服务器选型与部署核心流程 云服务器选择 阿里云(主力) 腾讯云(备用) AWS(跨境) 操作系统配置 安全组与防火墙 三步走:选云商 → 配系统 → 设安全

这张图很直白:三步走完,服务器就能用了。但每一步都有细节,千万别跳步。

3.5 避坑指南

最后,分享几个我踩过的坑:

  • 别选最低配:省那几百块,换来的是卡顿和延迟。套利交易差1ms可能就是亏损。
  • 别用默认安全组:默认规则通常是全放通,等于没设防。一定要手动配置。
  • 别忽略系统更新:Ubuntu 22.04的长期支持版很稳,但安全补丁还是要打的。
  • 别把API密钥放代码里:用环境变量或者配置文件,权限设成600。

我曾经因为偷懒,把交易所的API密钥直接写死在Python脚本里。结果代码不小心传到了GitHub公开仓库...嗯,那天的经历让我学会了什么叫「手忙脚乱」。还好发现得早,没造成实际损失。

服务器选型与部署,说白了就是打地基。地基稳了,后面的策略、回测、实盘才能安心跑。别急,慢慢来。