← 返回 TimeAmber

手把手教你自己搭建一套内网穿透服务,远程访问内网任意服务,隐私安全,保姆级!

Ai日记哇 Ai日记哇 2024年11月01日 05:51

手把手教你自己搭建一套内网穿透服务,远程访问内网任意服务,隐私安全,保姆级!

大家好,我是Ai日记,一个专注于将人工智能应用于日常生活的半吊子程序猿,平时主要分享AI、NAS、Docker、搞机技巧等。

在数字化日益加深的今天,远程访问家庭内部网络资源的需求愈发迫切,目前有多种方案来实现这一需求,包括但不限于远程桌面公网IP端口转发内网穿透等等。内网穿透有付费、免费、自建等方案可以选择,其中无论是付费和免费,都无法保证信息的安全。

图片

本文主要介绍如何通过云服务器群晖NAS,来实现自建内网穿透,让你在保障信息和数据安全的情况下远程访问内网的任意资源。当前,也不局限于群晖,其他任何能够运行Docker的设备都可以!

目录

一、说明

二、Frp介绍

三、云服务器准备

四、Frp准备

五、在外网访问内网服务

六、高阶玩法

七、总结

八、关键词

一、说明

本文主要用到的工具包含:云服务器群晖NASFrp

其中Frp代理为开源软件,可以在GayHub上找到,考虑到有些小伙伴网络条件不是很好,我将下载好的frp客户端Docker镜像放在公众号了,关键词可以在文末找到

二、Frp介绍

FRP(Fast Reverse Proxy)是一个开源的、高性能的反向代理应用,它主要用于实现内网穿透,使得远程用户可以安全、便捷地访问内网资源。以下是对FRP的详细介绍:

功能特点

  • • 内网穿透:FRP的核心功能是实现内网穿透,使得远程用户可以访问到位于内网的各类服务(如Web服务器、FTP服务器等)。

  • • 负载均衡:FRP支持将多个内网服务器映射到同一个公网IP地址上,并根据配置的策略进行请求转发,实现负载均衡,提高系统的可用性和性能。

  • • 安全加固:FRP提供了多种认证方式(如HTTP Basic认证、Token认证等)和SSL/TLS加密传输数据的功能,确保数据传输过程中的安全性和隐私性。

  • • 易于配置:FRP的配置相对简单,用户可以通过配置文件灵活地定义代理规则和行为,无需复杂的网络配置

三、云服务器准备

这里比较简单,选择腾讯云或者阿里云都可以,1核2G的服务器即可,一般99一年。注意本文中操作系统需要是Linux的,发行版选ubuntu或者centos都可以。

阿里云

图片

腾讯云

图片

四、Frp准备

Frp分为客户端和服务端,在本文的流程中,客户端主要使用群晖NAS的Docker部署,服务端使用官方的服务包部署。

4.1 云服务器

4.1.1 Frp服务端部署

通过ssh登录到云服务器,执行下面命令下载frp的发布包:

wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz

然后执行下面的命令解压压缩包:

tar -zxvf frp_0.61.0_linux_amd64.tar.gz

执行下面命令进入到frp目录:

cd frp_0.61.0_linux_amd64/

执行下面的命令打开服务端配置文件,并进行编辑修改:

vim frps.toml

下面是一个简单的配置:

  • • bindPort:frp绑定端口,这个需要记住,一会在frp客户端需要用到

  • • auth.method:认证方式,这里用的是token

  • • auth.token:认证的token,可以改个复杂的,一会在frp客户端需要用到

图片

改完之后,先按esc退出编辑模式,然后按下面的命令保存退出:

:wq

因为服务端需要一直保持运行,我们需要让frp服务端运行在后台,这里我的方法比较简单(无需添加开机启动什么的),执行下面命令开启一个tmux会话:

tmux new -s frp

然后执行下面的命令启动服务端:

./frps -c ./frps.toml

出现下面的提示表示启动成功:

图片

4.1.2 在云面板上开启防火墙

为了能够让客户端连接到我们的frp服务端,需要在云面板的防火墙上放行上面绑定的端口,比如这里是27000。

阿里云:

图片

腾讯云:

图片

配置完成之后,接下来我们配置Frp客户端。

4.2 群晖NAS安装Frp客户端

4.2.1 创建配置文件

在群晖NAS的任意目录创建一个文件,比如我这里是:/docker/frpc/frpc.toml

图片

frpc.toml文件的内容如下:

图片

其中前四行是服务端配置:

  • • serverAddr:云服务器公网IP地址

  • • serverPort:上面frp服务端绑定的端口

  • • auth.method:填token

  • • auth.token:填上面frp服务端配置的token

