Cookie
FlexiHub Team uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.
Olga Weis Olga Weis Aug 23, 2022

Cómo compartir USB a través de Ethernet con Raspberry Pi

A medida que la operación remota se vuelve cada vez más popular, inevitablemente se encontrará con la situación de trabajo en la que solo necesitará usar algún tipo de extensor USB universal, o encontrar otra forma de compartir un USB a través de Ethernet que funcione con todos los sistemas operativos populares y Periféricos USB.

FlexiHub


Windows, macOS, Linux, Android 4.8 Rank basado en 386+ comentario
Compartir serie a través de IP
Por ejemplo, si tiene todo un equipo que utiliza algún software con licencia costoso que no se iniciará sin dongles USB. Nadie quiere gastar una fortuna en licencias individuales para cada empleado o apostar a perder o dañar dichos dongles, ya que se llevarán por la oficina y se conectarán a diferentes máquinas durante todo el día.

Como ya sabrá, existe una forma de configurar su Raspberry Pi como un servidor USB a través de Ethernet. Bueno, en realidad, no hay uno, sino dos caminos que puede tomar aquí: un camino fácil con la aplicación paga cien por cien eficiente o un viaje lleno de baches con una solución de código abierto y su complicado proceso de configuración. Y estamos a punto de echar un vistazo a ambos.

Uso compartido rápido y seguro de USB desde Raspberry Pi con FlexiHub

Con la herramienta de software de extensión USB adecuada, compartir USB a través de IP desde una Raspberry Pi es menos que simple, y no tendrá que comprar cables de extensión, dispositivos adicionales o instalar millas de cable LAN CAT6, o incluso usar un USB al adaptador RS32.

Cómo compartir USB sobre IP desde una Raspberry Pi
1
Registre una cuenta FlexiHub aquí y comience un período de demostración gratuito.
 Registre una cuenta FlexiHub
2
Descargue e instale la aplicación en la computadora del servidor;
 Descargue e instale la aplicación
3
En la terminal de tu Raspberry, ejecuta el siguiente comando: yum install [package];
4
Inicie la aplicación y haga clic en "Compartir" junto a su dispositivo USB.

¡Eso es todo!

A partir de ese momento, el dispositivo USB compartido será accesible de forma remota desde todas las computadoras con FlexiHub instalado y la conexión a Internet, sin importar los sistemas operativos o las distancias físicas. Gracias al servidor USB de redirección único, la aplicación es realmente una solución universal que funciona a través de todos los firewalls y no requiere direcciones IP públicas. Incluso puede utilizar este método para compartir un concentrador USB de modo que cualquier periférico conectado esté disponible instantáneamente para conexiones remotas.

FlexiHub

Windows, macOS, Linux, Android
4.8 Rank basado en 386+ comentario
Además de eso, FlexiHub tiene una función de compresión de tráfico opcional que es muy útil cuando se trata de compartir periféricos USB sensibles al ancho de banda, como impresoras USB o cámaras web, por lo que no necesita una conexión a Internet de alta velocidad de 100 Mbps para que funcionen. Y un cifrado SSL de 2048 bits a prueba de balas para evitar por completo el acceso no deseado a sus cámaras de seguridad, dongles USB o cualquier dato transmitido con la aplicación.
FlexiHub

Y la guinda de este pastel es que para compartir USB a Ethernet no es necesario convertir permanentemente su Raspberry Pi en un servidor USB. Puede compartir dongles, cámaras web, impresoras y otros periféricos conectados a los puertos USB de todas las computadoras con FlexiHub instalado, incluida su tableta Android, y nunca tendrá problemas con la conectividad multiplataforma. Desde una máquina con Windows, incluso puede compartir un periférico basado en COM. ¿Qué tan asombroso es eso? Y, para mayor comodidad, tendrá la oportunidad de disfrutar de la conectividad inalámbrica accediendo a dispositivos compartidos a través de Wi-Fi. Adiós a todos esos cables CAT6 tirados por la oficina.

Una forma gratuita de configurar una Raspberry Pi como servidor USB sobre IP

En principio, este método es similar al que acabamos de describir, pero a través de una aplicación de extensión de USB a Ethernet diferente. Y dado que esta vez usaremos una solución de código abierto que aún está en desarrollo, el proceso de configuración requiere un nivel decente de competencia técnica para realizarlo, así que si no tiene ninguno, no se sorprenda si no funcionará a la primera.

Aquí hay algunos puntos más importantes que debe considerar antes de optar por este método.:

  • Solo funciona para compartir dispositivos USB en su LAN.
  • No se puede compartir un dispositivo de una máquina que no es Linux.
  • Este método para compartir no funcionará para un concentrador USB.
  • Se recomienda tener una conexión de al menos 100 Mbps.
  • Cuanto mayor sea la distancia al dispositivo compartido, peor será la conexión.
  • Sin protección contra el acceso no autorizado.
  • Sin compresión de tráfico, por lo que una imagen de cámaras remotas puede retrasarse mucho.

Comencemos configurando su Raspberry Pi como servidor:

1
Instale la aplicación usando este comando: sudo apt install usbip
2
Una vez que se complete la instalación, agregue el módulo del kernel que necesitaremos ingresando:
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
3
Ahora, use el lsusb command para ver una lista de todos los dispositivos USB conectados físicamente a su Raspberry Pi y recuerde (o anote) el número de identificación USB de 8 dígitos de un dispositivo que va a compartir .
4
Utilice el comando usbip list -p -l para averiguar el ID de bus de su dispositivo (utilice el número de ID de USB de un paso anterior para identificar el dispositivo correcto en la lista). Anote ese número.
5
Ejecute el comando:
sudo usbip bind --busid=N
(N es el número de identificación del bus del paso anterior)
6
Ejecute el demonio para conectar el dispositivo al USB/IP ejecutando el comando: usbipd

Alternativamente, puede crear un servicio systemd:

vi /lib/systemd/system/usbipd.service

con la siguiente definición (no olvide cambiar la N por un número de identificación USB real de su dispositivo):


[Unit]
Description=usbip host daemon
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/usbipd -D
ExecStartPost=/bin/sh -c "/usr/sbin/usbip bind --$(/usr/sbin/usbip list -p -l | grep '#usbid=N#' | cut '-d#' -f1)"
ExecStop=/bin/sh -c "/usr/sbin/usbip unbind --$(/usr/sbin/usbip list -p -l | grep '#usbid=N#' | cut '-d#' -f1); killall usbipd"
[Install]
WantedBy=multi-user.target



Y luego deberá ejecutar estos comandos para iniciar ese servicio:

sudo systemctl --system daemon-reload
sudo systemctl enable usbipd.service
sudo systemctl start usbipd.service

Ok, ahora configuremos un cliente:

Nota: La aplicación tiene un cliente para Windows, pero es una versión beta endeble sin controladores firmados ni soporte para Windows 10, por lo que realmente no vale la pena mencionarla.

1. Para instalar la misma aplicación para compartir USB sobre IP en Ubuntu, ejecute estos comandos:
sudo -s
apt-get install linux-tools-generic -y

2. Habilite el módulo requerido:
modprobe vhci-hcd
echo 'vhci-hcd' >> /etc/modules

Ahora, para conectar el dispositivo compartido a esta máquina, ejecute el comando: sudo usbip attach -r 0.0.0.0
(escriba la dirección IP real de su Raspberry Pi en lugar de 0.0.0.0)

O puede crear un servicio systemd:
vi /lib/systemd/system/usbip.service

Con la definición (reemplace N con un número de identificación USB real de su dispositivo y 0.0.0.0 con la dirección IP de su Raspberry):

[Unit]
Description=usbip client
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip attach -r 0.0.0.0 -b $(/usr/lib/linux-tools/$(uname -r)/usbip list -r 0.0.0.0 | grep 'N' | cut -d: -f1)"
ExecStop=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip detach --port=$(/usr/lib/linux-tools/$(uname -r)/usbip port | grep '<Port in Use>' | sed -E 's/^Port ([0-9][0-9]).*/\1/')"

[Install]
WantedBy=multi-user.target

Guarde y luego ejecute estos comandos para iniciar el servicio:

sudo systemctl --system daemon-reload
sudo systemctl enable usbip.service
sudo systemctl start usbip.service

Después de eso, debería poder acceder al dispositivo compartido de forma remota. Si no es así, vuelva a intentar todos los pasos desde el principio.

Importante! Si desconecta un dispositivo USB de la Raspberry Pi mientras está compartido por este método, puede resultar en una pérdida permanente de datos. Apague su Raspberry primero (después de que esté apagada, también puede desconectar su adaptador de CA para tomar precauciones adicionales).

Compartir USB con FlexiHub
Período de demostración de 30 días

Una tabla de comparación entre los dos métodos:

Servidor proxy
Servidor proxy
Servidor de redireccionamiento
• sin necesidad de IP externa
• comunicación multi-red
• funciona a través del cortafuegos
N/A
Plataformas compatibles:
Plataformas compatibles:
Lado del servidor
Lado del servidor
✓ Windows
✓ Linux
✓ macOS
✓ Android
✓ Linux
Lado del cliente
Lado del cliente
✓ Windows
✓ Linux
✓ macOS
✓ Windows (beta)
✓ Linux
Firmware para microcontroladores
Firmware para microcontroladores
Raspberry (a petición)
N/A
Seguridad
Seguridad
Tokens de inicio de sesión para compartir cuentas de forma segura
Bloquear para el control de acceso del dispositivo
N/A
Cifrado
Cifrado
2048-bit SSL
N/A
Estabilidad mejorada
Estabilidad mejorada
Opción de mantener la conexión activa
N/A

Palabras de clausura

Por supuesto, depende totalmente de usted decidir cuál de los dos métodos descritos en este artículo va a utilizar. Pero, ¿no sería mejor invertir en una herramienta fácil de manejar con eficacia probada que confiar en algo que puede fallar en cualquier momento y causarle quién sabe cuántos nervios, tiempo y dinero debido a un tiempo de inactividad no planificado?


Mejor opción
FlexiHub
  • 4.8 overall rank basado en 386+ comentario
  • Windows, macOS, Linux, Android y Raspberry Pi. 10.4MB Size.
  • Versión 6.0.14865. (31/05/2023).