Contents

迷你主机基于家庭宽带搭建公网服务器 —— 私有云 (一)

Contents

大二时购入阿里云的服务器搭建个人博客,主要看中其提供的公网 IP。首年购机费用低廉,图形化管理面板功能便捷。但低价也带来了一系列问题:上行带宽低、服务器性能不足、内存小、存储空间有限,且续期费用昂贵。 于是我产生了想法:购买一台实体主机,配备公网 IP,这不就相当于拥有了一台永久的、性能强劲且存储充裕的个人私有云服务器吗?将其接入家庭宽带,实现更宽裕的上行带宽,异地通过 RDP 也能流畅使用。

✅ 一、什么是阿里云服务器

阿里云服务器,也叫 ECS(Elastic Compute Service,弹性计算服务),是阿里云提供的一种虚拟云主机。它类似于传统的物理服务器,但运行在云平台上,用户可以随时申请、配置、扩展、关闭或销毁它。

🔧 主要特点:

  • 按需计费(包年包月或按量计费)

  • 可远程访问(通常通过 SSH 或 RDP)

  • 可安装任意系统(Windows/Linux)

  • 支持公网访问(需要绑定公网IP)

  • 适合搭建网站、数据库、开发环境、应用后台等

✅二、什么是公网 IP(Public IP)

  • 作用:用于访问互联网,能被外网访问。但容易暴露攻击面。

  • 例子:服务器、网站、远程桌面等都需要公网 IP。

  • 示例地址123.45.67.89


✅ 三、什么是内网 IP(Private IP)

  • 作用:只在局域网内部使用,不能被外网直接访问。相对更安全。

  • 例子:家里 Wi-Fi 连接的手机、电脑、电视。

  • 常见地址段

    • 192.168.x.x

正式教程:

一、设备选购:

首先,我们需要选购一台实体主机作为服务器(私有云)主体。由于这是云服务器,不会涉及游戏场景,所以我们并不需要独立显卡。到 2025 年,集成显卡的性能早已突飞猛进,完全可以满足我们的日常需求。在 B 站 “龙翔可乐” 老师一系列关于迷你(mini)主机推荐的视频下,我选择了来自铭凡的 “UM760 Plus” 成品主机。mini主机小巧轻便,不占桌面空间。完美适配个人私有服务器。

posts/hugo-github-personal-server/1.png 由于我不懂电脑选购,这里我给出可乐老师的视频链接#[ mini主机新手入坑指南——2025年5月迷你主机推荐合集(含补)](【mini主机新手入坑指南——2025年5月迷你主机推荐合集(含国补)】 https://www.bilibili.com/video/BV1KALdzXE7j/?share_source=copy_web&vd_source=6846c505d708bbf3e98b49bc562f645f) 我购买的 UM760 Plus 在享受国补优惠后,入手价格为 1999 元。这台机器内存出厂默认是单根 16G,用户完全可以自己加装一根 16G 的内存条,将内存扩展到 32G。它还配有单个 2.5G 网口,以及 OCulink 转接口,通过这个转接口还能外接显卡,整体性价比很高。


二、操作系统OS选择:

操作系统个人建议选择Windows,我们的实体主机性能足够运行windows。并且图形化的界面方便操作。我选择的铭凡UM760 Plus出厂自带windows11操作系统,无需手动安装。


三、申请公网IP:

我认为搭建私有云服务器的难点只有两个:第一是获取公网 IP。网络上很多帖子称,申请公网 IP 时被拒搞得焦虑感蔓延,但我在实际申请中并未遇到太多阻碍 —— 只要真诚、不带有目的性且有礼貌地与客服沟通,修改公网 IP 的过程就十分顺利。当然,这可能存在地区差异。

以下分享我申请公网 IP 的详细沟通过程,供大家参考:

