第三章:服务器选型与部署
做期货套利,服务器选型是第一步。这一步走错了,后面全是坑。
我个人习惯把服务器比作「交易员的工作台」。你想想看,一个交易员如果桌子不稳、网络老断、电脑卡顿,他能做好交易吗?服务器也是这个道理。
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 本章知识体系
下面这张图,是我梳理的服务器选型与部署的核心逻辑:
这张图很直白:三步走完,服务器就能用了。但每一步都有细节,千万别跳步。
3.5 避坑指南
最后,分享几个我踩过的坑:
- 别选最低配:省那几百块,换来的是卡顿和延迟。套利交易差1ms可能就是亏损。
- 别用默认安全组:默认规则通常是全放通,等于没设防。一定要手动配置。
- 别忽略系统更新:Ubuntu 22.04的长期支持版很稳,但安全补丁还是要打的。
- 别把API密钥放代码里:用环境变量或者配置文件,权限设成600。
我曾经因为偷懒,把交易所的API密钥直接写死在Python脚本里。结果代码不小心传到了GitHub公开仓库...嗯,那天的经历让我学会了什么叫「手忙脚乱」。还好发现得早,没造成实际损失。
服务器选型与部署,说白了就是打地基。地基稳了,后面的策略、回测、实盘才能安心跑。别急,慢慢来。