> The original "beginners networking" thread was getting a bit broad in
> scope. Since I'm easily able to get telnet working I'd rather focus
> on why ftp fails to cooperate in either direction.
I'm going to inject some basic networking info here, in case it helps
anyone analyze these problems. Probably old hat for at least some
readers.
NAT and firewalls
For most home users, internet is delivered with at least one layer of
address translation (NAT) between you and the world. If you're unlucky,
it may be worse than that. On your side of such a NAT connection, you
use RFC1918 address space, one of several blocks of space that are
reserved for "internal use only". Addresses in these blocks are not
routable across the real internet. Because they're internal only, at
e.g. the ISP or campus or home level, everyone can use addresses from
these blocks inside their own network. This means that the millions of
addresses in those spaces really provide many times that number of uses.
The thing that makes this work is address translation: at the border
between a network using RFC1918 space and the "live" internet, internal
addresses are rewritten on the fly as the packets go past the border.
The firewall or router at that border must keep track of the connections
so that it can reverse translate returning traffic and get it to the
client which is using the internal address. The drawback is twofold:
first, outside systems can't initiate inward connections; and second,
some protocols (FTP, some streaming protocols) depend on passing
participant addresses inside their protocol data. The former can be
considered an advantage: less outsiders can attack an inside system
directly. The latter is just a headache.
Firewalls also cause problems with inbound connections, especially in
protocols like FTP and the aforementioned streaming ones, due to just
plain blocking traffic regardless of addressing.
Note: NAT is sometimes done with a fixed table of routable addresses on
both sides of the link, but that's largely not relevant to the home
user.
FTP
FTP uses two connections. The client creates the first by connecting to
the server on (usually) port 21. This connection becomes the command
channel, over which the client sends instructions (cd, ls, etc), and the
server sends the brief command responses.
The second connection is used to transfer bulk data, including moving
files up and down, sending directory listings, etc. In traditional
(active) FTP, the server connects to the client on the port indicated by
the client over the command channel. In what is now the more common
mode, passive, the data channel is established the other way, by the
client to the server.
Passive FTP solves the problems of a client behind address translation
or a firewall, because the client initiates both connections. (If
_both_ participants are behind such borders, then you still have a
problem.)
Border systems can be configured to do various things to help solve some
of these problems. For example, Linux systems (including consumer grade
stuff like many home routers and wifi access ports) can do deep address
translation inside of protocols for which they have shims that
understand the details. They can also e.g. sniff FTP command channels
and allow incoming data channel connections that would otherwise be
blocked.
Simulators and tunnels and wifi oh my
Depending on how the various software is configured, you may end up with
an address translation layer on the host running the simulator. You may
encounter Linux bridging doing unwanted things with non-IP traffic. You
may find that Wifi doesn't always play well with anything that's not
basically TCP/IP. In some cases, you may need to take steps to cause
ARP to work for internal networking structures like tunnels on software
bridges. ARP is the low level protocol that answers questions like
"who has (ip) 10.0.0.101" with "(ip) 10.0.0.101 is at (hardware address)
01:23:45:67:89:0A".
Solutions
I don't have my Pi ready or my kit built, so I can't dig into this in a
representative environment. But the solutions lie in identifying the
structure of the network and applying ARP solutions, translations,
protocol helpers, firewall rules.
FWIW,
De