Ultima modifica:
Sarebbe possibile impostare DNS e porta sulla tua linea invece che su quella del raspberry però richiederebbe una connessione inversa e per quanto ne so le implementazioni VPN open source pubbliche non forniscono questa impostazione, è una cosa che si può fare custom ma non semplicissima.
Pensandoci bene non è necessario, potresti configurare il raspberry come client vpn classico che si auto-connette (via systemd o cron), una volta collegato al tuo server VPN a casa con DNS e porta aperta puoi tranquillamente entrarci con SSH senza aprire porte nella rete wifi del raspberry e funziona anche da rete cellulare.
La virtualizzazione dell'USB per essere fatta bene richiede un driver (anche per i motivi di latenza indicati). Socat potrebbe anche essere sufficiente, non ho mai provato, immagino dipenda dal contesto, dalla scheda e dai tool usati: potresti creare un tunnel bidirezionale dalla seconda scheda di rete a una porta TCP e usare di nuovo socat sul tuo PC per tradurre lo stream TCP ad un device virtuale.
Qualcosa tipo:
Bash:
# Raspberry
sudo socat /dev/<nome_scheda>,raw,bind=<ip_local_vpn_raspberry>,echo=0 tcp-listen:1234,reuseaddr
# PC
sudo socat PTY,raw,echo=0,link=/dev/<nome_scheda_virtuale> tcp:<ip_local_vpn_raspberry>:1234
Mai testato ovviamente, anche se penso che usbnet dell'host potrebbe avere qualcosa da ridire. 1234 è una porta scelta a caso. Fosse stato host Windows avrei detto 100% driver perché so come funziona, su linux non ho mai visto la gestione del firmware e questi kernel module in particolare, l'idea di socat mi è venuta vedendo come viene usato per condividere dispositivi usb seriali.