在 Ubuntu 上自动请求路由器进行端口重定向

在 Ubuntu 上自动请求路由器进行端口重定向

有没有办法使用 uPnp 或其他东西来自动要求路由器/防火墙将来自外部的数据重定向到运行 ubuntu 的机器?

事情是这样的,我应该准备一定数量的机器,它们将充当信息亭,并将它们运往海外;接收它们的人只需插入交流电和局域网电缆即可。现在,我需要打开一些端口来控制这些机器(ssh),而我不会在那里配置它们的路由器。谁来插入它们将是完全无能的,他们只想把它们插上电源,然后就可以准备就绪并开始工作了。

我还可以像这样重新表述这个问题:当我在其上运行 no-ip 守护进程时,我希望那台机器回答,而不是路由器。

非常感谢您的耐心

答案1

是的,这正是 UPnP 的设计目的:客户端设备向互联网路由器请求特定端口转发。但是,您不能依赖路由器支持 UPnP 并正确配置(如果您恰好提供路由器,请确保根据您的需要对其进行预先配置)。

要实现这一点,你需要一个 UPnP客户对于 Ubuntu;通常,Ubuntu 用作 UPnP服务器当充当网络其余部分的路由器时(这大大降低了我关于该主题的 Google 搜索结果的质量)。然而,UPnP 基本上是一个发现协议加上一个基于 SOAP 的 Web 服务;我发现一个 Python 脚本对于基本的 SSDP(发现协议)客户端/服务器,您可能能够适应,如果您对这类事情感兴趣,SOAP 应该很容易。大多数脚本语言都有可用的 SOAP 库。

您还可以找到UPnP 规范(1.1 MB Adob​​e PDF)有用。

我能想到的唯一其他解决方案是让自助服务终端发起连接;也许您可以在自助服务终端应用程序中设置一个区域,允许现场工作人员发起维护连接,从而使自助服务终端联系您的服务器。如果是我,该按钮可能会启动某种 VPN 连接(如 OpenVPN 或 L2TP/IPSec)到您的服务器,建立网络级链接,然后您可以使用该链接以任何您认为合适的方式连接到服务器。(启用该选项甚至可能需要输入“支持代码”,这实际上是刚刚更改的 VPN 用户密码。)此解决方案的改进包括自助服务终端永久建立 VPN 连接,或为预定义的“维护”窗口建立连接。如果您选择自动选项,我强烈建议向您的客户披露该做法——如果他们后来发现它,他们可能不会接受这个想法(我知道我不会!)。

相关内容