我的定位为浙江。家中宽带为中国电信。

  1. 接通人工服务
    拨打 10000 电信客服,系统语音提示后,直接说 “人工服务”。若首次未接入,可重复表达 “转人工”,约 2 次后会转接至真人客服。

  2. 前期信息铺垫
    接通人工客服后,避免直接提 “申请公网 IP”,先按以下流程沟通:

    • 咨询家庭宽带相关问题,我先表述:“想查一下家里宽带。”
    • 客服需要你提供装机地址、开户人姓名及身份证号。
    • 查到宽带后询问宽带套餐配置、剩余话费,降低沟通目的性。
  3. 提出公网 IP 需求及话术
    最后再提出修改为公网IP的需求。你提出需求后客服会问:“你修改公网的目的是什么?” 我的回答是:“家里给老人装了监控,需要公网 IP。”

我接通的客服二话不说直接帮我修改。即刻生效。为中国电信点赞👍


等待大约10min,待光猫重启完后。我们百度搜索 “ip” posts/hugo-github-personal-server/2.png 若本机IP出现为一个A类的公网IP基本上就成功拥有了公网的IPV4地址。 或者登陆ipw.cn 看一下有没有公网ipv4

这里顺便概要一下IP

✅ 什么是 IP 地址?

IP 地址(Internet Protocol Address) 是分配给网络中每台设备的唯一标识,用来定位设备传输数据。就像网络中的“门牌号”。


✅ IP 地址分类(IPv4)

一、按地址用途分:

类型范围/示例是否能上网用途说明
私有地址10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
❌ 不能直接上网局域网内部使用
公网地址除私有/保留以外地址✅ 可直接上网互联网通信使用

二、按地址类别分(传统A/B/C类)

类别范围主机容量
A 类1.0.0.0 – 126.255.255.255大型网络(千万级)
B 类128.0.0.0 – 191.255.255.255中型网络(万级)
C 类192.0.0.0 – 223.255.255.255小型网络(百级)
⚠️ 127.0.0.1 是本地回环地址,不上网。

四、更改光猫为桥接模式:

这是搭建过程中的第二个难点。以下分享我向客服申请更改光猫为桥接模式的详细沟通过程,供大家参考: 务必重新拨打客服电话,接入人工服务后留意是否为申请公网 IP 时的同一位客服。若为同一人,直接挂断后重新拨打,避免对方拒绝更改。依旧按老流程先咨询宽带信息,如套餐配置、账户余额等,最后再提出申请:“麻烦帮忙远程把光猫改成桥接模式。” 客服可能会询问目的,我的回答是:“家里买了个昂贵的华硕电竞路由器,想让路由器拨号上网。” 当时接通的客服没过多追问,直接帮我远程完成了桥接模式的更改。


五、设置路由器为拨号:

在光猫更改为桥接模式后,家里的wifi是上不了网的。为了不影响家人正常使用网络一定要熟悉流程后再进行这一系列操作。要提前获取宽带的账号密码(用于用户拨号上网),正常登入路由器的管理web页面。如果账号密码不知道使用开户的账号拨打客服修改。

为了更好理解我给出我家中的宽带网络拓扑图以及介绍家庭路由器、光猫、PPPOE拨号、桥接模式的概念: posts/hugo-github-personal-server/3.png


🏠 什么是家庭路由器(Router)?

✅ 定义:

家庭路由器是用来连接互联网,并在家中不同设备之间分配网络的设备。它让你家里的手机、电脑、电视等都能通过 有线或无线 Wi-Fi 连接到互联网。

✅ 功能:

  • 拨号上网(比如使用 PPPoE)

  • 分配内网 IP(DHCP)

  • 提供无线 Wi-Fi 信号

  • 网络防火墙、端口映射

  • 管理网络速度、家长控制等


🔌 什么是光猫(光纤猫/光调制解调器)?

✅ 定义:

光猫(全称:光纤调制解调器),是一种用来把 光纤信号转换成 电信号(以太网) 的设备,是连接运营商网络的“入口”。

✅ 功能:

  • 接收光纤信号(从外面来的网络)

  • 转换成网络接口(RJ45) 供路由器使用

  • 可能具有拨号、分配 IP、Wi-Fi 等简单路由功能

  • 有些光猫还带 IPTV 接口、电话接口


🔍 什么是 PPPoE 拨号?

PPPoE 是一种网络协议,它允许用户通过 以太网接口连接到互联网服务提供商(ISP),并进行类似“拨号上网”的认证流程。使用 PPPoE 时,你需要输入 ISP 提供的:

  • 用户名

  • 密码

