如何设置可供多个用户使用的反向 SSH 隧道服务器?

如何设置可供多个用户使用的反向 SSH 隧道服务器?

抱歉,文字太多了,我是新手,但我的搜索资源已经用尽了。

为了为我的本地 Django 开发服务器建立公共 IP,我设置了一个 AWS 微型实例作为反向 SSH 隧道的服务器。公共 IP 指向隧道服务器,我创建了一个从我的本地计算机到隧道服务器的反向隧道,该隧道转发公共 IP 和我的计算机之间的流量。如果您感兴趣,这里有命令:

autossh -M 8001:8001 -NR 80:localhost:8000 [email protected] -v

我现在正在招募另一位开发人员,需要为他设置类似的东西。我可以创建一个我的设置的克隆(本质上是为他创建一个新的隧道服务器),但这似乎很麻烦,尤其是因为我将来需要添加更多开发人员。

有没有办法设置一台服务器,让多个用户使用它来设置反向 SSH 隧道,考虑到这些用户具有唯一的公共 IP,但转发相同的端口?基本上,我和我的合作伙伴是否可以使用同一台服务器进行反向 SSH 隧道,正确地将流量转发到不同公共 IP 的相同端口?

提前致谢,如果我可以澄清的话,请告诉我。

答案1

我们这样使用它:

为隧道安装本地脚本(这样你就不必记住了:)) - 例如:

_用户名_本地.域名.org.sh_

#!/bin/sh
echo "local: 8080 - remote: 8081"
echo "http://username-local.domain.org/"
ssh [email protected] -R 8081:localhost:8080 -g

因此第一个用户监听远程端口 8081,第二个用户监听 8082 等等。

在服务器上设置 nginx 作为反向代理,每个用户一个“服务器”:

upstream user_1 {
    server localhost:8081 fail_timeout=0;
}
server {
    listen   80;
    server_name username-local.domain.org;
    location / {
        proxy_redirect off;
        proxy_pass   http://user_1;
    }
}

并且不要忘记设置创建 DNS 条目...(可能使用通配符 *.domain.org)

相关内容