A data vendor provides data feed to one of my PCs. Let's call this PC #1.
--Data vendors has a process (let's call it the API process) running on PC #1.
--This process communicates with vendor's backend data server over the Internet.
--My own application runs on PC #1 and communicates with vendor API process thru localhost:1234.
--My app can make request to vendor API process and get various data.

Now, I need to have my app run on a Linux machine instead.
But the vendor does not have an API process that runs on Linux machines.
(Basically, they simply do not support non-Windows machines.)

So I tried to get around this problem as follows:
--On PC #1, I launch a SSH server process.
--On Linux, I launch a SSH client application (i.e. putty) and
under SSH-Tunnels, I would forward the Linux localhost:1234
to PC #1.
--I then connect my SSH client to the SSH server.
--Now I recompile my application on the Linux machine.
I thought if I run my app now on Linux, my app will now
connect to port 1234 on PC#1 and simply work.

Unfortunately, this does not work.

But if I replace Linux with another PC (called PC #2) and repeat the
same exact process above, it actually works. My app on PC #2
get the data even though there is no vendor API process running
on PC #2 at all.

So why would this not work with a Linux machine?