前言
不需要云服务器,不需要公网IP,只需要一个GitHub账号,就能拥有一台永久免费的Linux开发环境。
本文将教你通过Cloudflare Tunnel将GitHub Codespaces的SSH端口映射到本地,实现随时随地免密访问。
第一步:配置GitHub SSH密钥
1 生成SSH密钥对
在本地Ubuntu服务器上执行以下命令生成ED25519密钥:
ssh-keygen -t ed25519 -C "your_email@example.com"
一路回车确认,密钥会保存在 ~/.ssh/id_ed25519.pub 文件中。
2 添加公钥到GitHub
复制公钥内容:
cat ~/.ssh/id_ed25519.pub
登录GitHub,进入设置页面:
https://github.com/settings/keys
点击"New SSH key",粘贴公钥内容,设置名称后保存。
提示: 如果无法直接访问GitHub,可以使用fastgithub_win-x64等加速工具辅助登录。
第二步:创建GitHub Codespaces
访问GitHub Codespaces页面:
https://github.com/codespaces
点击"New codespace",选择"Blank"模板,命名为 codesrv,创建完成后会打开一个类似VS Code的在线编辑器。
我们主要使用它的Shell终端环境进行后续操作。
第三步:本地安装GitHub CLI
SSH登录到你的本地Ubuntu服务器,执行以下一键安装命令:
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \ && sudo mkdir -p -m 755 /etc/apt/keyrings \ && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \ && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ && sudo mkdir -p -m 755 /etc/apt/sources.list.d \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ && sudo apt update \ && sudo apt install gh -y
登录GitHub CLI
安装完成后执行登录命令:
gh auth login
按照提示选择HTTPS方式,通过浏览器完成验证。
查看Codespaces列表
gh cs list
你应该能看到刚才创建的 codesrv 实例。
第四步:安装Cloudflare Tunnel
这是最关键的一步,我们需要在Codespaces环境中安装cloudflared来实现端口映射。
1 登录到Codespaces
gh cs ssh
执行此命令会直接登录到你的codesrv实例。
2 在Codespaces中安装cloudflared
sudo wget -q https://pkg.cloudflare.com/cloudflare-main.gpg -O /usr/share/keyrings/cloudflare-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list sudo apt update && sudo apt install cloudflared -y
3 启动快速隧道映射SSH端口
cloudflared tunnel --url tcp://127.0.0.1:2222
启动成功后,你会看到类似这样的输出:
2026-06-10T06:27:26Z INF | Your quick Tunnel has been created! Visit it at (it may take some time to be reachable): | 2026-06-10T06:27:26Z INF | https://facilities-con-forty-absolute.trycloudflare.com
记下这个隧道地址,后面会用到。
第五步:本地连接远程Codespaces
1 本地安装cloudflared
在本地Ubuntu服务器上执行同样的安装命令:
sudo wget -q https://pkg.cloudflare.com/cloudflare-main.gpg -O /usr/share/keyrings/cloudflare-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list sudo apt update && sudo apt install cloudflared -y
2 后台连接隧道
将下面命令中的地址替换为你刚才得到的隧道地址:
nohup cloudflared access tcp --hostname facilities-con-forty-absolute.trycloudflare.com --url localhost:2222 >github.log &
这样本地的2222端口就会被映射到Codespaces的2222端口。
3 免密SSH登录
ssh -p2222 codespace@127.0.0.1
恭喜!你现在已经成功登录到GitHub Codespaces的远程Linux环境了。
总结与扩展
通过这种方法,你不仅可以映射SSH端口,还可以将Codespaces上的任何端口映射到本地使用。
比如Web服务、数据库端口等,相当于拥有了一个完全免费的云端开发环境。
注意事项:
1. GitHub Codespaces免费版每月有使用时长限制
2. 快速隧道地址每次重启都会变化
3. 建议定期备份重要数据
觉得有用就点赞分享吧 👍
关注我,获取更多实用技术教程