云主机远程调用本地USB设备

本文适用于远程连接本地加密狗、打印机、U盘、身份认证设备等几乎所有USB设备,也适用于本地局域网内共USB设备,

不过要是远程连接存储设备用途,现实点骚年们,在没有校验算法和断点续传的协议下传输较大文件你想多了。

这次我选择了VirtualHere,原因是单设备免费,多设备授权$49.9,相比是诸多usb over net 类软件中比较便宜的。

如果需要同时提供多个USB设备的输出或者加密通信,那么只有购买授权。

VirtualHere可以很好的支持多种操作系统,目前可知可以支持的有 Linux,windows,OSX,一些主流的NAS,Android,树莓派,ARMBian等。VirtualHere还写入一些硬件中,具体可以在Hardware | VirtualHere 查询

----------------------------

为了长期稳定的提供服务,我在淘宝上几十元买了一个GL-MT300N-V2(实际上这个东西我已经跑了2年了,很稳定)

下载对应的硬件 https://www.virtualhere.com/sites/default/files/usbserver/cloudhub-gl-mt300nv2-upgrade.bin 

下载VirtualHere 客户端到本地 VirtualHere USB Client | VirtualHere

设置:

GL-MT300N-V2 开机后进入管理后台→进入 admin panel → 升级  →上传本固件→等待重启

这时无线搜索会出现一个CloudHub_xxxxxx的WIFI ssid,连接它,密码cloudhub66

运行VirtualHere 客户端(期间需要同意他的协议驱动),等待半分钟,会蹦出一个找到设备的提示,右键然后连接它

右键已连接的cloudhub,属性

选择part of an existing network 这样可以让这个设备加入局域网,如果选择标准会将这个设备作为路由器使用了。

然后选择Connct via lan,输入我们局域网的信息 最后APPLY一下.

这时设备无线功能自动关闭,我们需要用网线将设备连接到交换机或路由器

重新运行客户端,“usb hub”上右键 属性,使用刚设置的IP添加cloudhub,端口7575

连接右键hub属性,advanced,修改密码,安全起见最好关闭SSH,Apply。

在GL-MT300N-V2的USB接口插上USB设备,重启设备,重连客户端已连接的cloudhub下出现一个USB设备,右键连接即可。

此时本地提示发现新硬件,安装驱动,搞定。VirtualHere的服务端设置就已完成。

-------------------------------

远程主机连接VirtualHere服务端

首先要保证在本地局域网内的VirtualHere服务端要公网可达,NAT\端口映射\花生壳\内网穿透\防火墙啥的要看诸君的情况。

我是直接将路由器TCP 27575端口映射到GL-MT300N-V2的7575,路由器已经绑定动态域名

远程主机上安装VirtualHere客户端,运行,添加本地路由器的动态域名:端口,这时就可发现我们的加密狗,右键选择自动连接。

注意:

远程主机可能需要在计划任务或开机启动中添加VirtualHere客户端。

多设备需要购买usb 2.0的 usb hub,自带供电的那种。

每个USB设备只能以独占形式使用,如果要并发使用,只能使用USB OVER NETWORK软件,我之前买过一家国内厂商提供的硬件集成usb over network的7路USB OEM设备能够做到,但是自己软安装USB OVER NETWORK缺无法做到并发。

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要实现Java服务器远程调用本地打印机,可以使用Java的RMI(远程方法调用)技术。RMI允许Java程序在不同的JVM(Java虚拟机)之间进行通信,可以在远程JVM上调用本地对象的方法。 以下是大致的步骤: 1. 定义一个实现打印机功能的Java类,并将其打包成JAR文件。 2. 在服务器端创建一个RMI服务,将打印机类的JAR文件发布到RMI服务上。 3. 在客户端通过RMI服务获取打印机类的实例,并调用其方法打印文档。 具体实现步骤如下: 1. 编写一个打印机类,实现打印文档的方法。例如: ```java public class PrinterImpl implements Printer { public void print(String document) throws RemoteException { // 连接本地打印机,打印文档 // ... } } ``` 2. 将打印机类打包成JAR文件。 3. 在服务器端创建一个RMI服务,将打印机类的JAR文件发布到RMI服务上。例如: ```java public class PrinterServer { public static void main(String[] args) throws RemoteException { // 创建一个RMI服务 LocateRegistry.createRegistry(1099); // 创建打印机对象 Printer printer = new PrinterImpl(); // 将打印机对象绑定到RMI服务上 Naming.rebind("rmi://localhost/PrinterService", printer); System.out.println("Printer service is running..."); } } ``` 4. 在客户端通过RMI服务获取打印机类的实例,并调用其方法打印文档。例如: ```java public class PrinterClient { public static void main(String[] args) throws RemoteException, MalformedURLException, NotBoundException { // 获取远程打印机对象 Printer printer = (Printer) Naming.lookup("rmi://localhost/PrinterService"); // 调用打印方法 printer.print("Hello, world!"); System.out.println("Print document successfully."); } } ``` 需要注意的是,要在服务器端和客户端都添加打印机类的JAR文件作为依赖。另外,要确保服务器端和客户端的代码都能访问到该JAR文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值