这种方式就像老式的“拨号上网”,但它运行在现代的以太网上。


🔧 什么是光猫桥接模式:

光猫桥接模式(Bridge Mode)是指将光猫(光纤调制解调器)设置为 不进行拨号、不分配内网IP,而是将宽带信号“透传”给后端的路由器,让路由器来负责拨号上网(如 PPPoE)、分配局域网 IP 等功能。

正常光猫默认是“路由模式”:

  • 光猫自己拨号上网(PPPoE),

  • 自己做DHCP服务器,给家里设备分配IP;

  • 一般IP段为 192.168.1.x

桥接模式是这样工作的:

  • 光猫不拨号,只做一个纯粹的数据中转;

  • 路由器负责拨号,获取公网IP;

  • 网络管理、安全设置等全部交由路由器控制。


我家中的路由器型号为 TP-Link ”TL-WDR7660千兆版" 。这是个较老的路由器 。但只要拥有DDNS、端口映射(虚拟服务器)功能的路由器都可以,大家不需要为此再买一个新的路由器。

连接上wifi后我们ctrl+R 输入CMD打开命令提示符,查看IP。命令为 – ipconfig

posts/hugo-github-personal-server/5.png 我们找到无线局域网适配器 WLAN 查看默认网关 这个IP地址一般就为路由器的管理地址。 我以我家的内网地址为例子 为192.168.0.* 默认网关为 192.168.0.1 我们打开浏览器 输入 http://192.168.0.1/ 进入路由器后台管理页面


posts/hugo-github-personal-server/6.png 一般路由器背后的贴纸上,会有默认的路由器密码。 若实在忘记了可以拿个笔去戳路由器背面一个reset的小孔。具体怎么恢复出厂设置大家自行百度。 我这里给出我家 TP-Link 路由器的设置方法,我相信绝大部分路由器的操作流程都是雷同的。

我们打开"路由设置",把上网方式改成"宽带拨号上网"。


输入运营商给我们的宽带账号密码,连接后就可以正常连接上网。

posts/hugo-github-personal-server/7.png

之后我们就可以打开mini主机的RDP远程桌面功能


windows键+空格 输入“远程桌面设置”

posts/hugo-github-personal-server/8.png

打开远程桌面功能 不要勾选“要求设备使用网络级别身份验证”

posts/hugo-github-personal-server/9.png

公网电脑搭建的过程并不难,但配置基本的网络安全环境至关重要。

这里我们需要修改 RDP 默认的 3389 端口号,因为这个默认端口号的风险太大,很容易被暴力攻击或扫描。


windows键+空格 输入“regedit”进入注册表编辑器

posts/hugo-github-personal-server/10.png

输入 “计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp”

posts/hugo-github-personal-server/11.png

往下拉找到 PortNumber

posts/hugo-github-personal-server/12.png

点击修改 然后切换到10进制.这里数据数值修改为我们要的端口号

范围为 0-65535,写一个和3389不一样的就好

posts/hugo-github-personal-server/13.png

修改完后注册表即使保存,我们重启电脑就好

重启完后再到远程桌面设置里打开RDP功能,再检查rdp的端口号有没有正确修改。

posts/hugo-github-personal-server/9.png


但单单修改rdp端口还是不够安全,使用扫描工具就可以扫出来开放的端口号。所以我们可以使用nginx反代理 。


✅ 什么是 Nginx?

Nginx(Engine X) 是一个高性能的 Web 服务器反向代理服务器,还能作为 负载均衡器邮件代理服务器等。

它的常见用途有:

  • 静态资源服务器:如 HTML、CSS、JS、图片。

  • 反向代理:代理访问后端应用服务器(如 Node.js、Python、Java)。

  • 负载均衡:把请求平均分发到多台后端服务器。

  • HTTPS 终端:负责 SSL 加解密,后端用 HTTP 即可。


✅ 什么是 Nginx 反向代理?

反向代理(Reverse Proxy) 是 Nginx 的一个重要功能,它的作用是:

客户端并不知道后端真实服务器,而是请求 Nginx,由 Nginx 转发请求给内部服务器,再把响应返回给客户端。

