我有一台运行 Debian 10 的简单媒体播放器计算机。它位于博物馆中,在那里它不断播放艺术装置的视频文件(使用mpv
)。计算机已连接到博物馆的 WiFi 网络。
有时,博物馆会通过电子邮件给我发送一个新的视频文件供我播放。然后,我将视频文件复制到 USB 闪存驱动器,前往博物馆,将键盘连接到计算机,然后复制文件。
当我在家时,我想将文件上传到博物馆的计算机上。我无法使用 scp,因为当计算机连接到互联网时,它没有公共主机名/IP 地址。
我怎样才能做到这一点?
答案1
如果我正确阅读了问题(包括标题),您会问如何连接从博物馆电脑到您的计算机,以便您可以复制视频。
这称为“反向 ssh 隧道”,基本上,您所做的就是在博物馆计算机上运行 ssh -R 命令,该命令会建立一条从防火墙内部到您计算机的隧道。然后,您从计算机通过 ssh/scp 连接到隧道命令建立的端口。是的,前 100 次左右你可能会感到困惑。
一些文献: https://www.howtogeek.com/428413/what-is-reverse-ssh-tunneling-and-how-to-use-it/ https://www.howtoforge.com/reverse-ssh-tunneling
问题是你要么必须:
- 始终保持隧道开启(意味着有某种脚本可以重新启动它)
- 有一些触发隧道创建的机制。
- 将隧道设置为“计时器”(假设每天晚上 8 点连接)。
第二个例子是每当有人将 USB 设备插入机器时就创建隧道。然后,博物馆工作人员不会将视频通过电子邮件发送给您,而是直接将其粘贴到 USB 驱动器上,然后将驱动器插入计算机中。然后,您将有某种方式触发创建隧道的脚本(隧道上随机端口的奖励积分,通过视频机向您发送电子邮件(加密该电子邮件的更多奖励积分)通知您,它已准备好) 。
另一种解决方案是引导鲁本·加勒特·卢修斯·戈德堡的鬼魂。
在视频机上设置传入邮件服务器。让博物馆工作人员将电子邮件发送至“[电子邮件受保护]“ 让脚本从电子邮件中删除视频,并将其解码回原来的格式。将以前的视频移至备份文件。将新视频放在适当的位置。发送电子邮件让博物馆工作人员验证“良好” “视频正在播放。
答案2
您可以在博物馆的路由器上设置端口转发,这样公共端口(假设“2222”)会将您带到媒体播放器的“22”端口。然后您可以将scp
新文件放入媒体播放器中(您可以通过端口 2222 连接到博物馆的路由器)。
唯一的问题是知道路由器的IP。
答案3
我在您的用例中没有看到任何需要反转的内容。
如果无法连接,则可以连接出去。将机器放在博物馆中,连接到您的机器。它可以极力改变,如果有改变就下载。
例如
每天一次,它可以ssh
连接到远程,检查日期,如果找到新文件,则用于scp
下载它。可能已经有工具可以做到这一点。
如果您想与机器进行通用ssh
连接并且只能连接出去,则只需要反向隧道。由于您的用例不需要通用ssh
连接,因此您不需要它。
替代方案包括。连接到安全网站,然后从该网站下载。甚至有一些方法可以让您连接到网站并等待文件已更改的通知。 (这将消除轮询并减少流量)。