当前位置: 首页 > news >正文

家里吃灰的电脑再利用,买个域名就能当服务器用

家里吃灰的电脑再利用,买个域名就能当服务器用

家里不用的旧电脑经过简单的配置也能当服务器使用。不是那种只能在局域网里自嗨的"服务器",是从外面用手机5G、用公司WiFi都能直接通过域名访问的那种。而且全程只需要花39元购买一个域名。

之前我租了台最低配的ECS跑个人项目,到期续费时发现涨价了不少。为了省点钱,不如把旧电脑再利用一下。IPV6 + DDNS 方案,只需要准备一个域名,就能实现家里电脑当服务器用。

你家宽带大概率已经有IPv6了

我用的是移动宽带,光纤入户。之前一直以为IPv6是个很遥远的东西,直到有天在路由器后台瞥了一眼——嗯?居然已经分配了IPv6地址?

查了一下才发现,三大运营商这几年已经把IPv6铺得差不多了。移动尤其积极,基本上只要你家光猫不是十年前的古董,IPv6默认就是开的。

光猫有IPv6不代表万事大吉了。后面还有几个坑得我挨个说。

配置路由器支持ipv6

路由器也需要配置,我使用的是小米路由器,在路由器运行模式的界面切换到中继模式。连接到路由器的设备直接被分配了ipv6地址,光猫负责ipv6地址的分配。

光猫的IPv6防火墙

光猫设备拿到了公网IPv6地址。路由器工作在了中继模式。从电脑ping外网的IPv6地址也通了。

但是外网设备能访问家里设备吗?不行。后来经过调查发现,光猫默认开启了IPv6入站防火墙,把所有来自外部的请求全挡了。

问题也好解决,登录光猫后关闭ipv6防火墙就好了。

进光猫后台,找"安全"或者"防火墙"相关的设置页,把IPv6入站防火墙关掉。每个光猫的选项位置不同,有的叫"IPv6 SPI防火墙",有的叫"IPv6入站规则"。总之找到它,关掉它。

关掉之后,从外面访问家里的IPv6地址——通了!


IPv6地址居然会变?

家庭宽带的IPv6前缀是通过DHCPv6-PD动态分配的。路由器重启、ISP那边维护、或者DHCPv6租约到期重新获取——这些情况都可能导致你的前缀发生变化。前缀一变,后面所有设备的地址就全跟着变了。 为了应对ipv6地址变化,我们需要一个DDNS(Dynamic DNS)服务。通过将域名和IPv6地址做一个映射,来实现动态更新IPv6地址。

DDNS方案:Python脚本 + 阿里云域名

写个脚本,每隔几分钟检测一次本机的稳定IPv6地址,如果变了就调阿里云API更新域名的AAAA记录。

域名我用的阿里云,便宜。.cn后缀的一年三十多块,.com也就六七十。在阿里云控制台申请就行,跟买东西一样,没什么好说的。

然后是权限。别用你的主账号AccessKey,去RAM访问控制创建一个子账号,专门给DDNS脚本用。权限给最小化——只需要三个操作:DescribeDomainRecordsAddDomainRecordUpdateDomainRecord

脚本的逻辑其实很简单:

整个脚本不到200行,纯Python标准库,不需要pip install任何东西。Python 3.6以上就行,现在几乎所有Linux发行版都自带了。

定时任务用cron,每5分钟跑一次:

*/5 * * * * /usr/bin/python3 /opt/ddns/ddns.py>>/var/log/ddns.log2>&1

5分钟这个频率我觉得刚好。够快——就算前缀变了,最多5分钟的不可达时间。也够慢——一个月下来API调用次数也就八千多次,阿里云的免费额度完全够用。


跑起来了

到现在跑了两个多星期,还算稳定。 现在在外面用手机5G打开浏览器,输入域名,直接就能访问到家里那台电脑上的服务。跟访问云服务器没什么区别。

总结

当然,免费的东西总有代价。家里宽带的上行带宽一般就30~50Mbps,跟云服务器比确实差了点意思。另外运营商基本都会封掉80和443端口(家庭宽带不允许对外提供标准Web服务),你得换别的端口,比如8080、8443。

还有稳定性——家里断个电断个网,服务就挂了。不像云服务器有SLA兜底。

但如果你跟我一样,只是跑个个人项目、搭个开发测试环境、挂个API或者私人网盘之类的,这个方案绰绰有余。

http://www.jsqmd.com/news/1080592/

相关文章:

  • 如何快速配置Realtek 8852AE Wi-Fi 6驱动:完整实用指南
  • RoboScience 发布通用具身大模型 Visics,破解具身智能泛化与数据难题!
  • 30+文档平台自由获取指南:突破内容获取障碍的智能工具
  • 世界杯主题活动海报转化拆解:信息层级、利益点与生成输入实操
  • 企业加密文件解密指南:从天锐蓝盾原理到合规操作实践
  • uniapp组件uni-datetime-picker常见bug
  • Python的__enter__中的清理异常
  • 多模型动态路由(Fusion):从“算力霸权”到“架构分权”的工程范式转型
  • 网络安全监控体系
  • 从零到生产就绪,VMware+Ubuntu开发环境搭建全流程,含SSH、Docker、IDE远程调试配置
  • 销售离职带不走客户?一部剪流AI员工手机,如何彻底杜绝销售飞单与客户流失
  • 如何用video-compare实现专业级视频质量分析与技术对比
  • 嵌入式系统开发实践
  • Spring Boot 自动装配机制的触发条件
  • 2026年,专业永康别墅门供应商将带来怎样的品质与惊喜?
  • OFDM项目开发(08):OFDM系统中的循环前缀(CP)插入模块设计——基于Xilinx BRAM的Verilog实现
  • 【小白也能轻松用】轻量化纯净安装包,一键部署 OpenClaw v2.7.9 无多余繁琐配置步骤(最新安装包)
  • B站视频转文字终极指南:3分钟让任何视频变成可编辑文本
  • 混合注意力学习(1): 线性注意力
  • 魔兽争霸3辅助工具终极指南:5分钟解决所有兼容性问题
  • FDD大规模MIMO中鲁棒反向注水算法:应对CSI反馈挑战的工程实践
  • SQLServer RAG笔记5:为SQLServer 2025配置Ollama
  • 电池寿命预测的AI革命:微软开源工具BatteryML深度解析
  • 日志管理化技术中的日志收集日志分析日志存储
  • 游戏网络同步:状态同步与帧同步的选择与实现
  • DarkHole2靶场渗透实战:从信息收集到权限提升的完整路径解析
  • 嵌入式处理器选型实战:从以太网与硬件加密需求到MCF5475应用解析
  • 流式计算架构设计
  • 绝地求生压枪宏:用Lua脚本实现罗技鼠标精准后坐力控制的完整指南
  • Java CompletableFuture 并发性能优化