内网穿透技术实现:在家庭NAS中部署DeOldify并供外网安全访问
内网穿透技术实现在家庭NAS中部署DeOldify并供外网安全访问你是否有一台闲置的旧电脑或一台功能强大的NAS正愁着如何让它发挥余热你是否也收藏了许多珍贵的老照片希望它们能重焕光彩却又不想把照片上传到陌生的在线服务今天我们就来聊聊如何将这两个需求完美结合在你自己的家庭服务器上部署一个强大的老照片修复工具DeOldify并通过内网穿透技术安全、便捷地从世界任何角落访问它。这不仅仅是技术实现更是打造一个完全属于你个人的、私密的AI创意工坊。1. 为什么要在家里部署DeOldify在开始动手之前我们先聊聊动机。市面上已经有不少在线图片修复服务为什么还要大费周章地自己部署呢原因主要有三点隐私安全、成本可控和随心所欲。当你把承载着家庭记忆的老照片上传到第三方平台时你无法确切知道它们将被如何存储、处理甚至是否会被用于其他用途。自己部署数据完全留在本地隐私掌握在自己手中。其次对于需要频繁修复照片的用户按次付费的在线服务长期来看可能并不划算。利用家里现成的硬件一次部署长期免费使用。最重要的是自己部署的服务没有任何使用限制你想怎么修就怎么修想什么时候用就什么时候用完全自主。而内网穿透就是打通“家庭服务器”和“外部世界”的那座桥。它能让部署在你家内网的服务像拥有公网IP一样被安全地访问。接下来我们就分步实现这个有趣的项目。2. 家庭服务器准备与DeOldify部署首先我们需要一个“家”——也就是运行服务的服务器。一台安装了Linux系统如Ubuntu Server的旧电脑、一台支持Docker的NAS如群晖、威联通甚至是一台树莓派都可以胜任。2.1 基础环境搭建假设我们使用一台安装Ubuntu 22.04的旧电脑作为服务器。第一步是确保基础环境就绪。打开终端首先更新系统并安装必要的工具sudo apt update sudo apt upgrade -y sudo apt install -y python3-pip python3-venv git curl wget接下来安装Docker和Docker Compose。Docker能极大简化复杂应用的部署和环境隔离。# 安装Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER # 记得注销并重新登录使docker用户组生效 # 安装Docker Compose sudo apt install -y docker-compose-plugin2.2 部署DeOldify服务DeOldify是一个基于深度学习的开源项目专门用于给黑白照片上色和修复。我们选择一种相对简单的方式来部署它使用社区维护的Docker镜像。这里我们使用一个集成了Web界面的DeOldify镜像这样我们就不需要与命令行打交道通过浏览器就能轻松操作。创建一个工作目录并编写docker-compose.yml文件mkdir ~/deoldify-service cd ~/deoldify-service nano docker-compose.yml将以下内容粘贴进去。这个配置会拉取镜像并将容器内的Web服务端口映射到宿主机的7860端口。version: 3.8 services: deoldify: image: jasonacox/deoldify-web container_name: deoldify restart: unless-stopped ports: - 7860:7860 volumes: - ./images:/app/images environment: - ALLOW_ORIGINS* # 如果你的设备有GPU并安装了NVIDIA驱动可以取消下面几行的注释以启用GPU加速 # deploy: # resources: # reservations: # devices: # - driver: nvidia # count: all # capabilities: [gpu]保存文件后启动服务docker compose up -d等待镜像拉取和容器启动。完成后你可以在家庭网络内的另一台电脑的浏览器中输入http://你的服务器内网IP:7860例如http://192.168.1.100:7860。如果看到DeOldify的Web界面恭喜你本地部署成功了现在你可以上传一张老照片选择修复风格点击处理静静等待AI施展魔法。一切都在你的局域网内完成又快又安全。3. 内网穿透方案选择与配置本地服务跑起来了但只能在家用。我们的目标是随时随地访问。由于家庭宽带通常没有固定的公网IP地址我们需要借助内网穿透工具。这里介绍两种主流方案frp和Ngrok。3.1 方案对比frp vs. Ngrok简单来说你可以根据自身情况选择frp需要你有一台具有公网IP的服务器比如便宜的云服务器作为中转。优点是数据完全由自己掌控流量和配置更灵活长期使用成本可能更低。Ngrok使用官方或自建的Ngrok服务端。优点是设置极其简单适合快速测试和演示但免费版有连接时间和域名随机等限制。为了数据的完全自主和安全我们以自建frp服务为例进行详细讲解。这需要你提前准备一台云服务器如腾讯云、阿里云的基础型月成本约几十元。3.2 使用frp实现安全穿透整个流程可以理解为你在云服务器公网上运行一个frps服务端在家庭服务器内网上运行一个frpc客户端。客户端会主动连接到服务端建立一个加密隧道。当外部用户访问云服务器的某个端口时流量会通过这个隧道转发到你内网的DeOldify服务。第一步在云服务器公网部署frp服务端登录你的云服务器下载frp release包。wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz tar -zxvf frp_0.52.3_linux_amd64.tar.gz cd frp_0.52.3_linux_amd64编辑服务端配置文件frps.toml。nano frps.toml输入以下内容bindPort是服务端监听的端口token是用于客户端认证的密码请务必修改成复杂的字符串。bindPort 7000 auth.token your_strong_token_here启动frp服务端。建议使用systemd来管理实现开机自启和后台运行。sudo cp frps /usr/local/bin/ sudo cp systemd/frps.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable frps sudo systemctl start frps检查状态sudo systemctl status frps看到active (running)即表示成功。第二步在家庭服务器内网部署frp客户端在你的家庭服务器上同样下载并解压frp。wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz tar -zxvf frp_0.52.3_linux_amd64.tar.gz cd frp_0.52.3_linux_amd64编辑客户端配置文件frpc.toml。nano frpc.toml将以下配置中的serverAddr替换为你的云服务器公网IPtoken替换为上面设置的密码。这里配置了一个名为deoldify-web的隧道将云服务器的8080端口转发到内网服务器的7860端口即DeOldify服务。serverAddr 你的云服务器公网IP serverPort 7000 auth.token your_strong_token_here [[proxies]] name deoldify-web type tcp localIP 127.0.0.1 localPort 7860 remotePort 8080同样使用systemd启动客户端。sudo cp frpc /usr/local/bin/ sudo cp systemd/frpc.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable frpc sudo systemctl start frpc检查状态sudo systemctl status frpc。第三步测试访问完成以上步骤后隧道就建立好了。现在你可以在任何能上网的地方打开浏览器访问http://你的云服务器公网IP:8080。你会发现访问的正是你家里那台服务器上的DeOldify界面4. 提升安全性与使用体验将服务暴露到公网安全是头等大事。同时我们也可以优化一下访问方式让它用起来更顺手。4.1 基础安全加固修改默认端口DeOldify的默认端口是7860frp服务端是7000转发端口是8080。建议在配置文件中将它们改为不常见的端口号减少被自动化工具扫描的风险。使用强密码Tokenfrp的认证token务必设置得足够复杂并定期更换。云服务器防火墙设置在云服务商的安全组/防火墙中只开放必要的端口如frps的7000端口和对外服务的8080端口关闭其他所有不必要的入站端口。可以使用命令只允许特定IP访问管理端口但这对家庭IP不固定的情况不友好所以更推荐用强Token认证。考虑HTTPS加密如果服务涉及敏感信息强烈建议为Web服务配置HTTPS。你可以为你的云服务器域名申请一个免费的SSL证书如Let‘s Encrypt然后在frp服务端或通过Nginx反向代理来配置HTTPS这样数据在传输过程中就是加密的。这一步稍微复杂些但能极大提升安全性。4.2 使用域名与反向代理可选但推荐一直用IP加端口访问不太方便也不够优雅。我们可以买一个便宜的域名或使用免费的二级域名将其DNS解析到云服务器的公网IP。然后在云服务器上安装Nginx配置一个反向代理。这样用户就可以通过像https://deoldify.yourdomain.com这样的地址来访问服务了。Nginx配置还能帮你轻松地绑定SSL证书实现HTTPS访问。一个简单的Nginx配置示例/etc/nginx/sites-available/deoldifyserver { listen 80; server_name deoldify.yourdomain.com; # 替换为你的域名 location / { proxy_pass http://127.0.0.1:8080; # 转发给本地的frp端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }启用配置并重载Nginx后访问体验和专业度都会提升一个档次。5. 总结走完这一趟你收获的不仅仅是一个能在外网访问的老照片修复工具。你搭建的是一套通用的“家庭服务外网发布”方案。这套由“家庭服务器Docker应用frp内网穿透”组成的组合拳其威力远超单一应用。你可以举一反三用同样的方法在家里部署一个私人网盘如Nextcloud、一个家庭媒体中心如Jellyfin、一个自动化工具如Home Assistant甚至是一个博客。然后通过内网穿透安全地将它们分享给自己或家人。这就像是在互联网的海洋中拥有了一座完全由自己设计和守卫的私人岛屿。整个过程从部署到穿透虽然涉及步骤不少但每一步都是可重复、可模块化的。一旦你成功跑通一次后续部署其他服务就会变得非常轻松。技术的乐趣就在于这种用双手构建、并完全掌控的感觉。现在是时候翻出那些老相册让沉睡的记忆在你的私人AI工坊里重新变得鲜活起来。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻

