如何使用Web界面远程管理CUPS?

我在公寓里有一台Ubuntu服务器,刚买了一台打印机,所以是时候分享一下了!
过去我在我的桌面电脑上使用CUPS,只需将浏览器指向localhost:631来进行设置。我能远程使用基于Web的管理工具吗?
我一直在调试/etc/cups/cupsd.conf文件,目前已经可以在我的局域网上通过server-ip:631将浏览器指向服务器,但是出现了403 Forbidden错误。
如果出于安全原因不允许远程管理CUPS,或者这样做是个坏主意,那么通过SSH隧道实现这个目标是否可行?
4个回答

我发现这种方法更简单。
# cupsctl --remote-admin --remote-any --share-printers

它将更新/etc/cups/cupsd.conf文件并为您重新启动cups,同时在同一文件夹中保存先前配置的备份。
这类似于官方CUPS 打印机共享指南中介绍的方法。我在man cupsctl中找到了选项--remote-admin

6很遗憾看到很多人浏览/参考特定发行版的文档、博客和其他来源,而不是使用CUPS在线帮助。:/ - acorello
1始终优先使用推荐的方法!他们开发了这个软件! - FreeSoftwareServers
9这可能是因为他们不知道该问什么问题;通常,要使用文档,你要么需要确切地知道自己在寻找什么,要么需要阅读整个手册——这并不有趣,而且太耗时间。我们也不想成为CUPS专家,我们只想知道如何翻转一个小开关。 - Dagrooms
1我在这之后不得不执行sudo service cups restart,但是然后它就正常工作了!:)(Debian 10 32位) - hanshenrik
2不需要重新启动。Debian 8、9和Arch。 - eri
这个工具会删除原始的注释和换行符,使文件变得不易阅读。真可惜... - p0358

我通常实现这个的方式是通过一个任意端口通过ssh进行隧道传输。
ssh admin@10.36.8.43 -T -L 3631:localhost:631

安全且允许远程访问。虽然不能解决所有问题,但对于不规律的访问非常有用。

3这个技巧真棒:在不改变任何杯子配置的情况下,你可以安全地管理杯子。 - gerlos
-T选项并不是真正需要的;它只会阻止创建一个终端会话。如果你有其他原因需要终端会话,可以将其省略。 - user149408

任务完成!这个页面对我帮助很大

我所需做的只是将“允许全部”添加到服务器和管理员页面的访问权限,这样我的配置现在看起来像:

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow all
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

现在我只需要弄清楚如何只允许本地网络上的人访问管理页面和配置文件 :) (虽然这可能不是个大问题,因为我没有在路由器上设置端口转发 631)。
编辑:要只允许某台特定的计算机访问,我可以做一些类似的操作。
<Location /admin>
      Order allow,deny
      Allow from 10.10.10.5
</Location>

或者对于整个10.10.10子网,
<Location /admin>
      Order allow, deny
      Allow from 10.10.10.*
</Location>

您可能需要将以下行添加到您的CUPS配置文件(/etc/cups/cupsd.conf)中:
Listen 127.0.0.1:631           # existing loopback Listen
Listen /var/run/cups/cups.sock # existing socket Listen
// this two line 
// replace 192.168.10.250 with ur only ip
Listen 192.168.10.250:631      # Listen on the LAN interface, Port 631 (IPP)
Port 631  # Listen on port 631 on all interfaces
//

参考:https://ubuntu.com/server/docs/service-cups