📌 举个例子:

客户端 –> Nginx(公网 IP) –> 内部服务器(127.0.0.1:8080)

比如你在浏览器访问 https://example.com,实际上是:

  • Nginx 收到请求

  • Nginx 把请求转发给本地的 Web 应用(如 127.0.0.1:8080)

  • Web 应用处理后返回结果给 Nginx,Nginx 再返回给浏览器


🧠 为什么使用 Nginx 反代 RDP?

⚠️ 问题:

  • 直接暴露 RDP(默认3389端口)= 易被扫描、爆破、入侵

  • 无加密认证、攻击面大

✅ 解决方案:

使用 Nginx + TCP流代理 + 身份认证,让公网只访问 Nginx,然后由 Nginx 反向代理转发到内网的 RDP 服务。


🛠️ 一、安装 Nginx for Windows

✅ 步骤 1:下载 Nginx 官方 Windows 版

  1. 打开官网:https://nginx.org/en/download.html

  2. 找到 Windows 版本(稳定版),下载 zip 包

  3. 解压到任意目录(建议:D:\nginx

点击nginx/Windows-1.27.5下载 我安装到了D盘

posts/hugo-github-personal-server/14.png

解压后目录结构大概是:

D:\nginx
├── conf
├── html
├── logs
└── nginx.exe


posts/hugo-github-personal-server/15.png

打开nginx.conf文件

posts/hugo-github-personal-server/16.png 复制粘贴以下代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
worker_processes 1;

events {
    worker_connections 1024;
}

stream {
    upstream rdp {
        server 127.0.0.1:5001;  # RDP 目标地址
    }

    server {
        listen 5002 ssl;  # 对外暴露端口

        proxy_pass rdp;
        proxy_timeout 300s;
        proxy_connect_timeout 3s;

        ssl_certificate     D:/nginx-1.27.5/conf/cert.pem;
        ssl_certificate_key D:/nginx-1.27.5/conf/key.pem;

        ssl_protocols       TLSv1.2 TLSv1.3;
        ssl_ciphers         HIGH:!aNULL:!MD5;
    }
}

stream { upstream rdp { server 127.0.0.1:5001; # RDP 目标地址

目标 RDP 服务,这里是windows实际开放的RDP端口号.也就是我们刚刚注册表修改的端口号。

server { listen 5002 ssl; # 对外暴露端口

监听端口,代理 RDP。这里是你RDP公网开放的端口。也就是实际使用端口号。

很多人可能有疑问: 为什么conf配置文件里没有指定域名但还可以通过域名访问?

原因是:stream 模块工作在 TCP 层,不识别域名,只看端口。


📑之后我们再一个自签名证书

证书的作用

  • SSL/TLS 证书:证书用于加密你与外部客户端之间的通信。当你在外地通过浏览器或 RDP 客户端连接到你的服务时,SSL/TLS 证书会确保所有的数据都是加密传输的,防止被中间人攻击或数据泄露。

    • 作用:通过证书加密,确保数据在互联网上的传输是安全的。

    • 为何要使用:如果你没有证书,那么数据是明文传输的,容易被窃听和篡改。使用 SSL 证书后,即使别人能看到你的数据包,也无法解密其中的内容。

    • 外地连接:当你从外地的陌生电脑连接到 域名 时,如果你已经配置了正确的证书,连接就会是加密的。如果没有证书,你的浏览器可能会显示警告,提示“连接不安全”之类的信息。你可以选择信任自签名证书或者使用受信任的证书颁发机构(如 Let’s Encrypt)签发的证书。


一、准备工具(安装 OpenSSL)

:用 Win64 OpenSSL

安装时注意:

  • 选择安装路径如:D:\OpenSSL-Win64

  • 记住路径,后面需要用命令行进入这个目录


posts/hugo-github-personal-server/24.png posts/hugo-github-personal-server/23.png


✅ 二、生成证书的完整命令

打开 CMD,进入 OpenSSL 的 bin 目录:

我图片里的命令忽略是test

第 1 步:生成私钥(key 文件)

openssl genrsa -out key.pem 2048

第 2 步:生成自签名证书(cert 文件)

openssl req -new -x509 -key key.pem -out cert.pem -days 365

执行后会提示你填写一些信息,除了**Common Name全部回车即可,例如:

posts/hugo-github-personal-server/25.png

✅ 特别注意:**Common Name(CN)一定要写你的域名:否则浏览器/RDP 客户端会报证书名不一致。我图中由于test就回车了。

但我在《迷你主机基于家庭宽带搭建公网服务器 —— 私有云 (一)》并没有介绍DDNS的配置以及花生壳域名的配置,因为我在实际使用中感觉并不好。DDNS部分我将放在《迷你主机基于家庭宽带搭建公网服务器 —— 私有云 (二)》中。


✅ 三、将证书文件从OpenSSL 的 bin 目录放入 Nginx 指定目录

我的例子是conf文件夹里 就是和nginx.conf 在同一目录


总而言之,我们需要将实际的 RDP 端口号隐藏起来,把 Nginx 的监听端口映射到公网,让公网仅能访问 Nginx。当我们访问该监听端口时,Nginx 会通过反向代理将请求转发到内网的 RDP 服务。

设置完之后我们运行nginx,并设置开机自动启动


posts/hugo-github-personal-server/17.png

windows键+空格 输入“服务”

posts/hugo-github-personal-server/18.png

找到nginx 修改启动类型为 自动(延长启动)

posts/hugo-github-personal-server/19.png


配置完nignx后我们给主机固定内网静态IP地址,防止意外重启DHCP重新分配 。

我们选个后面一点的IP: 我的是192.168.0.177

选择使用下面的IP地址,也就是STATIC静态IP以及DNS服务器。

posts/hugo-github-personal-server/22.png


最后我们回到路由器后台页面,设置最重要的端口映射。

我们在TP-Link应用管理 找到虚拟服务器

实际就是映射管理 这个功能的名字各大品牌可能有差异 我们耐心找就好 现代路由器肯定有这个功能

posts/hugo-github-personal-server/20.png


为什么要映射两个端口:443 和 你的nginx监听端口

  • 端口 443:你配置了 Nginx 的 HTTPS 服务,用于加密连接。端口 443 是 HTTPS 的标准端口,任何通过该端口连接的请求都会被 Nginx 处理,并且使用 SSL/TLS 加密。这样,即使是外部的客户端与服务器之间的通信,也能够保持加密,保护数据安全。

  • nginx监听端口**:这个端口是你用来通过 Nginx 反向代理 RDP 服务的端口。因为 RDP 协议(远程桌面协议)使用的是 TCP 协议,而你并不希望直接将 RDP 端口暴露到公网上,Nginx 会帮助你将 RDP 流量从 监听端口代理到内网的 rdp端口。这样可以有效地隐藏你的实际 RDP 端口,增加安全性。

因此,映射 443 用于 HTTPS,映射 监听端口 用于反向代理 RDP。这样做的目的是:

  • 提高安全性:通过 Nginx 做反向代理,避免直接暴露实际的 RDP 端口给外部。

  • 使用 HTTPS:确保外部连接是加密的,通过端口 443 使用 SSL/TLS 协议。

打码的就是你在nginx.conf 里设置的监听端口,而不是实际的RDP端口

posts/hugo-github-personal-server/21.png

为什么两个端口都要映射且都是 TCP?

  • **RDP 服务是基于 TCP 协议的

  • 443 端口是 HTTPS 用的,也是 TCP 协议


完成这些后我们做一个收尾工作就是给windows账户设置为本地账户并且设置一个强密码

windows默认都是微软账户登陆,但在实际RDP使用的时候并不方便。大家自行百度更改为本地账户。

这里我只给出修改密码的地方

![[posts/hugo-github-personal-server/27.png]]

终于我们完整了基本的公网电脑的实现。我们在任何一台有互联网的电脑上打开rdp输入我们的当前的公网IP就可以连接了。


用户名就是电脑本地账户名称

密码就是我们设置的强密码,大家一定要使用强密码啊避免暴力破解。可以让ai生成一个强密码然后写在纸上什么的。

posts/hugo-github-personal-server/26.png]]