第一次接触腾讯云CVM,很多人是被"云服务器""云主机""弹性云服务器""云计算服务器"这一串名字搞晕的。其实它们指向的是同一个东西:一台24小时不关机的远程电脑。你在本地电脑上能干的事,它基本都能干,而且它托管在腾讯的机房里,有公网IP、有稳定的带宽、有独立电源和散热,不会因为你家小区半夜断电就趴窝。CVM是腾讯云对"云服务器"这个产品的官方简称,全称是Cloud Virtual Machine,也就是云虚拟机。这篇文章我想把手上的实操经验整理一遍,从选购配置、初始化设置,到搭饥荒联机服、做VSCode远程开发、用frp把家里NAS的服务暴露到公网,再到账单省钱,尽量讲透,适合刚买了机器不知道怎么下手的人,也适合买完吃灰想重新捡起来的人。
1. 为什么我会盯上CVM:一台云服务器到底解决了什么问题
1.1 从"买前幻想"到"买后吃灰":大多数人第一台云服务器死在哪儿
我自己第一台云服务器就是这么死的。买之前想象得很美好:搭个个人博客、挂个定时爬虫、给朋友开个游戏服、顺便练练Linux。结果机器到手,面对一片黑乎乎的终端窗口,连SSH是什么都没搞清楚,更别提什么安全组、镜像、密钥对。折腾了一下午连不上,就把这事撂下了,机器在控制台里躺了大半年,直到快到期才想起来还有个"云服务器"在扣钱。
后来复盘,发现吃灰的核心原因不是云服务器没用,而是没有把"使用场景"和"配置选择"提前对应起来。你买之前得先想明白:这台机器买来是干嘛的?是跑一个小网站,还是开游戏服,还是当开发机用,还是当内网穿透的跳板?场景不同,CPU内存带宽的选择完全不一样,初始化步骤也不一样。这篇文章我会按场景拆开讲,你只需要找到自己对应的那一节,照着做就行。
1.2 CVM在腾讯云产品体系里的定位:它不是唯一选择,但最通用
很多人不知道,腾讯云里能"开一台远程电脑"的产品不止CVM。轻量应用服务器(Lighthouse)也能干这事,云函数SCF也能跑代码。它们的区别在于抽象层级不同。
CVM是腾讯云最底层的虚拟机产品,给你一台完整的、独立的云主机。它走的是VPC私有网络,支持按量计费和包年包月,支持弹性伸缩、自定义镜像、跨地域复制,网络和安全组完全自己控制。说人话就是:这台机器完全归你,怎么折腾是你的事,灵活性最高。
轻量应用服务器则像一个"打包好的套餐",把系统镜像、应用环境(比如WordPress、宝塔面板)甚至固定的带宽都给你配好,界面也更傻瓜。它的玩法少一些,但胜在省心。后面我会专门说,什么时候该用CVM、什么时候换轻量更划算。
云函数SCF则是Serverless,你连服务器都不用管,只管传代码上去,按调用次数计费。但它不适合跑常驻进程——比如你不可能用云函数开一个24小时在线的饥荒服务器。所以如果需求是"持续运行的完整环境",CVM就是最稳的选择。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 买CVM前必须想清楚的四个配置问题
2.1 CPU和内存:别只看核数,要看用途
腾讯云CVM实例规格名目繁多,标准型SA2、SA3、S5、计算型C5、内存型M5等等,对新手来说先不用管这么多代号,你只需要关心两件事:CPU核数和内存大小。但具体选多大,要看用途。
我实测下来的经验值大致是这样:
| 用途 | 推荐配置 | 说明 |
|---|---|---|
| 个人博客、小型网站 | 1核2G | 装个Nginx或宝塔,WordPress都能跑,访问量不大完全够 |
| 爬虫、自动化脚本 | 2核4G | 多任务并发不吃力,别跑太激进就行 |
| 饥荒/MC联机服务器 | 2核4G起步 | 玩的人多建议4核8G,存档和人数上去之后CPU吃紧 |
| VSCode远程开发、编译 | 4核8G | 编译和跑测试比较吃资源,CPU型号选新一点的 |
| 模型训练(小规模) | 4核16G+GPU | 纯CPU跑深度学习很痛苦,这场景建议直接上GN系列GPU实例 |
一个很实在的建议:除非预算宽裕,否则第一台机器别买太大。你先买个小配置,比如2核4G,把业务跑起来观察几天,看云监控里的CPU和内存使用率。如果长期维持在80%以上,再升配;如果一直在30%以下,说明买大了,降配或者到期后换小机器。腾讯云在控制台里可以随时升降配置,按量付费实例尤其方便,但包年包月升配要补差价,降配有限制,所以先小后大更稳妥。
2.2 带宽的两种计费方式:固定带宽与按流量,差的不只是钱
带宽是新手最容易看走眼的一项。腾讯云买机器时,带宽计费模式有两种:按固定带宽和按使用流量。
固定带宽,就是你买一个确定的带宽值,比如5Mbps,不管你用不用,每个月都付这个钱。它适合流量稳定的服务,比如网站、游戏服务器,因为带宽占用是持续性的。
按使用流量,则是按你实际产生的出网流量计费,用多少付多少,单价看起来不便宜,但如果你平时根本不怎么跑流量,一个月可能也就花几块钱。它适合个人用途、测试环境、远程开发这类流量波动大但总量不高的场景。
举个例子。一台2核4G的CVM,固定带宽5Mbps的月费,可能比同配置按流量计费的基础主机费贵出不少。而如果你只是SSH连上去写写代码、偶尔传点文件,一个月流量可能只有几GB,按流量计费的账单会非常好看。我自己的习惯是:网站和游戏服选固定带宽,开发机和跳板机选按流量。
另外要说清楚一个方向问题:云服务器计费带宽通常只算出网带宽(也就是服务器往外面发数据的速率),从外部上传到服务器是不计费的。腾讯云控制台里显示的"带宽上限"可以随时调整,某些活动机型还支持临时升带宽,这些都可以在实例详情页操作,不用重新买机器。
2.3 地域和可用区:这东西一旦选错,后面全是眼泪
地域(Region)就是机房所在地。这个选项特别容易被人忽略,因为选的时候界面上一堆地名,看起来都差不多。但地域决定了三件事:延迟、备案、价格。
延迟很好理解,机器在离你近的地方,你访问它就快。你在国内,机器选上海、广州,打SSH和浏览网站的体感差距不大;但如果你人在国内,机器选硅谷,每次SSH都要跨太平洋绕一圈,敲命令都能感觉到卡顿,更别说搭网站给国内用户访问了。
备案这个问题更要命。只要你的服务器地域在中国大陆,并且你想把域名解析到这台机器上提供Web服务,那就必须ICP备案。备案流程要几周时间,身份证、核验、幕布拍照一套走下来。如果你不想备案,可以选中国香港或海外的地域,但代价是延迟会高一些,而且访问大陆可能会偶尔丢包。
再说可用区(Zone)。同一个地域下面会有多个可用区,比如广州二区、广州三区。对单台CVM用户来说,选哪个可用区影响不大,只要知道同地域不同可用区之间内网可以互通,跨地域才需要走公网。另外,CVM创建之后地域是不能改的,想换只能把当前机器做镜像,再跨地域复制镜像后新购机器,这个过程会收费。所以买之前想清楚,最好一次选对。
2.4 镜像是系统的"初始状态",很多人选错
镜像就是这台云主机的"出厂预装系统"。CVM创建时,腾讯云会让你从公共镜像、市场镜像、自定义镜像里选一个。
公共镜像是最常见的:CentOS、Ubuntu、Debian、Windows Server等。我的建议是,新手统一用 Ubuntu 22.04 LTS,原因是社区活跃、教程多、包管理方便,出了问题随便一搜就有答案。CentOS虽然老运维用得很多,但CentOS 7已经停止维护了,CentOS Stream的定位又变了,新手没必要在这个节骨眼上给自己的学习曲线加难度。Windows Server则是当你有明确需求(比如跑.NET程序、Windows桌面环境)才选,它比Linux吃内存,1核2G的机器跑Windows会很憋屈。
市场镜像则可以理解为"预装好应用的系统盘",比如带宝塔面板的镜像、带WordPress的镜像。如果你不想折腾命令行,选一个带可视化管理面板的镜像会省很多事。但要注意,市场镜像里有些第三方镜像可能做得不太干净,尽量选腾讯云官方标识的镜像,安全第一。
如果你是老手,还可以把自己现有的服务器做成自定义镜像,再去新购云主机一键复刻。这个后面讲迁移时会提到。
3. 新机初始化:从登录到顺手,一个上午搞定
3.1 SSH登录方式:密码省事,密钥安全
机器创建完成后,控制台会给你一个公网IP和初始密码(如果你选的是密码登录方式),拿到手第一件事就是SSH登录。Windows用户直接用系统自带的PowerShell或终端,Mac和Linux用户更不用说了,终端里敲:
bash复制ssh root@你的公网IP
然后输入密码回车,就进来了。如果连不上,九成是安全组没放行。腾讯云CVM的安全组就相当于一个防火墙,默认情况下只放行了少数端口。你需要在控制台找到这个实例绑定的安全组,添加入站规则,放行TCP 22端口——这是SSH的默认端口,没放行之前,外部SSH连接是进不来的。
我个人的建议是,从第一天起就用密钥登录而不是密码登录。密钥对的原理是用一对公钥和私钥做身份验证,公钥放在服务器上,私钥留在你本地。登录时不需要输密码,更安全,也不怕密码被暴力破解。腾讯云控制台创建密钥对之后,会生成一个私钥文件下载到你本地,后续用:
bash复制ssh -i 你的私钥文件 root@你的公网IP
登录即可。如果连不上,仔细看私钥文件的权限,Windows下有时候会因为权限过宽被拒绝,Mac/Linux下需要 chmod 600 你的私钥文件。
3.2 登录后必做的四件事:建用户、换端口、更新系统、配swap
刚拿到手的新机器,别急着跑业务,先把底子打好。我每次开新CVM都会做四件事,全程大概二十分钟:
第一,创建一个普通用户,日常操作不要用root。root权限太大,万一哪条命令手滑,后果很严重。Ubuntu下:
bash复制adduser 你的用户名
usermod -aG sudo 你的用户名
这样这个用户就有了sudo权限。之后日常登录都用这个普通用户,需要管理员权限时再 sudo。
第二,修改SSH默认端口,或者干脆只允许密钥登录。互联网上有大量扫描器在扫22端口,尝试用弱口令爆破。把SSH端口改成一个高位端口(比如22222),并在安全组里放行新端口,能过滤掉绝大多数扫描流量。修改SSH配置需要编辑 /etc/ssh/sshd_config,改完执行 sudo systemctl restart sshd 生效。注意:改端口前一定要先把新端口在安全组里放行,否则你把自己关在外面就麻烦了。
第三,更新系统软件包。Ubuntu/Debian系:
bash复制sudo apt update && sudo apt upgrade -y
这是把系统里已有的软件包升级到最新,顺便把安全补丁打上。别嫌这一步浪费时间,很多漏洞修复就是这么来的。
第四,配置swap交换分区。如果你的机器内存只有2G,跑个编译或者游戏服很容易OOM(内存耗尽,进程被杀掉)。swap是拿磁盘当内存用,虽然速度慢,但能防止进程直接崩溃。创建swap的流程很简单:
bash复制sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
再把 /swapfile none swap sw 0 0 写进 /etc/fstab 实现开机自动挂载。4G大小对2G内存的机器来说够用了。
做完这四件事,你的机器才算"能打"。接下来就能往上面部署具体的东西了。
4. 真正让CVM跑起来的几个高频场景
4.1 搭建饥荒联机服务器:一个被问爆的用途
在云服务器上开饥荒联机服务器,是很多人的核心诉求。在本地开服务器的问题是:你的电脑一关,朋友们就进不去了;而且本地网络的上行带宽通常很小,带几个人就卡。放到云服务器上,24小时在线,带宽管够,稳定得多。
流程大概是这样的。先装SteamCMD,这是Steam的命令行版客户端,用它下载饥荒联机版(Don't Starve Together)的专用服务器文件。在Ubuntu下,逐条执行:
bash复制sudo apt update
sudo apt install lib32gcc1 steamcmd
steamcmd
进入 Steam> 提示符后:
code复制login anonymous
force_install_dir /home/dst/server
app_update 343050 validate
quit
343050 是DST专用服务器的App ID。下载完成后,这个目录下就是服务器运行文件。接下来需要配置世界设置,官方文件在 DoNotStarveTogether/Cluster_1 下,需要准备 cluster.ini、Master/server.ini 和 Caves/server.ini 这几份配置。第一次跑,可以从网上找一份现成的模板改,注意把 cluster_owner 和 cluster_key 填成你在Klei官网(accounts.klei.com)生成的服务器Token,没有这个Token服务器起不来。
配置完成后,启动命令类似:
bash复制./bin/dontstarve_dedicated_server_nullrenderer -cluster Cluster_1 -shard Master
安全组方面,需要放行UDP协议的10999端口(Master)和10998端口(Caves,如果你开了洞穴),具体端口以cluster.ini里 master_port 和 caves_port 配置为准。这一步漏了,就会出现"服务器显示在线但别人进不去"的情况。
配置2核4G的机器,带一个主世界加洞穴,三五个人玩问题不大。如果是十几个人同时在线,那得考虑4核8G了。实测下来,饥荒服务器主要吃的是CPU单核性能,内存吃掉2G左右是常态,所以内存别低于4G。
4.2 用VSCode远程开发:让云服务器变成你的主力开发机
CVM做远程开发是我个人最常用、也最推荐大家用起来的一个方向。特别是那些"训练自己的模型是由vscode + 云服务器的使用"的字眼——说的就是这套玩法。本地笔记本风扇狂转,编译半天没动静,代码在一个环境里能跑、换台机器就崩,这些痛点用远程开发都能缓解不少。
实现方式很简单,VSCode装一个官方插件 Remote-SSH,然后配置好本地的SSH config,指向你的CVM。之后在VSCode左侧的远程资源管理器里,选"Connect to Host",就能直接连上云服务器,像操作本地文件一样编辑服务器上的代码。你在VSCode里打开的终端,也自动变成了服务器上的bash,跑命令、装依赖、看日志都在远端执行。这套方案的好处是本地只负责显示界面,真正的计算都在云端,你本地用一台轻薄本也能跑复杂的项目。
连接之后,配合 Jupyter 或 Gradio 这类工具非常舒服。比如你在服务器上开一个Jupyter Notebook:
bash复制jupyter notebook --ip=0.0.0.0 --port=8888
然后本地VSCode的端口转发功能会把服务器的8888端口映射到本地,浏览器直接访问 localhost:8888 就能打开Jupyter页面,体验和本地跑一模一样。跑模型、分析数据、调试代码都很顺手。
再补充一句,做深度学习训练的话,纯CPU的CVM只能跑跑小模型,真要练模型得上GPU云服务器(腾讯云GN系列)。但很多"跑通流程"的事,比如数据预处理、写训练脚本、调参测试,都可以先在普通CVM上干,最后再提交到GPU机器训练,这样能省不少钱。
4.3 用frp把内网服务暴露出去:NAS、开发板、远程桌面都能串起来
frp这个场景也是热搜里的高频词。它的作用是内网穿透:你家有一台NAS、一台树莓派,或者一台只在家里局域网能访问的机器,现在你想在外面也能访问它,怎么办?给家里拉的公网IP不一定有,有也可能随时变,直接端口映射到光猫又受限于运营商。frp的思路是:在一台有公网IP的云服务器上运行frp服务端(frps),内网设备主动发起连接到云服务器,两边建立一条隧道,外部用户访问云服务器的某个端口,数据就顺着隧道被转发到内网设备上。
部署分两步。第一步,在CVM上下载frp并运行服务端。到GitHub的frp release页面下载对应架构的二进制,解压后编辑 frps.toml(新版frp用toml格式,老版本是ini):
toml复制bindPort = 7000
然后启动:
bash复制./frps -c frps.toml
记得安全组放行TCP 7000。第二步,在内网设备上下载同一个frp的客户端(frpc),编辑 frpc.toml:
toml复制serverAddr = "你的CVM公网IP"
serverPort = 7000
[[proxies]]
name = "test-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
这样你从外网执行 ssh -p 6000 用户@你的CVM公网IP,就能连到家里那台内网机器的SSH。对应地,把 localPort 改成NAS后台管理端口、Web服务端口、远程桌面3389,就能实现访问NAS、访问内网网站、远程桌面等一系列穿透。域名这块,frp也支持为HTTP类型的代理绑定自定义域名,把域名的A记录解析到CVM的IP,在frpc里配置 customDomains,就能用域名访问内网的HTTP服务。
frp的安全问题要单独提醒。把内网端口暴露到公网,相当于给全世界的人开了一个门,如果内网服务自身没有身份认证,很容易被扫描到并被利用。我的建议是:尽量用frp自带的TLS加密,同时不要暴露22端口到公网,改用密钥登录;HTTP服务一定要在前面套一层类似Traefik或Caddy的反代,配好HTTPS证书。frp是对自身网络能力的一个巨大扩展,但扩展得越多,需要补的安全功课就越多。
4.4 域名解析和DDNS:把"动态IP"变成"固定的门牌号"
热搜里有一条"腾讯云域名如何添加飞牛ddns",这是玩NAS的人一定会撞上的问题。飞牛NAS(fnOS)这类系统自带DDNS功能,它会把域名的解析动态更新到当前家里的公网IP。如果你的公网IP是动态的,过几天一变,就靠DDNS让域名始终指向最新的IP。
配置的核心是拿到云解析DNS服务商的API密钥。如果你的域名在腾讯云(DNSPod)这边,登录控制台后去API密钥管理里创建一个密钥,拿到SecretId和SecretKey,然后在飞牛NAS的DDNS设置里选择"腾讯云 DNSPod",填入账号信息,再选择要更新的域名,保存即可。飞牛系统会在后台定时检测公网IP变化,一旦变化就自动调用API更新解析记录。这样一来,你在外面用自己域名的某个子域名加端口,就能访问到家里的NAS。
这个场景和上一节frp组合起来,就是一套完整的"云服务器+家庭内网"混合架构:CVM负责公网入口,frp打通隧道,DDNS保证域名永远指向你的入口地址。三者配合,能玩出非常多的花样。
4.5 上传和迁移:把本地文件、旧服务器数据搬过来
还有一个高频需求是"腾讯云上传"——怎么把文件传到云服务器上。最简单的做法是scp:
bash复制scp ./文件名 用户名@你的公网IP:/目标路径
传整个目录加 -r 参数。文件多、量大、需要断点续传的话,用 rsync 更靠谱:
bash复制rsync -avz --progress ./本地目录/ 用户名@你的公网IP:/目标路径/
这些都是在本地终端执行。如果你有旧服务器要迁到CVM(比如阿里云服务器迁移到本地虚拟机,或者从一个云厂商迁到腾讯云),思路是:在新机器上装好环境,用rsync把网站目录、数据库文件、配置一次性同步过来,再切生效。数据库迁移用 mysqldump 或 pg_dump 导出再导入,别硬拷数据文件,版本不一致很容易出问题。跨云厂商迁移,域名解析的切换时间是关键,先小范围切一部分流量,验证没毛病再全量切,这是我在迁移上吃过亏之后总结的教训。
5. 账单与续费:云服务器的钱怎么花才不冤
5.1 包年包月与按量计费:长期运行还是短期测试,选法完全不同
CVM有两种计费模式:包年包月和按量计费。
包年包月是一口价买断一段时间的机器使用权,比如一个月、一年、三年。单价便宜得多,腾讯云经常有"买一年送几个月"的活动,适合要长期稳定运行的业务。缺点是如果不想要了,退费有规则限制,灵活性差。
按量计费则是按秒或按小时扣费,随时创建、随时销毁,适合测试环境、临时搭建的场景。用完了直接销毁,不再扣钱。按量计费还有一个容易被忽略的选项:关机不收费。启用这个选项后,你实例关机时不会收取CPU和内存的费用,只会收云盘和公网IP的少量费用,非常适合那些"白天开、晚上关"的开发机。
我的选择建议很简单:长期跑的服务(博客、游戏服、frp服务端)用包年包月,短期测试和折腾用按量计费。千万别用按量计费的模式常开一台高配服务器,一个月下来账单能让你怀疑人生。
5.2 新用户优惠、学生机和续费差价:便宜是有条件的
搜索"免费云服务器""云服务器推荐"时,你大概率会看到各种新用户首单低价、学生认证优惠。这类活动是真的,但有几个坑要提前有心理准备。
第一,首单便宜不代表续费便宜。新用户1核2G的机器可能一年只要几十块,但是到期后续费是按原价的,可能一个月就要几十上百。所以用这类优惠之前,先想好到期后的打算:要么接受续费价格,要么到时候迁走,要么到时候去其他平台抢新用户优惠。
第二,学生机通常要学生认证,购买前准备好学生身份信息。价格确实给力,适合还在读书的读者。
第三,"免费云服务器"多数是限时试用,到期不续费实例会被销毁,数据拿不回来。如果只是练手,没问题;如果放了重要业务,哪怕是测试数据,也要养成定时备份的习惯。
顺带提醒一句,一些人会推荐找各种名不见经传的小厂家买低价服务器。不是说小厂家一定不好,但云服务器是一个需要长期稳定运营的东西,跑路风险、工单响应速度、故障复盘能力都是隐形成本。我个人还是倾向于主流云厂商,价格贵一点,但图个安心。
5.3 什么时候该换轻量应用服务器,什么时候留在CVM
聊到省钱,还有一个绕不开的话题:同一个场景,是留在CVM,还是换到轻量应用服务器?
我的判断标准就一条:你的需求在不在CVM的"高级能力"射程范围内。如果你只是搭个个人博客、跑个小项目、开个游戏服,不需要自定义VPC子网、不搞弹性伸缩、不依赖云监控告警和API做自动化,那轻量应用服务器往往更划算。轻量的配置是"固定套餐",带宽往往比同价位CVM的固定带宽大不少,而且自带一些应用镜像,开箱即用。
反过来,如果你已经开始玩VPC网络、要用安全组精确控制流量、配置负载均衡、做跨地域容灾、或者用Terraform这类工具管理云资源,那就留在CVM。轻量应用服务器在这些高级玩法上支持很有限。说白了,CVM的上限更高,但日常使用它把选择权都交给了你;轻量是把大部分选择替你做了,换来了更低的门槛和更省心的体验。
6. 一点个人体会
从第一台吃灰的CVM,到现在家里NAS、开发机、游戏服、frp跳板全都挂在一台小机器上,我的感受是:云服务器这东西,不怕你不会,就怕你买了不用。它不是一台"未来的电脑",而是一个放在外面、随时可用的工具箱——想跑什么业务,装好环境就能跑;想拆了重来,重新初始化镜像又是一台新机器。
最后再分享几个我踩过坑之后才养成的习惯:一是所有实例都打开监控和告警,CPU、内存、磁盘、带宽任何一个指标连续5分钟超阈值就给自己发短信,免得机器卡死了才发现;二是重要数据一定要做定时快照,腾讯云的快照服务按存储量收费,但那个钱对比数据丢失的损失,真的不值一提;三是每台机器都设置续费提醒,别让业务跑了一半因为忘记续费直接宕机,这在公司里是事故,在个人项目里也是糟心事。CVM这台"远程电脑",值得你认真对待它。
