
Параллельный инструмент трассировки с поддержкой нескольких целей, который трассирует маршруты IPv4/IPv6 с помощью ICMP-, TCP- или UDP-проб, определяет ASN промежуточных узлов и экспортирует таблицы в стиле MTR и ссылки на карты.
Трассируйте несколько целей одновременно и просматривайте каждый хоп на карте.
English · 简体中文 · 繁體中文(台灣) · 繁體中文(香港) · 繁體中文(澳門)
xmtr трассирует несколько целей одновременно с помощью trippy, останавливает каждый маршрут, как только его путь стабилизируется, и загружает маршруты в xmsl.dev IPMap. IPMap размещает каждый хоп на карте и воспроизводит маршрут.
https://github.com/user-attachments/assets/b2152647-3396-4f2c-86d4-267c2b11e529
Ссылка в конце запуска открывает карту:
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
Вторая команда трассирует 1.1.1.1 и cloudflare.com по IPv4 и IPv6, если хост поддерживает оба протокола, и выводит маршруты и ссылку IPMap. Windows и менеджеры пакетов описаны в разделе Install, а в разделе Privileges перечислено, кто может выполнять трассировку в каждой системе.
macOS, Linux, FreeBSD, Termux
curl -fsSL https://raw.githubusercontent.com/Alice39s/xmtr/main/install.sh | bash
Скрипт написан на POSIX sh, поэтому | sh работает в системах без bash. В OpenWrt используйте нативный репозиторий пакетов. При установке от имени обычного пользователя он устанавливается в /usr/local/bin через sudo, поэтому sudo xmtr находит бинарный файл; sudo может запросить ваш пароль. Без прав sudo он устанавливается в ~/.local/bin.
Windows
powershell -c "irm https://raw.githubusercontent.com/Alice39s/xmtr/main/install.ps1|iex"
Оба скрипта выбирают сборку для вашей системы, проверяют её по файлу SHA256SUMS из релиза и запускают небольшой установщик, который размещает единственный бинарный файл xmtr, а затем удаляет себя. Больше ничего не записывается, кроме записи в пользовательский PATH в Windows. Загрузки выполняются по HTTPS, если только XMTR_RELEASES не указывает на зеркало http://.
| Система | Расположение по умолчанию |
|---|---|
| Linux, macOS, FreeBSD | /usr/local/bin; ~/.local/bin без прав sudo |
| Termux | $PREFIX/bin |
| Windows | %LOCALAPPDATA%\Programs\xmtr |
Передавайте параметры установщика после bash -s --:
curl -fsSL https://raw.githubusercontent.com/Alice39s/xmtr/main/install.sh | bash -s -- --dir ~/bin --version v0.3.6
XMTR_INSTALL_DIR задаёт каталог, а XMTR_RELEASES направляет и скрипт, и установщик на зеркало страницы релизов. В Windows эти две переменные — единственный способ передать параметры.
| Менеджер | Команда | |
|---|---|---|
| Homebrew (macOS, Linux) | brew install alice39s/tap/xmtr | |
| Scoop (Windows) | scoop bucket add alice39s https://github.com/Alice39s/scoop-bucket, затем scoop install alice39s/xmtr | |
| WinGet (Windows) | winget install Alice39s.xmtr | |
| Chocolatey (Windows) | choco install xmtr | |
| npm | npm install --global @xmtr/cli или npx @xmtr/cli 1.1.1.1 | |
| PyPI | uv tool install xmtr, pipx install xmtr или pip install xmtr | |
| Cargo | cargo binstall xmtr для готового бинарника из релиза или cargo install xmtr для сборки из исходников | |
| mise | mise use --global github:Alice39s/xmtr | |
| Nix | nix run github:Alice39s/xmtr -- 1.1.1.1 или nix profile install github:Alice39s/xmtr | |
| Docker | docker run --rm ghcr.io/alice39s/xmtr 1.1.1.1 |
Пакет npm и колёса PyPI содержат те же бинарники, что и архивы релизов; npm выбирает пакет @xmtr/<platform> для вашей системы. Образ Docker содержит только статический бинарник и собран для amd64, arm64, armv7, armv6, 386, riscv64 и loong64. Docker по умолчанию предоставляет контейнерам доступ к raw-сокетам; при использовании Podman добавьте --cap-add NET_RAW.
Пакеты deb, rpm и apk устанавливают /usr/bin/xmtr и выдают ему доступ к raw-сокетам через setcap, поэтому любой пользователь может выполнять трассировку без root. Они прикреплены к каждому релизу и распространяются из подписанных репозиториев:
| Система | Архитектуры | |
|---|---|---|
| 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
Репозитории подписаны ключами в packaging/keys. Рабочий процесс релиза публикует все каналы, указанные выше, кроме mise и Nix, которые читают релиз GitHub и flake напрямую.