diff --git a/FTP.md b/FTP.md new file mode 100644 index 0000000..c669bfb --- /dev/null +++ b/FTP.md @@ -0,0 +1,40 @@ +How to connect to an ftp server hosted inside xqemu +=================================================== +Writing files to your Xbox's HDD is currently a pain. It will be easy once the +fatx driver has write capabilities, but until then you have the option of +connecting over FTP to a server hosted inside xqemu. + +Run xqemu as normal, but add option to forward to port 21 inside VM as follows: + + -net nic,model=nvnet -net user,hostfwd=tcp:127.0.0.1:8081-:21 + +It's assumed you're using Filezilla. If not, look for the respective settings in +your client. Fire up Filezilla and set the following options: + +Filezilla > Settings > Connection > FTP > Active mode + + Active mode IP, "Use tho following IP address:" 10.0.2.2 + + Make sure "Don't use external IP address on local connections." is NOT checked + +Then create your new "Site" with IP address 127.0.0.1 and port 8081. Under Transfer Settings, check Active. + +Details for the curious +----------------------- +FTP has two modes, passive and active. + +Passive mode involves the client first connecting to the server for control and +then again on another port other for data. The client first connects, then the +server gives it another address and port to connect to for data. The first +problem with this is that the server reports to the client the only IP address +that it knows (10.0.2.15) which is not correct for our needs--we need 127.0.0.1. +That's alright because we can override this in Filezilla. The second problem is +that we don't know which port the server is going to choose, so we can't forward +it ahead of time. + +In active mode, the client first connects to the server, then the server +connects to the client! The client needs to give the IP address for the server +to connect to. By default, it will give your computer's IP address, but the +guest cannot connect to using that IP. So instead we need to override this +setting and provide the IP address that the guest should connect to to actually +connect to the host, which is 10.0.2.2.