在飞牛NAS上搭建自己的代码仓库并实现外部访问

📅 2026/7/27 9:54:48 👁️ 阅读次数 📝 编程学习
在飞牛NAS上搭建自己的代码仓库并实现外部访问

在飞牛NAS上搭建自己的代码仓库并实现外部访问

    • 下载安装
    • Gitea 新建分支
    • 外部无法Clone问题的表现及解决
    • 使用 Docker 反向代理(配合穿透,无需公网 IP)
    • 解决不需要登录直接操作的问题
  • 注意事项

捣鼓了一下午,终于搞出来了啊,还是挺有成就感的,后面就准备在这上面做代码管理了,看看和商用的相比如何。

后续我会更新一些使用过程中的经验及心得体会。

下载安装

参考下面的链接即可,值得一提的是,我这里没有下载最新版本的mysql,用最新版本的总是有奇奇怪怪的问题,这里我用的是8.0.44Debian

参考连接:
链接: Blog 1
链接: Blog 2
链接: Blog 3

Gitea 新建分支

新建分支的选项比较隐秘,具体的位置在红色矩形框中。

还有一个比较隐秘的选项是设置,在设置里面可以有很多的选项配置。

外部无法Clone问题的表现及解决

vscode 里面clone会报错,这个问题官方已经在解决了。目前不能Clone。

在内网IP下clone没有问题,那就是内网穿透的问题了,本来使用飞牛自带的穿透应该是没有问题的,但是现在看来还是有那么一丢丢问题,如果飞牛官方的路子没有办法解决,那么我们自己想办法解决。

找一个frp的软件,在飞牛上部署之后,可以成功的外网访问,目前还是IP的形式,后续可以变成域名的形式。

使用零点FRP配置,可以在本机的vscode直接操作并且克隆仓库。

下面说一下如何使用零点frp完成这一步骤:

  1. 打开链接 零点frp ,然后注册账号。
  2. 登录之后选择穿透服务


3. 试用可以选择一些免费的节点,然后创建新隧道
※ 隧道名称可以自己定义,这里我选择的是gitea-ssh。
※ 本地IP 一般是127.0.0.1
※ 端口在飞牛NAS上的配置一般是8418
※ 远程端口可以自己定义。

4. 然后创建隧道,隧道创建好之后,可以在我的订阅中查看

5. 选择配置文件,然后在飞牛NAS上下载一个frp客户端

6. 下载安装好客户端之后,打开,将配置文件的内容粘贴到客户端中。
7. 修改gitea的配置文件为隧道地址:


8. 搞定,在浏览器直接用穿透地址访问即可。

使用 Docker 反向代理(配合穿透,无需公网 IP)

飞牛 OS 自带的反向代理需要公网 IP 或 DDNS 为前提,对大多数家庭宽带用户不太友好。更通用的做法是在 Docker 上部署反向代理,再配合 FRP 等内网穿透工具,即使没有公网 IP 也能实现外网访问。

这里推荐使用Nginx Proxy Manager,有图形化管理界面,配置证书、转发规则都很方便。

1. 在飞牛 Docker 中安装 Nginx Proxy Manager

打开飞牛的 Docker 管理界面,或者通过 ssh 执行:

dockerrun-d\--namenginx-proxy-manager\--restartunless-stopped\-p8080:80\-p8443:443\-p8181:81\-v/vol1/docker/npm/data:/data\-v/vol1/docker/npm/letsencrypt:/etc/letsencrypt\jc21/nginx-proxy-manager:latest

端口说明:80是 HTTP 入口,443是 HTTPS 入口,81是管理后台。挂载路径/vol1/docker/npm/请按你的飞牛存储路径调整。

2. 配置反向代理规则

  • 浏览器访问http://飞牛IP:8181,默认账号admin@example.com,密码changeme,首次登录后修改。
  • 进入Hosts → Proxy Hosts,点击Add Proxy Host
    • Domain Names:填写你将来要用的域名,没有域名可以先填一个占位(比如gitea.local)。
    • Forward Hostname / IP:填写 Gitea 容器的内网地址,一般是你的飞牛IPgitea容器名
    • Forward Port:Gitea 的 Web 端口,默认3000(如果用应用中心安装一般是8418)。
  • 保存后,这条反代规则就生效了。内网访问http://飞牛IP:8080应该能看到 Gitea 页面。

3. 配合 FRP 实现外网访问(没有公网 IP 也能用)

反向代理只负责内部流量转发,外网访问仍然要靠穿透。在 FRP 隧道中,把远程端口的流量指向 Nginx Proxy Manager 的入口即可:

  • 如果你想让外网通过 HTTP 访问,FRP 远程端口 → 映射到飞牛的8080(Nginx Proxy Manager 的 HTTP 入口)。
  • 如果需要 HTTPS,FRP 远程端口 → 映射到飞牛的8443,并在 Nginx Proxy Manager 中配置 SSL 证书(支持自动申请 Let’s Encrypt)。

这样一来,整个链路就是:外网 → FRP 隧道 → Nginx Proxy Manager → Gitea 容器,全程不需要公网 IP。

📌 如果你已经有公网 IP 或 DDNS,直接把域名解析到飞牛,然后在路由器上做端口映射到 Nginx Proxy Manager 的 80/443 端口即可,连 FRP 都不需要。

解决不需要登录直接操作的问题

找到Gitea配置的文件夹,修改配置文件。找到REQUIRE_SIGNIN_VIEW 修改为true。

注意事项

  1. 不要用敏感端口,最好是选用10000以上的,免得出现被封了的情况
  2. 要用付费的,比免费的好用不知道多少倍,支持知识付费。