
Paralleles Multi-Target-Traceroute-Tool, das IPv4/IPv6-Routen mit ICMP-, TCP- oder UDP-Probes verfolgt, Hop-ASNs auflöst und MTR-artige Tabellen sowie Kartenlinks exportiert.
Mehrere Ziele gleichzeitig verfolgen und jeden Hop auf einer Karte sehen.
English · 简体中文 · 繁體中文(台灣) · 繁體中文(香港) · 繁體中文(澳門)
xmtr verfolgt mehrere Ziele gleichzeitig mit trippy, stoppt jede Route, sobald ihr Pfad stabil ist, und lädt die Routen zu xmsl.dev IPMap hoch. IPMap platziert jeden Hop auf einer Karte und spielt die Route erneut ab.
https://github.com/user-attachments/assets/b2152647-3396-4f2c-86d4-267c2b11e529
Der Link am Ende eines Laufs öffnet die Karte:
https://github.com/user-attachments/assets/b675a8f5-dff1-460a-bb3c-ca7b3e4ff412
curl -fsSL https://raw.githubusercontent.com/Alice39s/xmtr/main/install.sh | bash
sudo xmtr 1.1.1.1 cloudflare.com
Der zweite Befehl verfolgt 1.1.1.1 und cloudflare.com über IPv4 und IPv6, wenn der Host beides hat, und gibt die Routen sowie einen IPMap-Link aus. Windows und Paketmanager werden in Install behandelt, und Privileges listet auf, wer auf welchem System verfolgen darf.
macOS, Linux, FreeBSD, Termux
curl -fsSL https://raw.githubusercontent.com/Alice39s/xmtr/main/install.sh | bash
Das Skript ist POSIX-sh, daher funktioniert | sh auf Systemen ohne bash. Unter OpenWrt verwenden Sie das native Paket-Repository. Als regulärer Benutzer wird es über sudo nach /usr/local/bin installiert, sodass sudo xmtr die Binärdatei findet; sudo kann nach Ihrem Passwort fragen. Ohne sudo-Rechte wird es nach ~/.local/bin installiert.
Windows
powershell -c "irm https://raw.githubusercontent.com/Alice39s/xmtr/main/install.ps1|iex"
Beide Skripte wählen den Build für Ihr System aus, prüfen ihn gegen die SHA256SUMS des Releases und führen einen kleinen Installer aus, der eine einzelne xmtr-Binärdatei ablegt und sich anschließend selbst löscht. Es wird nichts anderes geschrieben, außer dem Benutzer-PATH-Eintrag unter Windows. Downloads verwenden HTTPS, es sei denn, XMTR_RELEASES benennt einen http://-Mirror.
| System | Standardpfad |
|---|---|
| Linux, macOS, FreeBSD | /usr/local/bin; ~/.local/bin ohne sudo-Rechte |
| Termux | $PREFIX/bin |
| Windows | %LOCALAPPDATA%\Programs\xmtr |
Installer-Optionen nach bash -s -- übergeben:
curl -fsSL https://raw.githubusercontent.com/Alice39s/xmtr/main/install.sh | bash -s -- --dir ~/bin --version v0.3.6
XMTR_INSTALL_DIR legt das Verzeichnis fest, und XMTR_RELEASES verweist sowohl das Skript als auch den Installer auf einen Mirror der Releases-Seite. Unter Windows sind diese beiden Variablen die einzige Möglichkeit, Optionen zu übergeben.
| Manager | Befehl | |
|---|---|---|
| Homebrew (macOS, Linux) | brew install alice39s/tap/xmtr | |
| Scoop (Windows) | scoop bucket add alice39s https://github.com/Alice39s/scoop-bucket dann scoop install alice39s/xmtr | |
| WinGet (Windows) | winget install Alice39s.xmtr | |
| Chocolatey (Windows) | choco install xmtr | |
| npm | npm install --global @xmtr/cli, oder npx @xmtr/cli 1.1.1.1 | |
| PyPI | uv tool install xmtr, pipx install xmtr oder pip install xmtr | |
| Cargo | cargo binstall xmtr für das Release-Binary, oder cargo install xmtr, um es zu bauen | |
| mise | mise use --global github:Alice39s/xmtr | |
| Nix | nix run github:Alice39s/xmtr -- 1.1.1.1, oder nix profile install github:Alice39s/xmtr | |
| Docker | docker run --rm ghcr.io/alice39s/xmtr 1.1.1.1 |
Das npm-Paket und die PyPI-Wheels enthalten dieselben Binaries wie die Release-Archive; npm wählt das @xmtr/<platform>-Paket für dein System aus. Das Docker-Image enthält nur das statische Binary und wird für amd64, arm64, armv7, armv6, 386, riscv64 und loong64 gebaut. Docker gewährt Containern standardmäßig Raw-Sockets; bei Podman füge --cap-add NET_RAW hinzu.
Die deb-, rpm- und apk-Pakete installieren /usr/bin/xmtr und gewähren ihm Raw-Sockets mit setcap, sodass jeder Benutzer ohne Root tracen kann. Sie sind an jedes Release angehängt und werden aus signierten Repositories bereitgestellt:
| System | Architekturen | |
|---|---|---|
| Debian, Ubuntu | amd64, arm64, armhf, i386, riscv64, loong64 | |
| Fedora, RHEL | x86_64, aarch64, armv7hl, i686, riscv64, loongarch64 | |
| Alpine | x86_64, aarch64, armv7, armhf, x86, riscv64, loongarch64 |
# Debian, Ubuntu
sudo curl -fsSL -o /usr/share/keyrings/xmtr.gpg https://alice39s.github.io/xmtr/xmtr.gpg
echo "deb [signed-by=/usr/share/keyrings/xmtr.gpg] https://alice39s.github.io/xmtr/deb stable main" | sudo tee /etc/apt/sources.list.d/xmtr.list
sudo apt update && sudo apt install xmtr
# Fedora, RHEL
sudo curl -fsSL -o /etc/yum.repos.d/xmtr.repo https://alice39s.github.io/xmtr/rpm/xmtr.repo
sudo dnf install xmtr
# Alpine
wget -qO /etc/apk/keys/xmtr.rsa.pub https://alice39s.github.io/xmtr/apk/xmtr.rsa.pub
echo https://alice39s.github.io/xmtr/apk >> /etc/apk/repositories
apk add xmtr
Die Repositories sind mit den Schlüsseln in packaging/keys signiert. Der Release-Workflow veröffentlicht jeden der oben genannten Kanäle außer mise und Nix, die direkt das GitHub-Release und das Flake lesen.