2022-09-06 11:33:27 +10:00
|
|
|
# What's This?
|
|
|
|
|
2023-03-09 22:09:53 +11:00
|
|
|
The packet inspector is a Minecraft proxy for viewing the contents of packets as
|
|
|
|
they are sent/received. It uses Valence's protocol facilities to display packet
|
|
|
|
contents. This was made for three purposes:
|
2022-09-16 22:31:37 +10:00
|
|
|
|
2022-09-06 11:33:27 +10:00
|
|
|
- Check that packets between Valence and client are matching your expectations.
|
2023-03-09 22:09:53 +11:00
|
|
|
- Check that packets between vanilla server and client are parsed correctly by
|
|
|
|
Valence.
|
2022-09-06 11:33:27 +10:00
|
|
|
- Understand how the protocol works between the vanilla server and client.
|
|
|
|
|
|
|
|
# Usage
|
|
|
|
|
2023-03-09 22:09:53 +11:00
|
|
|
Firstly, we should have a server running that we're going to be
|
|
|
|
proxying/inspecting.
|
2022-09-06 11:33:27 +10:00
|
|
|
|
2022-09-06 14:25:30 +10:00
|
|
|
```sh
|
2022-09-06 11:33:27 +10:00
|
|
|
cargo r -r --example conway
|
|
|
|
```
|
2022-09-16 22:31:37 +10:00
|
|
|
|
2023-03-09 22:09:53 +11:00
|
|
|
Next up, we need to run the proxy server, this can be done in 2 different ways,
|
2023-06-17 22:40:51 +10:00
|
|
|
either using the GUI application (default) or by using the `cli` feature gate.
|
2022-09-06 11:33:27 +10:00
|
|
|
|
2023-06-17 22:40:51 +10:00
|
|
|
To launch in a Gui environment, simply run `packet_inspector`.
|
2023-03-09 22:09:53 +11:00
|
|
|
|
2023-06-17 22:40:51 +10:00
|
|
|
```sh
|
|
|
|
cargo r -r -p packet_inspector
|
2023-03-09 22:09:53 +11:00
|
|
|
```
|
|
|
|
|
2023-06-17 22:40:51 +10:00
|
|
|
To Launch in a Cli environment, build `packet_inspector` with the default
|
|
|
|
features disabled, and supplying the `cli` feature. note that you **must**
|
|
|
|
supply the listener and server addresses as arguments.
|
2023-03-09 22:09:53 +11:00
|
|
|
|
|
|
|
```bash
|
2023-06-17 22:40:51 +10:00
|
|
|
cargo r -r -p packet_inspector --no-default-features --features cli -- 127.0.0.1:25566 127.0.0.1:25565
|
2022-09-06 11:33:27 +10:00
|
|
|
```
|
|
|
|
|
2023-06-17 22:40:51 +10:00
|
|
|
To assist, `--help` will produce the following:
|
2022-09-16 22:31:37 +10:00
|
|
|
|
|
|
|
```
|
2023-06-17 22:40:51 +10:00
|
|
|
A simple Minecraft proxy for inspecting packets.
|
2022-09-16 22:31:37 +10:00
|
|
|
|
2023-06-17 22:40:51 +10:00
|
|
|
Usage: packet_inspector <LISTENER_ADDR> <SERVER_ADDR>
|
2022-09-06 11:33:27 +10:00
|
|
|
|
2023-06-17 22:40:51 +10:00
|
|
|
Arguments:
|
|
|
|
<LISTENER_ADDR> The socket address to listen for connections on. This is the address clients should connect to
|
|
|
|
<SERVER_ADDR> The socket address the proxy will connect to. This is the address of the server
|
2022-09-06 11:33:27 +10:00
|
|
|
```
|
2022-09-16 11:59:43 +10:00
|
|
|
|
2023-06-17 22:40:51 +10:00
|
|
|
The client can now connect to `localhost:25566`. You should see the packets in
|
|
|
|
`stdout` when running in cli mode, or you should see packets streaming in on the
|
|
|
|
Gui.
|
|
|
|
|
2022-09-16 11:59:43 +10:00
|
|
|
## Quick start with Vanilla Server via Docker
|
|
|
|
|
|
|
|
Start the server
|
2022-09-16 22:31:37 +10:00
|
|
|
|
|
|
|
```sh
|
2022-09-16 11:59:43 +10:00
|
|
|
docker run -e EULA=TRUE -e ONLINE_MODE=false -d -p 25565:25565 --name mc itzg/minecraft-server
|
|
|
|
```
|
|
|
|
|
|
|
|
View server logs
|
2022-09-16 22:31:37 +10:00
|
|
|
|
|
|
|
```sh
|
2022-09-16 11:59:43 +10:00
|
|
|
docker logs -f mc
|
|
|
|
```
|
|
|
|
|
|
|
|
Server Rcon
|
2022-09-16 22:31:37 +10:00
|
|
|
|
|
|
|
```sh
|
2022-09-16 11:59:43 +10:00
|
|
|
docker exec -i mc rcon-cli
|
|
|
|
```
|
|
|
|
|
|
|
|
In a separate terminal, start the packet inspector.
|
|
|
|
|
|
|
|
```sh
|
2023-06-17 22:40:51 +10:00
|
|
|
cargo r -r -p packet_inspector --no-default-features --features cli -- 127.0.0.1:25566 127.0.0.1:25565
|
2022-09-16 11:59:43 +10:00
|
|
|
```
|
|
|
|
|
|
|
|
Open Minecraft and connect to `localhost:25566`.
|
|
|
|
|
|
|
|
Clean up
|
2022-09-16 22:31:37 +10:00
|
|
|
|
2022-09-16 11:59:43 +10:00
|
|
|
```
|
|
|
|
docker stop mc
|
|
|
|
docker rm mc
|
|
|
|
```
|