测试灵异事件:Bug自动修复之谜

测试灵异事件:Bug自动修复之谜

当Bug“幽灵般”消失在软件测试领域,我们经常遇到一些令人费解的“灵异事件”:一个顽固的bug在多次复现后突然消失,仿佛被无形之手修复。测试人员报告说:“昨天还能重现的崩溃bug,今天怎么试都不出现了!”这…

2026/7/5 13:42:11 阅读更多 →
AI伦理审查中的“反人类代码”误判机制及测试应对策略

AI伦理审查中的“反人类代码”误判机制及测试应对策略

第一章 概念解构:AIHR系统的判定逻辑漏洞graph LR A[AIHR扫描维度] --> B[代码暴力性特征] A --> C[决策黑箱化指数] A --> D[社会偏见关联度] B --> E[死循环强制控制] C --> F[不可解释决策树] D --> G[性别/种族敏感词]测试视角的误判根源特征…

2026/7/4 8:57:12 阅读更多 →
AI敏捷教练:让Scrum Master失业——软件测试从业者的专业视角

AI敏捷教练:让Scrum Master失业——软件测试从业者的专业视角

在当今快速迭代的软件开发环境中,敏捷方法论(如Scrum)已成为主流,而Scrum Master作为团队催化剂,负责促进流程、移除障碍并确保Scrum框架的有效执行。然而,随着人工智能(AI)技术的迅…

