昨天一个同事问我,类似阿里的PAI平台,当你在jupyter或者code环境的终端中,启动一个带网络端口的app,会自动启动一个端口转发,把你的app应用端口,映射到一个当前网站的url中,类似行为的还有code-server,整个过程是自动的,并且平台会提示你,你的端口被转发到了xxx.
经过对code-server的尝试,发现它实际上有个端口扫描,对当前主机当前用户下,使用web端口的程序,自动进行转发(开始以为它只转发自己进程下的子进程,后来发现不是,只要当前用户下的web进程,它都会自动做转发配置) 我设想用nginx做端口转发应该是可以的,但是动态配置就麻烦一点,自己写程序也能实现,毕竟已经是大模型的时代,这种事情,当然应该交给LLM去做。 跟gpt-4o提了需求后,做了几次小修改和新增功能需求,大概半小时实现了可演示的原型
代码见 https://github.com/luckfu/port-forward/tree/main
它实现了程序启动后,扫描当前主机当前用户下的,启动一个web端口的app,为它生成一个唯一id的url,并转发端口到url