Acho que o erro não vem da declaração -net, mas de:
-chardev socket,host=localhost,port=7777,server,nowait,id=port1-char
A instrução já usa a porta 7777. Para o encaminhamento de porta, com
-net user,hostfwd=tcp::7777-:8001
funciona bem quando não está configurando o canal serial virtio.
Se bem entendi, você deseja configurar um canal serial virtio para se comunicar do host para a VM usando um soquete de domínio Unix?
Neste caso, o seguinte poderia fazer o trabalho:
/usr/bin/qemu-system-x86_64 \
-m 1024 \
-name vserialtest \
-hda ubuntu1204 \
-chardev socket,path=/tmp/port1,server,nowait,id=port1-char \
-device virtio-serial \
-device virtserialport,id=port1,chardev=port1-char,name=org.fedoraproject.port.0 \
-net user,hostfwd=tcp::7777-:8001
EDITAR:
Um exemplo de como se conectar a partir do host usando ssh para a VM:
-net user,hostfwd=tcp::10022-:22
-net nic
Este hostforwarding mapeia a porta 10022 do host local (host) para a porta 22 na VM. Depois que a VM foi iniciada assim, você pode acessá-la a partir do host local da seguinte forma:
ssh vmuser@localhost -p10022
O comando -net nic inicializa uma placa de interface de rede virtual muito básica.