2026/5/17 9:20:31 阅读更多 →

最新新闻

47_AI短片实战第二十弹:AIGCAI视频生成全流程实战(第十一部分):动态增强、镜头重组与剪辑软件核心设置

47_AI短片实战第二十弹:AIGCAI视频生成全流程实战(第十一部分):动态增强、镜头重组与剪辑软件核心设置

剪辑进入最终冲刺。本节课将解决两个常见问题:画面静止缺乏运动感和镜头叙事逻辑不顺。你将学到:如何用震动/动态效果拯救呆板镜头、何时果断停用“鸡肋”素材、如何通过复合片段二次变速控制怪兽奔跑冲击力、以及剪辑软件中“磁吸”“联动”等设置对效率的影响。 一、解决“…

2026/7/6 14:55:47 阅读更多 →
jesd204b学习记录

jesd204b学习记录

该篇文章记录自己学习204b的心得1. 204b是什么?JESD204B是一种由JEDEC(联合电子设备工程委员会)制定的高速串行接口标准,专门用于连接高速数据转换器(ADC/DAC)与逻辑器件(如FPGA/ASIC&#xff0…

2026/7/6 14:55:47 阅读更多 →
聊天智能体开发基础

聊天智能体开发基础

如今AI已经能够在生活中的方方面面帮助我们,我也想做一个为自己量身定做的智能体,那么,下面我就介绍一下如何创建一个小智能体。 一、准备工作 1.APIKey 要在我们的项目中接入市面上的大模型,APIKey是必不可少的,下面我…

2026/7/6 14:53:46 阅读更多 →
个人介绍及学习目标

个人介绍及学习目标

我是一名准大学生,正在学习编程,边学边探索未来专业方向和就业目标 我的编程目标是学会C语言,辅助将来工科专业学习(本人喜欢工科>计算机,但是如果C语言学习中发现自己很喜欢很擅长计算机的话也许会报计算机&#x…

2026/7/6 14:53:46 阅读更多 →
于 Simulink 的双向 DC-DC 变换器在恒压(CV)与恒流(CC)模式下的切换仿真

于 Simulink 的双向 DC-DC 变换器在恒压(CV)与恒流(CC)模式下的切换仿真

目录 一、 核心原理:双闭环控制与模式无缝切换 1. 双闭环控制架构 2. CC 与 CV 模式的切换逻辑 3. 防止“反复横跳”的滞回比较器 二、 Simulink 建模步骤(手把手) Step 1:搭建双向 Buck-Boost 主功率级 Step 2:构建双闭环控制器与 PI 参数整定 Step 3:实现 CC-C…

2026/7/6 14:51:44 阅读更多 →
YOLOv10模型改进-特定领域应用-第96篇:YOLOv10改进策略【特定领域应用】| YOLOv10在无人机巡检中的应用

YOLOv10模型改进-特定领域应用-第96篇:YOLOv10改进策略【特定领域应用】| YOLOv10在无人机巡检中的应用

一、本文介绍 本文记录的是YOLOv10在无人机巡检领域的应用。无人机巡检需要检测电力设施、道路状况、建筑物损伤等目标,YOLOv10凭借其高效的推理速度和准确的检测能力,成为无人机巡检领域的首选目标检测算法。 二、无人机巡检场景分析 2.1 检测目标 无人…

2026/7/6 14:45:39 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