如何从外部网络将Windows客户端打印机重定向至Ubuntu服务器?
如何从外部网络将Windows客户端打印机重定向至Ubuntu服务器?
我太懂你这种卡在最后一步的憋屈了——从Windows Server转Ubuntu Server,大部分配置都搞定了,偏偏外部用户的RDP打印机重定向搞不定,常规方法要么局限内网,要么依赖静态IP,确实头疼。我整理几个实际可行的方案,你可以挨个试试:
先把XRDP的打印机重定向配置拉满
很多时候不是XRDP不支持,是默认配置没开全:
- 先确保装了必要组件:打开终端,运行
sudo apt install xrdp cups cups-client winpr,winpr是FreeRDP的核心组件,专门处理Windows打印机协议,对重定向至关重要。 - 编辑XRDP主配置:
sudo nano /etc/xrdp/xrdp.ini,找到[xrdp1]段落,添加或修改这两行:
(channel.rdpdr=true channel.rdpsnd=truerdpdr就是负责设备重定向的通道,包含打印机、磁盘等) - 保存退出后,再编辑会话配置:
sudo nano /etc/xrdp/sesman.ini,找到[Xorg]部分,确认param=-config指向的配置文件包含打印机支持,或者直接加一行param=-extension RDPDR。 - 重启XRDP服务:
sudo systemctl restart xrdp - 最后别忘了在Windows客户端的RDP连接设置里,切换到「本地资源」标签,一定要勾选「打印机」选项,再重新连接试试。
如果XRDP还是不行,试试VPN+SMB组合拳
既然你在内网用SMB能成功转发打印机,那解决外部网络的问题,本质是把客户端拉进服务器的“虚拟内网”:
- 在Ubuntu服务器上搭建一个轻量VPN,比如WireGuard,配置起来不难,而且占用资源少,适合服务器部署。
- 让外部用户先通过WireGuard连接到你的Ubuntu服务器,这样客户端就和服务器处于同一个虚拟网段,和内网环境完全一致。
- 之后你之前能用的SMB打印机转发方法就可以直接复用了,而且不需要客户端有静态IP——因为VPN连接是客户端主动发起的,只要你的Ubuntu服务器有公网IP就行。
备选方案:换用支持打印机重定向的RDP替代工具
如果上面两个方法都不凑效,可以试试freerdp-server(部分发行版包名为freerdp-x11),它对Windows设备重定向的兼容性比标准XRDP更好。安装完成后配置好服务,再测试客户端的打印机重定向,说不定能解决顽固的兼容性问题。
最后提醒一句:如果用VPN方案,一定要做好安全配置,比如设置强认证密码、限制接入IP段,避免被恶意攻击。
备注:内容来源于stack exchange,提问作者your229
相关产品推荐
相关产品推荐

