mirror of https://github.com/xemu-project/xemu.git
Created Networking (markdown)
parent
b975b9d5c4
commit
d050581ad1
|
@ -0,0 +1,101 @@
|
|||
Networking Options
|
||||
------------------
|
||||
xemu emulates the Xbox network controller (nvnet), and being built on top of
|
||||
QEMU's robust networking support infrastructure, provides a flexible array of
|
||||
advanced network configuration options. There are two network backends exposed
|
||||
in the Network configuration window for xemu:
|
||||
|
||||
- **User (NAT)**: In this networking mode, a full TCP/IP stack is running within
|
||||
xemu, and network address translation is used to route packets between the
|
||||
internal network and the outside world.
|
||||
- **Socket**: In this networking mode, all traffic that would be sent/recieved by
|
||||
the emulated NIC is simply encapsulated in UDP datagrams and forwarded to a
|
||||
remote host, which could be another instance of xemu or perhaps a real Xbox
|
||||
(see [l2tunnel](github.com/mborgerson/l2tunnel) for more information). This
|
||||
is useful for quickly setting up a virtual LAN.
|
||||
|
||||
Tips
|
||||
----
|
||||
|
||||
### Connect to an FTP server hosted inside xemu
|
||||
If you have an alternative dashboard that runs an FTP server (as almost all
|
||||
replacement dashboards do), you can easily connect to that FTP server to read
|
||||
or write files on the virtual hard disk.
|
||||
|
||||
#### Step 1: Enable user networking
|
||||
|
||||
In xemu, open the Network window by navigating to
|
||||
<kbd>Machine</kbd>→<kbd>Network</kbd>. If networking is currently
|
||||
enabled, click <kbd>Disable</kbd>. From the "Attached To" combo box, select
|
||||
"User (NAT)", then click <kbd>Enable</kbd>.
|
||||
|
||||
#### Step 2: Forward port 21
|
||||
|
||||
Because xemu is configured to use "user networking", we must configure xemu
|
||||
to forward FTP traffic on the host machine to the internal network. There is
|
||||
not a fancy GUI to do this yet, but we can easily do this using the monitor.
|
||||
|
||||
In xemu, open the Monitor window by navigating to
|
||||
<kbd>Debug</kbd>→<kbd>Monitor</kbd>. In the box at the bottom of the
|
||||
Monitor window, paste the following command and press <kbd>Enter</kbd>:
|
||||
|
||||
```
|
||||
hostfwd_add xemu-netdev tcp:127.0.0.1:2121-:21
|
||||
```
|
||||
|
||||
Now xemu will begin listening on TCP port 2121 for new connections, and forward
|
||||
that traffic to the internal network.
|
||||
|
||||
#### Step 3: Connect using your FTP client
|
||||
The [Filezilla FTP client](https://filezilla-project.org/) is recommended. It
|
||||
is an open-source client available for all major platforms. If you would
|
||||
prefer to use another client, look for the respective settings in your client
|
||||
mentioned in this section.
|
||||
|
||||
Now, assuming that you are using Filezilla, start the client. Let's first
|
||||
create a new "Site" by navigating to <kbd>File</kbd> → <kbd>Site
|
||||
Manager</kbd>, then in the "Site Manager" window, click the <kbd>New
|
||||
Site</kbd> button.
|
||||
|
||||
* Enter "xemu" for the site name
|
||||
* For "Host" enter `127.0.0.1` and for "Port" enter `2121`
|
||||
* For "Encryption" select "Only use plain FTP (insecure)"
|
||||
* For "Logon Type" select "Normal"
|
||||
* Enter the appropriate "User" and "Password" (typically `xbox` for both)
|
||||
* Navigate to the "Transfer Settings" tab and select "Active"
|
||||
* Click <kbd>OK</kbd> when you are finished
|
||||
|
||||
We must configure one more additional setting.
|
||||
|
||||
* Navigate to the settings window via <kbd>Edit</kbd> → <kbd>Settings...</kbd>
|
||||
* On the left-hand side, navigate to <kbd>Connection</kbd> → <kbd>FTP</kbd> → <kbd>Active mode</kbd>
|
||||
* In the "Active mode IP" group, select "Use the following IP address:" and enter `10.0.2.2`
|
||||
* **Uncheck** "Don't use external IP address on local connections."
|
||||
* Click <kbd>OK</kbd> when you are finished
|
||||
|
||||
You can now open the "Site Manager" window again, select "xemu", and click the <kbd>Connect</kbd> button.
|
||||
|
||||
<details>
|
||||
<summary>More details about the FTP protocol for the curious...</summary>
|
||||
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.
|
||||
</details>
|
||||
|
||||
Note: To prevent interference with other FTP servers that you might connect to,
|
||||
you may want to adjust your settings and disable the "Active mode IP" override
|
||||
when you have finished transferring files.
|
Loading…
Reference in New Issue