[App Sharing] 分享一个自用小工具 autossh-tunnel-dockerized 远程开发联调神器
Tofloor
poster avatar
Oaklight
deepin
2024-12-31 13:06
Author

大家好!今天分享一个我自己开发的小工具——Oaklight/autossh-tunnel-dockerized。这个项目的诞生完全是因为我的实际工作需求:我需要远程连接实验室的GPU服务器进行开发联调,但又希望能在本地写代码和测试。于是,我基于autossh和Docker搞了这个工具,用起来非常顺手,现在分享给大家!

为什么要做这个?
我的工作场景是这样的:实验室的GPU服务器在远程,但我想在本地开发代码,同时能快速测试和联调服务。直接用SSH隧道太麻烦,而且网络不稳定时容易断。于是,我决定用Docker封装一个工具,自动管理SSH隧道,简化配置流程。

这个工具解决了什么问题?

  • 远程开发联调:通过SSH隧道将远程服务器的端口映射到本地,方便本地开发和测试。
  • 网络不稳定也不怕:基于autossh,自动重连,保证隧道稳定。
  • 配置简单:只需一个config.yaml文件,定义好隧道映射即可。
  • 非root运行:默认以非root用户运行,安全性更高。
  • 开机自启:Docker Compose中设置了restart: always,开机自动连接,省心省力。

默认配置,开箱即用

  • 默认的UID/GID是1000,如果你的用户ID不是1000(大部分人不需要改),直接用默认的compose.yaml就行。
  • 如果你的UID/GID不是1000,可以使用compose.custom.yamlDockerfile.custom动态匹配权限。具体请仔细阅读README,我特地都写在里面了。

如何使用?

  1. 克隆仓库:
    git clone https://github.com/Oaklight/autossh-tunnel-dockerized.git
    cd autossh-tunnel-dockerized
    
  2. 将SSH密钥放到~/.ssh目录。
  3. 编辑config.yaml文件,定义你的隧道。例如:
    tunnels:
      - remote_host: "user@remote-host1"
        remote_port: 8000
        local_port: 8001
    
  4. 启动容器:
    docker compose up -d
    

为什么分享出来?
这个工具最初是为了解决我自己的需求,但我觉得它可能对其他人也有用,尤其是需要远程开发联调的朋友。如果你有类似的需求,欢迎试试!也希望大家能提提意见,一起改进这个工具。

项目地址:


感兴趣的朋友可以试试,有问题随时留言!希望能帮到大家!

Reply Favorite View the author
All Replies
wcs4221
deepin beta test group
2024-12-31 19:26
#1

smirk

Reply View the author