在ubuntu上自动请求路由器进行端口redirect

有没有办法使用uPnp或其他东西来自动请求路由器/防火墙redirect到外部的数据到运行Ubuntu的机器?

这里的交易,我应该准备一定数量的机器,这将作为信息亭,他们将被派往海外; 那些收到他们的人应该只是插入交stream和局域网电缆,没有更多。 现在,我需要打开一些端口来控制这些机器(ssh),我不会在那里configuration他们的路由器。 谁来接通他们将是完全无能的,只想插上电源,做好准备和工作。

我也可以像这样重新构造这个问题:当我运行no-ip守护进程时,我想让机器回答,而不是路由器。

非常感谢您的耐心

是的,这正是UPnPdevise的目标:客户端设备请求从Internet路由器进行特定的端口转发。 但是,不能依赖支持并正确configurationUPnP的路由器(如果您恰好在提供路由器,请确保根据您的需要进行预configuration)。

你将要寻找的是一个Ubuntu的UPnP 客户端 , 一般来说,Ubuntu作为一个UPnP 服务器,当作为networking的其他部分的路由器使用(这大大降低了我的谷歌在这个主题上的结果的质量)。 然而,UPnP基本上是一个发现协议和一个基于SOAP的Web服务; 我发现了一个基本的SSDP(发现协议)客户机/服务器的Python脚本 ,你可能会适应,如果你有这种东西的头,SOAP的东西应该很容易。 有大多数脚本语言可用的SOAP库。

您也可以find有用的UPnP规范 (1.1 MB Adob​​e PDF)。

我能想到的唯一的另一个解决scheme是让信息亭发起连接; 也许你可能有一个自助服务terminal的应用程序的一个区域,允许该位置的工作人员发起维护连接,导致该自助服务terminal与您的服务器联系。 如果是我,这个button可能会启动某种types的VPN连接(如OpenVPN或L2TP / IPSec)到您的服务器,build立networking级别的链接,然后您可以使用任何你认为合适的方式连接到服务器。 (制定选项甚至可能需要input一个“支持代码”,这实际上就是刚刚更改的VPN用户密码。)此解决scheme包括自助terminal永久build立VPN连接或将其build立为预定义的“维护”窗口。 如果你select了自动化的select,我强烈build议把这种做法告诉你的客户 – 如果他们以后发现这个主意,他们可能不会好好想想(我知道我不会这么做!)。