Suppose you have
work:~#
home:~#
And work:~# is the firewall you can't control
When you write server, I see from context (ssh -D 4096 server), that you mean SSH server. (and not e.g. VNC server). You should specify really, it's clearer. Normally if you have an SSH server it'd be on either work or home. It should be on the computer with the firewall that you can control, that is, Home.
You'd also typically have a regular server that you want to reach, and that's normally not an SSH server. Though it can be, there's a question with a great example of where one might want it to be.
Perhaps you can explain more what server:~# is, but i'm going to skip it out in the meantime 'cos it seems unncecessary and it's not clear what you mean by it 'cos if you have an SSH server e.g. on work then you'd get a prompt work:~#
So what you do is
From the one you can't control i.e. work, you make an outgoing connection. 'cos the firewall lets them out.
home:~# START VNC server on e.g. 5901
home:~# START SSHD SERVER on e.g. port 80 <-- whatever the command is to start your sshd.
work:~# ssh -R 1234:127.0.0.1:5901 user@homeip -p 80
home:~# vncviewer 127.0.0.1:1234
Home sees work.
really the switches to know for SSH are -L, -R and -D
And if you are connecting the client program to the listening port in such a way that the client program is on a different machine to your listening port, then it needs to be -R *:1234:127.0.0.1:5901
or 0.0.0.0:1234:127.0.0.1:5901
Though bear in mind, that's for something like VNC, but if you did it for HTTP you'd only be able to view one site. There is -D which as you see is local.
Some people are at home and want to access a server at work, and that server is behind a firewall they don't control.
But if you want internet access, then you're at work, wanting to access a server at home..
Why on earth can't you do that?
Try running the SSHD server on port 80 or port 443 at home, and do work~:#ssh homeip -p 443