From my basic understanding of SSH port forwarding, the SSH client software opens a listening socket on an IP:PORT, say 185.68.93.141:80. So if I go to my web browser and access somewebsite.com that resolves to 185.68.93.141, then my web browser will open a socket to talk to 185.68.93.141:80.
Alas, unbeknownst to the browser, it is not talking to the webserver, but the SSH client. The SSH client will send it over the SSH connection (through port 22, which is the only one allowed through the NAT and firewall) and the SSH server will relay it to localhost:80.
However, as I know from experience and a few google searches, you cannot bind a listening socket to an external IP. You get some "IP not valid in this context" error.
So, how does this actually work?