我正在尝试使用树莓派(这个因素不应使其与任何其他 Linux 机器有任何不同,但可能会使应用程序更有意义)来远程查看网站。例如,如果我想要与之交互的打印机,它托管浏览器用户界面并通过 USB 输出,我希望能够在手机浏览器中从我的手机无线连接到该打印机。目前我正在使用 Pi-3 连接到打印机,并使用ightvnc 使用 Pi 的板载 wifi 远程查看 Pi GUI(需要明确的是,Pi 没有连接到互联网,我的手机只是连接到 Pi 的本地网络,使用 hostapd)。一旦我通过 VNC 连接到 Pi,我就会打开 Pi 的网络浏览器,然后输入打印机的地址(类似于http://192.xxx.x.xxx) 访问浏览器界面。从那里,我可以做我需要做的一切(将文件发送到打印机,在打印时接收打印机的反馈等)。它比我想要的要笨重一些,并且更愿意能够在手机中打开浏览器并直接与我的打印机连接。有没有办法做到这一点?我将向打印机发送命令并从中获取反馈。
答案1
有几件事。
首先,一些打印机制造商拥有您可以控制打印机的应用程序。也许这会对你有帮助。
但你在这里遇到了一个两难的境地。如果您从 Pi 上的浏览器运行打印机,则当您进行 http 事务时,客户端就是 Pi。因此,如果网页显示“浏览到要打印的文件”,则您实际上正在浏览 Pi 的文件系统。如果该页面在手机的浏览器中打开,它将在手机的文件系统中查找该文件。
这可能不是您想要的。
基本上,您可能希望 Pi 与打印机交互而不是与手机交互。
也许有某种方法可以让您的手机将 Pi 的文件安装为网络文件服务器驱动器或 Pi 中的其他内容,然后从手机的文件系统进行打印变得可行。我不知道。
我自己可能会在手机上安装 ssh,并在连接到 pi 时通过命令行打印 stuff 命令。我很确定 Pi 支持CUPS
打印。但似乎没有多少人愿意再做这种事情了。
答案2
您可以将 PI 的 IP 的 Web 端口 NAT 到打印机的 IP。
在您的 PI 上运行以下命令:
iptables -t nat -A PREROUTING -d X.X.X.X -p tcp --dport 80 -j DNAT --to-destination Y.Y.Y.Y
其中 XXXX 是您 PI 的 IP 地址,YYYY 是打印机的 IP 地址。
完成此操作后,您应该能够通过输入 PI 的 IP 地址在手机浏览器中打开打印机 Web 界面。
该命令不是永久性的,您需要在每次重新启动后运行它。使其永久化取决于您在 PI 上运行的发行版,大多数情况下将上述 iptables 行添加到 /etc/rc.local 应该使其永久化。