海欧的博客

  • Navidrome
  1. 首页
  2. 服务器
  3. 正文

LINUX开发板部署GIT服务内网透传

2026年6月7日 32点热度 0人点赞 0条评论

LINUX开发板部署GIT服务内网透传

image-20260607174056204

0. 项目背景

在公司撸代码的时候,没有git服务简直无法写代码,因为我工作流就是需要git的帮助,所以自己部署一个git服务自己使用。

还有因为是开发板没有公网的,但是需要日常的后台维护,所以部署一个代理网络可以SSH到远程作一个运维工作。

1. 系统安装与配置

1.1 安装Ubuntu镜像

image-20260606233341685

1.2 配置ssh

#查看ssh状态
systemctl status ssh
#查看ip
ifconfig
#ssh登录
ssh user@ip
#生成密钥
ssh-keygen -t ed25519
ssh-copy-id user@ip
#检查公钥 
cat ./.ssh/authorized_keys

1.3 FinalShell 导入密钥SSH连接

image-20260606235302464

2. 安装docker容器

2.1 拉取镜像+SCP传输

由于docker源访问不了,需要借助外网的服务器完成镜像下载+scp传输到目标机器上进行安装

#查看机器架构,一般为aarch64 
uname -m
# 拉取指定 ARM 平台的镜像
docker pull --platform linux/arm64 6053537/portainer-ce:latest
docker pull --platform linux/arm64 gitea/gitea:latest

# 导出为 tar 文件
docker save 6053537/portainer-ce:latest -o portainer-ce.tar
docker save gitea/gitea:latest -o gitea.tar

使用scp 传输文件在局域网服务器上

scp portainer-ce.tar [email protected]:~/
scp gitea.tar [email protected]:~/

导入镜像

# 导入镜像
sudo docker load -i ~/portainer-ce.tar
sudo docker load -i ~/gitea.tar

sudo docker images #本地查看镜像
image-20260607003854655

2.2 运行容器

# 创建持久化卷
sudo docker volume create portainer_data

# 启动容器
sudo docker run -d 
  --name portainer 
  --restart always 
  -p 9000:9000 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_data:/data 
  6053537/portainer-ce:latest

# 创建宿主机数据目录
sudo mkdir -p /home/kickpi/gitea_data

# 启动容器
sudo docker run -d 
  --name gitea 
  --restart always 
  -p 3000:3000 
  -p 2222:22 
  -v /home/kickpi/gitea_data:/data 
  gitea/gitea:latest  

sudo docker ps #查看状态

#防火墙放行
sudo ufw allow 9000
sudo ufw allow 3000
sudo ufw allow 2222

3. 配置内网透传

3.1 配置隧道

sudo curl -L 'https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64' -o /usr/local/bin/cloudflared
sudo mv cloudflared-linux-arm* /usr/local/bin/cloudflared
sudo chmod +x /usr/bin/cloudflared #下载后赋予权限
cloudflared --version
cloudflared tunnel login #认证授权
cloudflared tunnel create arm-dev-board #创建隧道后输出隧道的UUID
sudo cloudflared --config /home/your-username/.cloudflared/config.yml service install
sudo systemctl start cloudflared
sudo systemctl enable cloudflared
image-20260607004658911
image-20260607004841290
nano ~/.cloudflared/config.yml #配置隧道

# 替换为您刚才创建的隧道UUID
tunnel: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

# 替换为您的凭证文件路径
credentials-file: /home/your-username/.cloudflared/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json

# 入口规则配置
ingress:
  # 1. SSH服务配置
  - hostname: ssh.yourdomain.com
    service: ssh://localhost:22

  # 2. Web服务配置
  - hostname: app.yourdomain.com
    service: http://localhost:8899

  # 3. 默认规则 - 所有未匹配的请求返回404
  - service: http_status:404

3.2 登录控制台

登录控制台,添加两条解析记录ssh和web的解析,域名前缀自定义,选择CNAME,目标指向 xxxx-xxxx-xxxx-xxxxxxxxxxxx.cfargotunnel.com

添加路由应用:

image-20260607142646914

4. ssh登录

目前我使用代理网络登录目标ssh.mydomain.com域名的机器,所以不能使用FinalShell终端,FinalShell终端不会读取~/.ssh/config

只能使用系统终端,系统终端会读取本地的~/.ssh/config 文件, 该文件里定义了 ProxyCommand 的代理设置

4.1 配置ssh代理

winget install --id Cloudflare.cloudflared #安装windows cloudflare
nano ~/.ssh/config
#添加以下代理设置
Host arm-dev
  HostName ssh.yourdomain.com
  User your-username
  ProxyCommand cloudflared access ssh --hostname %h
  ServerAliveInterval 15
  ServerAliveCountMax 3

ssh arm-dev #测试
ssh-keygen -t ed25519 #免密登录
ssh-copy-id arm-dev

config是ssh的参数文件,ssh host_dev 就能读取config文件调用参数建立连接 ,参数proxyCommand 是执行代理程序的命令

ssh-copy-id arm-dev 命令会自动验证并复制公钥到 追加到开发板的 ~/.ssh/authorized_keys

~/.ssh/authorized_keys是 ssh授权文件,该文件存储了多个公钥,与密钥进行匹配

image-20260607143920089
image-20260607163114626

5. 配置无线

#查看无线网卡
ip link
#新建一个配置
sudo nano /etc/netplan/00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  wifis:
    wlan0:  # 你的网卡名
      dhcp4: true
      access-points:
        "你的WiFi名称":
          password: "你的WiFi密码"

sudo chmod 600 /etc/netplan/00-installer-config.yaml  #修复权限
sudo chmod 600 /etc/netplan/default.yaml #只能读写
sudo netplan apply # sudo netplan try 
ifconfig #查看无线连接状态
ip addr show wlan0 #查看状态

5.1 固定ip

编辑/etc/netplan/00-installer-config.yaml 再使能生效 sudo netplan try ,正式应用 sudo netplan apply

image-20260607021815010
image-20260607021642243

5.2 增加ssh/config连接参数

我们可以使用eth0或者wlan0代理的ssh连接到开发板

image-20260607115534018
image-20260607144408476

6. 最后

目前局域网内访问git服务和远程ssh 已经部署完成。

它可以提高写代码工程的效率,最重要的是可以更好管理自己的项目代码。

最后提醒的是系统的存储卡一定购买高耐用的,不能购买便宜的普通存储卡。

image-20260607170227904
标签: GIT 内网透传 容器 开发板
最后更新:2026年6月7日

haiou

理工男极客工程师

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 6 月
  • 2026 年 4 月
  • 2026 年 3 月
  • 2026 年 2 月

分类

  • APP
  • 嵌入式
  • 服务器

00:00
目录
  • LINUX开发板部署GIT服务内网透传
    • 0. 项目背景
    • 1. 系统安装与配置
      • 1.1 安装Ubuntu镜像
      • 1.2 配置ssh
      • 1.3 FinalShell 导入密钥SSH连接
    • 2. 安装docker容器
      • 2.1 拉取镜像+SCP传输
      • 2.2 运行容器
    • 3. 配置内网透传
      • 3.1 配置隧道
      • 3.2 登录控制台
    • 4. ssh登录
      • 4.1 配置ssh代理
    • 5. 配置无线
      • 5.1 固定ip
      • 5.2 增加ssh/config连接参数
    • 6. 最后

COPYRIGHT © 2026 海欧的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang