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

【从零到公网】本地电脑部署服务并实现公网访问(IPv4/IPv6/DDNS 全攻略)

从零到公网:本地电脑部署服务并实现公网访问(IPv4/IPv6/DDNS 全攻略)

在这里插入图片描述

适用场景:本地 API 服务、大模型推理服务、NAS、远程桌面等需要公网访问的场景
关键词:公网 IP、端口映射、内网穿透、IPv6、Cloudflare DDNS


一、背景

很多开发者在本地电脑上部署了服务(例如大模型 API),希望能让外网直接访问。但现实中,运营商 NAT、双层路由、动态 IP 等问题让公网访问变得复杂。

本文将结合实际案例,详细讲解如何判断自己的网络环境,并给出 IPv4 端口映射、内网穿透、IPv6 直连、Cloudflare DDNS 等多种解决方案。


二、判断是否有公网 IPv4

1. 查询当前出口 IP

在命令行执行:

curl myip.ipip.net

示例输出:

当前 IP: 112.123.15.45来自于: 中国 安徽 合肥 联通

这就是你当前的公网出口 IP。

2. 查看路由器 WAN 口 IP

  • 登录路由器后台(常见地址 192.168.0.1 / 192.168.1.1
  • 查看 WAN 口 IP
  • 对比 WAN 口 IP 与公网查询结果:
    • 一致 → 你有公网 IP
    • 不一致 → 你在运营商 NAT 后面(CGNAT)

3. 判断是否是私有地址

常见私有网段:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 100.64.0.0/10(运营商级 NAT)

如果 WAN 口 IP 在这些网段内,就不是公网 IP。


三、IPv4 公网访问方案

方案 1:有公网 IP(推荐)

  1. 在路由器做 端口映射(Port Forwarding)
    将公网端口(如 8000)映射到本机内网 IP(如 192.168.0.100:8000)
  2. Windows 防火墙放行该端口
  3. 外网访问:
    http://公网IP:8000
    

方案 2:双层 NAT(光猫 + 路由器)

  • 光猫 WAN 口是公网 IP → 光猫端口映射到路由器,再由路由器映射到本机
  • 光猫 WAN 口是内网 IP(如 100.x.x.x) → 运营商 NAT,无法直接映射

方案 3:运营商 NAT(无公网 IP)

  • 联系运营商申请“公网 IPv4”或“去 NAT 服务”
  • 或使用 内网穿透
    • frp(需公网 VPS)
    • cpolar(国内服务)
    • 花生壳(带域名)
    • ngrok(国外)

四、IPv6:突破 NAT 限制的利器

IPv6 地址资源充足,运营商一般会直接分配公网 IPv6,不需要 NAT。

1. 检测 IPv6

访问 test-ipv6.com,得分 10/10 表示可用。

Windows 查看:

ipconfig

找到 2408: / 2a0: 开头的 IPv6 地址。

2. 开启 IPv6

  • 光猫:开启 IPv4/IPv6 双栈
  • 路由器:开启 IPv6(DHCPv6-PD)
  • 本机:确保网络适配器启用 IPv6

3. 外网访问

直接用:

http://[你的IPv6地址]:端口

注意 IPv6 地址要用方括号。


五、用 Cloudflare DDNS 固定 IPv6 域名

如果 IPv6 地址会变,可以用 Cloudflare API 自动更新 AAAA 记录。

1. 获取必要信息

  • Zone ID(域名唯一标识)
  • API Token(DNS 编辑权限)
  • 目标子域名(如 api.example.com

2. 添加 AAAA 记录

在 Cloudflare DNS 页面添加 AAAA 记录,IPv6 地址先随便填一个。

3. Python DDNS 脚本

import requests, subprocessZONE_ID = "你的ZoneID"
RECORD_ID = "你的RecordID"
API_TOKEN = "你的APIToken"
RECORD_NAME = "api.example.com"def get_ipv6():result = subprocess.run("ipconfig", shell=True, capture_output=True, text=True)for line in result.stdout.splitlines():if "240" in line or "2a0" in line:return line.strip().split()[0].split("/")[0]return Noneipv6 = get_ipv6()
if ipv6:url = f"https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/dns_records/{RECORD_ID}"headers = {"Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json"}data = {"type": "AAAA", "name": RECORD_NAME, "content": ipv6, "ttl": 120, "proxied": False}print(requests.put(url, headers=headers, json=data).json())
else:print("未找到公网IPv6地址")

4. 定时运行

  • Windows:任务计划程序
  • Linux:crontab

六、总结

场景方案
有公网 IPv4路由器端口映射
双层 NAT光猫桥接 + 路由器拨号
运营商 NAT申请公网 IP / 内网穿透
IPv6 可用直接公网访问,配合 DDNS 固定域名

建议:如果 IPv6 可用,优先走 IPv6 直连 + DDNS,配置简单、延迟低、稳定性高。


后记
本文从判断公网 IP 开始,到 IPv4/IPv6 的公网访问方案,再到 Cloudflare DDNS 的自动更新,覆盖了本地服务公网化的常见路径。
无论你是部署大模型 API,还是搭建 NAS、远程桌面,都可以按本文思路实现公网访问。


文章转载自:

http://Mzx5K8Re.hyhzt.cn
http://awRCRdK9.hyhzt.cn
http://cPqCP89Y.hyhzt.cn
http://hCoNicYt.hyhzt.cn
http://L7ucpric.hyhzt.cn
http://NTGZ8eN9.hyhzt.cn
http://uSave7hz.hyhzt.cn
http://hiTIfolq.hyhzt.cn
http://6osSIfFP.hyhzt.cn
http://yS4SJxWG.hyhzt.cn
http://kGsQMz6B.hyhzt.cn
http://qr4BLSKJ.hyhzt.cn
http://vhL80ys9.hyhzt.cn
http://GzDo4eLS.hyhzt.cn
http://JZdKooU1.hyhzt.cn
http://NvTpSPCR.hyhzt.cn
http://Wt5AoNMc.hyhzt.cn
http://zxXcO1y4.hyhzt.cn
http://J25tKsgA.hyhzt.cn
http://DMcDuUjf.hyhzt.cn
http://Ky047GpG.hyhzt.cn
http://sWrZj7Gy.hyhzt.cn
http://Br6uNie7.hyhzt.cn
http://qUtCta3N.hyhzt.cn
http://vwW9ujFJ.hyhzt.cn
http://ljbuUiXk.hyhzt.cn
http://TilozzdH.hyhzt.cn
http://me5sES3M.hyhzt.cn
http://F13nIuRw.hyhzt.cn
http://rEjcB65B.hyhzt.cn
http://www.dtcms.com/a/383698.html

相关文章:

  • VTK基础(01):VTK中的基本概念
  • Sentinel:微服务架构下的高可用流量防卫兵
  • Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
  • OpenCV:指纹识别
  • map/multimap容器
  • leetcode 966. 元音拼写检查器 中等
  • esp32程序存储结构--自用笔记版
  • leetcode 21 合并两个有序链表
  • OneCode 移动套件多平台适配详细报告
  • RAGAS新手入门教程:从基础到实践
  • 在 CentOS 中安装 VirtualBox 增强功能的步骤
  • 网络编程-day4
  • 学习笔记:第一个Python程序
  • Docker-compose.yml集群设置
  • 课后作业-2025-09-14
  • 软件工程实践一:Git 使用教程(含分支与 Gitee)
  • 知识贡献缺乏激励该如何改善
  • 一个冷门算法——Floyd判圈算法在Leetcode中的应用
  • 程晓明在链改 2.0 六方会谈首提 “双众筹 + 私交所” 回应 RWA 国内落地可行方案
  • 【车载audio开发】【基础概念1】【音频基础概念通俗讲解】
  • O3DE社区发布2505.0版本
  • VSCode 的 Run and Debug 下拉菜单都是怎么配置的,原理是什么?
  • Ligero 和 Brakedown PCS中的tensor product结构
  • 高效群签名方案与优化方法
  • [第一章] web入门—N1book靶场详细思路讲解(二)
  • 行优先 vs 列优先:性能差异揭秘
  • python把文件从一个文件复制到另一个文件夹
  • 平衡车 -- 遥控器
  • 深度学习(八):学习率
  • VSCode使用prettier插件进行格式化配置