惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
博客园_首页
量子位
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
T
The Blog of Author Tim Ferriss
博客园 - 聂微东
V
Visual Studio Blog
J
Java Code Geeks
宝玉的分享
宝玉的分享
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
D
Docker
大猫的无限游戏
大猫的无限游戏
Y
Y Combinator Blog
H
Help Net Security
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Blog — PlanetScale
Blog — PlanetScale

皮普的数字花园

懒猫微服 - 用 UpSnap 实现远程群晖NAS 开机 使用 Surge Ponte 轻松实现外网访问家里设备&服务 在飞牛OS挂载本地的Unraid文件夹 群晖NAS挂载Unraid文件夹 弄懂FRP内网穿透的 HTTP 类型代理 2024 - 向阳而生,逆光前行 私有化部署LobeChat的数据库版本 电信收回了我的公网ipv4,如何外网访问群晖NAS?Frp 内网穿透!效果媲美直连! Adobe photoshop运行弹窗This non-genuine Adobe app has been disabled,解决办法 2023 年终总结 My Default App 2023 我的默认应用 2023 腾讯云域名转移到Cloudflare 黑群晖升级到正版白群(全程记录) 买了一张美国原生实体手机卡:PAYGO卡 如何做行业调查 Debian ssh安全设置 Debian系统常用命令 买了1张0月租的英国手机卡:GiffGaff卡 关于NAS RAID的解释【白话版】【小白也能懂】
如何更安全地访问Homelab服务
Pipu · 2025-04-06 · via 皮普的数字花园

855

前言

今年给自己组装了一台 DIY 的 All in one 服务器,底层系统是Unraid(详情可查看 2024年终总结 ),在此期间,我开始将云服务器的私有化服务,迁移到HomeLab,如何让外网访问更安全,是我一直考虑的问题,现在就完善它。

前提

家庭服务器的私有化服务和nginx proxy manager 部署在同一台服务器。

如私有化服务和nginx proxy manager 在不同服务器也可以,道理也是一样。

实现效果

✅ 域名访问

❌ IP+端口

只有匹配的域名的才会转发请求到服务器端口(只有使用域名才能访问到内网部署的服务),如果别人通过扫描公网IP找到我这个端口是打开的,而且他的不是https请求,会被nginx服务器拒绝。

本文假设

  • 域名是example.com,域名服务商在腾讯云
  • Nginx Proxy Manager的https的访问端口为11200
  • 家庭宽带为动态公网IP

项目的 Docker Compose 端口配置

内网的服务器,我一般通过docker compose 部署 端口要设置成“允许指定局域网 IP 访问”,端口号要这样写:本机IP+端口

假如1panel的本机IP为192.168.10.3,可以这样配置:

ports:
- 192.168.10.3:12900:80 

解读

  • 将容器内部的 80 端口映射到宿主机 192.168.10.2 的 12900 端口上
  • 只有来自 192.168.10.2 这个 IP 地址的 12900 端口的连接才会被转发到容器

重点回顾

要知道本机的IP,并且将它写到docker compose.yml文件里

顺便了解下

不同的端口配置,这次我们使用的是允许指定局域网 IP 访问

#只允许本机访问 
ports: - 127.0.0.1:12900:80 

# 允许指定局域网 IP 访问
ports: - 192.168.10.2:12900:80 

# 允许所有网络接口访问(包括公网,如果有的话)
ports: - 12900:80

Nginx Proxy Manager反向代理配置

  • 域名绑定到内网的服务 —> 192.168.10.12:12900
  • 申请SSL证书,并且打开 强制跳转到https

1115

1116

1117

自动获得公网IP

1panel 安装 DDNS-GO,实现自动获取动态的公网 IPv4 或 IPv6 地址(因为家宽公网IP都是动态的),并解析到对应的域名。

1118

1119

此时,已实现效果:一但公网IP发生变动,就会自动地、及时地更新域名解析。

完成

此时,可通过abc.example.com:11200访问服务了!

温馨提示:公网ipv6不需要打开端口,如果是公网ipv4,就需要设置端口转发。

如果此时通过 ipv6+端口 或者ipv4+端口,是访问不了内网的服务的,这大大提高了安全性。