想做个剪贴板同步的程序,请大家来看看我的想法吧

2022-01-09 13:23:10 +08:00
 zhoudaiyu

​ 事情的背景是这样的:我们办公时要同时使用本地的电脑(编码、文档等)和一个远程桌面(用于一些运维操作,程序 debug 等,这个远程桌面是部署在服务器上的,通过华为的 AccessClient 连接),本地电脑可以文本到远程桌面服务器,但是反过来不可以,因此我想到了一个方法来实现从远程桌面将文本(后续可能做文件的)复制到办公电脑的办法,整体架构图如下:

​ 其实就是靠 ditto 把剪贴板的内容持久化到 sqlite 中,我自己在远程桌面端启动一个客户端去监听 sqlite 的 Main 表中的插入记录中的 mText 字段,mText 中存储内容大致如下:

​ 然后将内容推送到一台办公电脑和远程桌面都能连接的,运行着 kafka 的服务器上,然后办公电脑端启动一个客户端去消费 kafka 的某个 topic ,并同步到本地客户端,用户就可以选择要粘贴的内容了。

​ 但是还有几个细节需要问问大家:1 、关于生产 /消费到到哪个 topic ,是否还需要一个程序去确定和同步 topic 的信息? 2 、消息内容虽然可以通过 kafka 提供的 tls 加密保证不被窃取,但是怎么不保证有人故意去连接别的 topic 去获取他人的剪贴板内容,即如何保证生产和消费的两个客户端都只能消费特定的 topic ? 3 、关于语言,我想用 Go 实现上述的功能,原因是:( 1 )单文件,依赖少,方便部署;( 2 )破解的难度相比如脚本语言高一些;( 3 )可跨操作系统编译,大家觉得可以吗?

​ 请大家说说这个思路的可行性和不足之处,十分感谢!

4020 次点击
所在节点    奇思妙想
35 条回复
zhoudaiyu
2022-01-09 23:54:17 +08:00
@yufeng0681 网络环境比较复杂,估计还得画个图。您说的意思是把 kafka 换成 SSH 做中转?
catror
2022-01-10 02:17:16 +08:00
反向复制就是在远程桌面的管理后台点一个 Checkbox 的事……
klo424
2022-01-10 08:22:03 +08:00
复制文件可以用文叔叔
lonenol
2022-01-10 09:06:23 +08:00
换个思路,直接截图 ocr 。。

你这种做法个人感觉不太好。。你可以监听剪切板,别人就可以监听所有 db 操作,把数据搞一份出来。。
zhoudaiyu
2022-01-10 09:09:11 +08:00
@lonenol #24 数据库是本地的.db 文件,不暴露任何端口,别人无法连进来。orc 遇到代码不知道好使不好使

@catror #22 可惜不是我们能控制的,我们只能用

@klo424 #23 这个不太行,得能本地化部署
dreamage
2022-01-10 09:35:43 +08:00
公司规定限制的,LZ 还在想办法(帮公司同事)突破限制,不怕背锅么
zhoudaiyu
2022-01-10 09:36:28 +08:00
@dreamage #26 先自己偷摸用,暗中观察🐶
gaobing
2022-01-10 10:01:42 +08:00
raullf
2022-01-10 14:24:45 +08:00
我很好奇,16L 说的对噢,本来就是为了信息安全,单向联通 de
你怎么从远程出来呢?
raullf
2022-01-10 14:25:26 +08:00
另问架构图用什么软件画的呢,看着很美
zhoudaiyu
2022-01-10 14:37:46 +08:00
@raullf #30 processon
hntangbohu
2022-01-10 15:33:21 +08:00
qq 输入法好像有 云粘贴板
klo424
2022-01-11 08:30:03 +08:00
@zhoudaiyu #25 本地化部署也能上外网吧?不能上外网的话,你想的那个方案也不行啊?
zhoudaiyu
2022-01-11 09:16:37 +08:00
@klo424 #33 能通过图中的服务器中转就可以
5966
2022-01-13 11:52:06 +08:00
我们这用的 Citrix Receiver 虚拟桌面,有权限的账号可以拷贝出文件!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/827112

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX