Personally I recommend just using USB passthrough to the virtual machine and a very long USB extension cable, and best is to use a powered USB 2.0 hub to avoid interference → https://community.home-assistant.io/t/guide-for-zigbee-interference-avoidance-and-network-range-coverage-optimization/515752
Yes tunnel serial connection over a TCP stream to a socket from LAN adapters or build your own DIY:
https://www.zigbee2mqtt.io/advanced/remote-adapter/connect_to_a_remote_adapter.html
https://www.home-assistant.io/integrations/zha#zigate-or-sonoff-zbbridge-devices