
先说说为啥要自己搞VPS
可能有人会问,买个现成的VPS不香吗?一个月几十块钱,省心省力。
确实,如果你只是想要个能用的VPS,直接买肯定最方便。但自己搞有几个好处:
第一是便宜。 我这台机器除了电费基本零成本,算下来一年电费也就200多块。买VPS的话,同样配置一年至少要500-800。
第二是学东西。 从硬件到系统到网络,整套流程走下来,比看十本书学得都快。我现在去面试,跟面试官聊服务器管理,人家一听就知道是真干过活的。
第三是自由。 想装啥装啥,想怎么配置怎么配置,不用担心服务商的各种限制。上次我想跑个AI模型,买的VPS直接给我停机了,说占用资源太多。自己的机器就没这破事。
当然缺点也明显:得自己折腾,网络是家庭宽带(没有公网IP的话还得想办法),稳定性肯定比不上机房。
硬件怎么选?别听那些配置表
网上那些配置表看着挺专业,但都是废话。我给几个真实建议:
CPU够用就行
我这台i5-6500四核的,跑个WordPress博客、几个Docker容器,CPU占用从来没超过30%。你要是有老的i3甚至奔腾,都能凑合用。
千万别买什么至强服务器CPU,一来贵,二来功耗高,三来散热噪音大得要命。我朋友就买了台二手服务器,放家里跟拖拉机似的,最后实在受不了又卖了。
内存尽量大一点
这是我踩过的坑。一开始我觉得8GB够了,结果装完系统、跑几个容器,内存就吃紧了。后来又加了8GB,才舒服起来。
我的建议是至少8GB起步,有预算直接上16GB。内存条便宜,闲鱼上DDR4 8GB也就百来块钱。
硬盘一定要SSD
这个没得商量。机械硬盘慢得要死,开个网站都能卡半天。我一开始图便宜用了块500GB机械盘,后来实在受不了,换了256GB的SSD,速度提升太明显了。
不用买太大的,系统盘256GB够用,数据可以单独挂机械盘。我现在就是这么配的,系统和应用在SSD上,视频文件这些不常用的扔机械盘。
网卡必须千兆
这点容易被忽略。如果你的网卡只有百兆,那带宽再高也没用。现在的主板基本都是千兆网卡了,老机器的话注意检查一下。
电源和散热别省
服务器要24小时开机,电源不稳或者散热不行,迟早出问题。我第一次搞的时候没注意,夏天机器热得烫手,跑了三个月主板就烧了一个电容。
后来买了个塔式散热器,机箱加了两个风扇,温度立马降下来。现在夏天满载CPU也就60多度。
操作系统怎么选?Ubuntu闭眼入
这个我试了好几个,最后发现还是Ubuntu Server最省心。
为啥不选Windows Server
首先是吃资源,8GB内存装完系统就剩4GB不到。其次是授权问题,正版要钱,盗版风险大。最关键的是,服务器用Windows真没必要,该用命令行的还是得用命令行。
我一开始就是装的Windows Server 2016,折腾了一星期发现还是Linux香,果断重装了Ubuntu。
为啥不选CentOS
CentOS已经停止维护了,RedHat把精力都放在收费的RHEL上了。虽然现在还能用,但长远来看不是好选择。
Ubuntu Server的优点
文档多,遇到问题Google一搜一大把。我装系统过程中碰到的所有问题,基本都能在Ubuntu论坛找到答案。
软件源丰富,想装啥基本都有。apt这个包管理器用起来也顺手。
版本选择我推荐22.04 LTS,LTS就是长期支持版,稳定性有保证,能用到2027年。
装系统的注意事项
制作启动盘
下载Ubuntu Server的ISO镜像,然后用Rufus或者balenaEtcher做个启动U盘。这两个软件都是傻瓜式操作,点几下就完事。
我第一次用UltraISO做启动盘,结果装系统时总是报错。后来换了Rufus,一次成功。
分区别搞太复杂
网上那些教程动不动就分七八个区,根分区、boot分区、home分区、var分区……新手根本搞不明白。
我的建议是简单粗暴:
根分区 / 给100GB swap交换分区给内存的1.5倍,比如8GB内存就给12GB 剩下的全给 /home
这样分既清晰又实用。根分区100GB放系统和软件绰绰有余,数据都在home里,万一要重装系统也方便。
用户和密码设置
装系统时会让你设置用户名和密码。别用root做日常用户名,安全性不好。我一般设置成自己的名字拼音。
密码别太简单,至少12位,大小写字母+数字+符号。我现在用的密码都是密码管理器生成的20位随机字符串。
网络配置是个大坑
装完系统第一件事就是配网络,这块我踩了好几天的坑。
公网IP的问题
现在运营商基本不给家庭宽带分配公网IP了,都是内网IP。没有公网IP的话,你在外面就访问不了家里的服务器。
解决办法有几个:
给运营商打电话要公网IP。有些地区的联通和电信还能给,理由就说要用监控设备。我打了三次电话,最后给了个公网IP,但是动态的,每天会变。
用DDNS动态域名。IP会变没关系,用个DDNS服务自动更新域名解析。我用的是阿里云的DDNS,免费的,脚本跑起来IP一变就自动更新。
用内网穿透工具。frp、ZeroTier这些都行。我测试过frp,速度还可以,就是搭建有点麻烦。
用Cloudflare的Tunnel。这个最简单,而且免费,就是速度稍微慢点。
我现在是公网IP+DDNS的方案,最稳定。
路由器端口映射
有了公网IP还不够,你得在路由器上做端口映射,把80、443这些端口映射到服务器的内网IP上。
每个路由器设置方法不太一样,但基本都是在”虚拟服务器”或者”端口转发”这个菜单里。我用的小米路由器,设置还算简单。
静态IP绑定
服务器的内网IP要设成静态的,别让它动态获取。要不然每次重启IP变了,端口映射就失效了。
Ubuntu配置静态IP很简单,编辑 /etc/netplan/00-installer-config.yaml 这个文件:
network:
ethernets:
enp3s0: # 你的网卡名称,用ip a命令查看
dhcp4: no
addresses:
- 192.168.1.100/24 # 你想设的静态IP
gateway4: 192.168.1.1 # 路由器IP
nameservers:
addresses:
- 223.5.5.5 # 阿里DNS
- 119.29.29.29 # 腾讯DNS
version: 2
保存后运行 sudo netplan apply 就生效了。
安全设置千万别偷懒
这块是重中之重,不做好安全措施,服务器分分钟被黑。
SSH端口第一个要改
默认SSH端口是22,这是全世界黑客都知道的。我刚搭好服务器那会儿,看日志每天几千次暴力破解尝试,全是扫22端口的。
改端口很简单,编辑 /etc/ssh/sshd_config:
Port 36522 # 改成一个高位端口,别用常见端口
保存后重启SSH:sudo systemctl restart sshd
改完端口后,那些扫22端口的立马消停了。
禁用root登录
root权限太大,万一密码被破解,整个系统都完了。我的做法是用普通用户登录,需要root权限时用sudo。
还是编辑 /etc/ssh/sshd_config:
PermitRootLogin no
配置防火墙UFW
Ubuntu自带ufw防火墙,好用还简单。
# 允许SSH(记得换成你改的端口)
sudo ufw allow 36522/tcp
# 允许HTTP和HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 启动防火墙
sudo ufw enable
装好后用 sudo ufw status 查看规则,确认没问题。
装fail2ban防暴力破解
这个工具会监控日志,发现有人多次登录失败就自动封IP。
sudo apt install fail2ban
sudo systemctl enable fail2ban
装完基本不用配置,默认规则就够用了。我现在每周看看被封的IP,基本都是国外的扫描机器人。
装点实用的东西
系统搞定了,该装点能用的服务了。
Web服务器选Nginx
Nginx比Apache轻量,性能也好。装起来一行命令:
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
装完后浏览器访问服务器IP,能看到Nginx欢迎页面就说明成功了。
数据库装MariaDB
MariaDB是MySQL的开源分支,完全兼容,性能还更好。
sudo apt install mariadb-server
sudo mysql_secure_installation
安装过程会让你设置root密码,删除测试数据库这些,按提示操作就行。
装个宝塔面板
虽然我会用命令行,但有个图形界面确实方便。宝塔面板是国产的,功能挺全,建站、管理文件、查看监控都能干。
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
装完会给你面板地址、用户名、密码。第一次登录建议改掉默认端口8888,避免被扫。
Docker必装
现在各种应用都有Docker镜像,一行命令就能跑起来,比传统安装方便多了。
curl -fsSL https://get.docker.com | bash -s docker
sudo usermod -aG docker $USER
我现在跑的Nextcloud私有云盘、Bitwarden密码管理器、Jellyfin媒体服务器,全都是用Docker部署的。
域名和SSL证书
有了服务器,接下来就该弄个像样的域名了。
域名去哪买
国内的话阿里云、腾讯云都行,但要备案,麻烦。我买的国外域名,在Namesilo,一年10美元左右,支持支付宝。
买完域名后,在DNS设置里添加A记录,指向你的公网IP。如果是DDNS,就用CNAME指向DDNS域名。
免费SSL证书
Let’s Encrypt提供免费的SSL证书,三个月自动续期。配合Certbot工具,安装超简单。
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d 你的域名.com
输入邮箱,同意协议,Certbot会自动配置Nginx,给你开启HTTPS。证书快到期时会自动续期,完全不用管。
我第一次搞SSL证书,还去买了个便宜的证书,后来发现Let’s Encrypt更好用,还不花钱。
日常维护经验
服务器搭好了,但维护工作才刚开始。
定期更新系统
每周执行一次:
sudo apt update
sudo apt upgrade -y
不嫌麻烦的话可以装 unattended-upgrades,让系统自动更新安全补丁。
监控服务器状态
我装了个htop和glances,随时看CPU、内存、硬盘使用情况。发现异常及时处理。
sudo apt install htop glances
运行 htop 或 glances 就能看到实时监控界面,比top好看多了。
备份备份备份
这是血泪教训。去年有次我瞎折腾,把系统搞崩了,数据全丢了。从那以后我养成了定期备份的习惯。
现在我的方案是:
每周自动备份重要数据到另一块硬盘 每月备份到移动硬盘 关键数据同步到云盘
宝塔面板有计划任务功能,可以设置自动备份,很方便。
看日志查问题
服务器出问题,80%能从日志里找到原因。常看的几个日志:
系统日志:/var/log/syslog Nginx日志:/var/log/nginx/error.log SSH登录日志:/var/log/auth.log
我一般一周看一次日志,检查有没有异常登录、报错之类的。
实际使用中的坑
电费其实不低
我这台机器满载功耗120W,一天24小时,一个月差不多60度电,按0.6元/度算,一个月36块,一年432。
如果你用的服务器级硬件,功耗可能更高。所以别以为自建VPS不花钱,电费也是笔开支。
网络稳定性
家庭宽带毕竟不是专线,偶尔会断网、掉线。我这边联通光纤,一个月能遇到两三次短暂掉线,每次几分钟。
如果你要跑关键业务,还是建议买专业VPS。自建服务器更适合练手、跑个人项目。
噪音和发热
夏天服务器散热风扇呼呼响,尤其是晚上,挺烦的。我现在是把机器放书房,关上门,卧室就听不见了。
如果你是放卧室,建议买静音风扇,或者干脆搞个小机箱,用被动散热。
带宽限制
家庭宽带一般是上行带宽小,我这边100M宽带,下行100Mbps,上行只有20Mbps。意味着别人访问你服务器的速度最高就20Mbps。
想跑高流量网站,这个带宽肯定不够。不过跑个人博客、小应用,够用了。
总结一下
从零搞一台VPS服务器,说难不难,说简单也不简单。关键是得有折腾的心,遇到问题不怕查资料不怕试错。
我整个过程花了差不多两周时间,期间重装系统三次,查文档无数次,但学到的东西是花钱买不来的。现在我对Linux系统、网络配置、服务器管理都有了实践经验,这比看十本书都管用。
如果你也想试试,我的建议是:
别怕折腾,坏了大不了重装 有公网IP是最好的,没有的话frp或Cloudflare Tunnel也行 安全措施一定要做足,改端口、设防火墙、禁root 从简单的开始,先搭个博客,再慢慢加功能 重要数据记得备份
自建VPS不是为了省钱,是为了学东西、获得自由。如果你只想要个稳定的VPS,直接买现成的更合适。但如果你想深入了解服务器运维,自己搞一台是最好的学习方式。
最后提醒一句:电费记得算进成本,服务器记得关机箱盖,不然容易进灰。祝大家折腾愉快!
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/dynamicip/vpsbh/1201.html