配置文件下面是需要转发的内网服务,比如我一共转发了3个服务,名字分别是「frp」、「calibre-web」、「qbittroent」,分别对应我想要在外网远程访问的服务。在每个服务中:

  • • name:服务名

  • • type:流量的类型,一般都是tcp

  • • localIP:内网服务的IP地址,如果是在群晖NAS上的话,直接填127.0.0.1就行

  • • localPort:内网服务的端口

  • • remotePort:远程云服务器绑定的端口,也就是你在外网访问服务时需要加的端口

4.2.2 下载Frp客户端Docker镜像

在群晖NAS上安装Frp客户端可以直接使用Docker部署。

开发「Container Manager」->「注册表」,输入frpc,选择第一个:snowdreamtech/frpc。网络条件不好的伙伴可以在文末找到Docker镜像获取关键词,导入方法可以参考我之前的文章《群晖NAS用户必看!告别书签栏!手把手教你在NAS上安装高颜值导航站,好用、好看、方便!》。

图片

下载latest镜像,之后便可以再「映像」中看到了。

图片

4.2.3 启动Docker容器

在「Container Manager」->「映像」中,右键刚才下载或导入的镜像,点击运行。

图片

在弹出的窗口中,勾选「启用自动重新启动」,然后点击下一步

图片

网络选择host

图片

在「存储空间设置」中,选择「添加文件」,按照下图进行填写

图片

确认没问题之后,点击「完成」启动容器

图片

容器启动之后,可以看到服务端刷新了下面的日志

图片

日志中表示服务器分别和48080、28083、21194建立了端口绑定,这种情况下:

  • • 公网IP+48080,等价于访问内网的127.0.0.1:8080

  • • 公网IP+28083,等价于访问内网的127.0.0.1:8083

  • • 公网IP+21194,等价于访问内网的1194

上面这些映射关系都是在前面frpc.toml配置文件中定义好的。

4.2.4 开启防火墙

在4.2.3节中,我们分别将外网的48080、28083、21194和内网的8080、8083、1194建立了映射关系,防火墙不放行对应端口的话,云服务器会对这几个外网端口的流量进行拦截,因此我们还需要再次在防火墙中放行这些端口。下面是阿里云的放行的例子:

图片

这样我们就可以在外网输入IP:Port访问内网的服务了。

五、在外网访问内网服务

下面,我们可以尝试一下在外网访问内网服务,在浏览器输入服务器公网IP+对应端口,可以正常访问到我在内网的书库:

图片

六、高阶玩法

在上面的例子中,我们依然是在外网通过IP:Port访问内网服务,很不方便。我们可以在服务器上安装「宝塔」面板,然后结合反向代理实现通过域名访问,类似的方法可以参考我往期的文章《使用个性化域名访问内网服务,支持https小绿锁!让你从IP:Port中脱离出来!》,操作可能不太一样,但原理类似,感兴趣的伙伴可以自行研究。

图片

七、总结

本文主要介绍了如何通过云服务器、Frp服务端、Frp客户端、群晖NAS来自己搭建一个内网穿透服务,实现远程访问内网的任意服务,避免了信息泄露的风险。同时还给出了一种高阶玩法,在云服务器上安装宝塔面板,通过反向代理实现通过域名远程访问内网服务。大家对此感兴趣的话,欢迎Mark,后续会持续更新~

八、关键词

内网穿透


往期文章:
本地部署多模态大模型,并结合Open-WebUI和Dify实现多模态对话、智能体,保姆级!‍‍
手把手教你在NAS上部署私人密码管理器,隐私又安全!
群晖NAS用户必看!告别书签栏!手把手教你在NAS上安装高颜值导航站,好用、好看、方便!
Hyper-V显卡虚拟化!手把手教你在家部署云游戏!支持高刷!
在NAS上打造私人搜索引擎,开源,无广告,实现个人私隐全方位保护!多引擎结果整合!
使用个性化域名访问内网服务,支持https小绿锁!让你从IP:Port中脱离出来!
群晖NAS+Dify:AI原生应用部署教程,解锁大模型智能与工作流新境界
打造个人专属内网生态:揭秘我的NAS、软硬路由、备用电源的组合
在NAS上打造个人图书馆,轻松实现读书自由!!!附部署教程

玩转NAS · 目录
上一篇手把手教你在NAS上部署私人密码管理器,隐私又安全!下一篇手把手教你在Windows的Hyper-V虚拟机上部署飞牛NAS,性能起飞,附详细评测!保姆级!

微信扫一扫
关注该公众号