Перейти к основному содержимому

Mudcat (mudcat)

Введение​

Сервис общего доступа к портам HTTP/TCP/UDP от Mudfish Networks. Он предназначен для задач, аналогичных https://ngrok.io.

Сервис позволяет легко предоставить внешний доступ к службам во внутренней сети. В настоящее время поддерживаются следующие протоколы.

  • HTTP

  • TCP

  • UDP

Настройка и использование возможны с помощью одной команды.

Скачивание​

Скачать программу можно с https://www.mudcat.io/.

Для пользователя mudcat представляет собой один исполняемый файл, поэтому его легко скачать и запустить.

Параметры запуска mudcat​

При запуске mudcat отображается следующий экран. Использование mudcat немного отличается в зависимости от команды.

$ ./mudcat
Usage: mudcat [-vV] <command> [<args>]

Options:
-v # Increase the verbose level.
-V, --version # Show the version.

Commands:
http # Create a HTTP tunnel.
node # Show the mudcat nodes.
tcp # Create a TCP tunnel.
udp # Create a UDP tunnel.

В настоящее время поддерживаются следующие команды.

  • http

    Используется для переадресации порта HTTP.

  • node

    Показывает сведения о релейных серверах mudcat для переадресации.

  • tcp

    Используется для переадресации порта TCP.

  • UDP

    Используется для переадресации порта UDP.

При запуске ./mudcat <command> -h можно получить дополнительную справку по соответствующей команде.

Команда mudcat http​

Эта команда предоставляет переадресацию HTTP. Обычно она используется для простого предоставления внешнего доступа к сервису, разрабатываемому во внутренней сети.

$ ./mudcat http -h
Usage: mudcat http [options]
--domain <domain> # Specify the domain name to access.
--local-addr <ip> # Specify the local IP to connect. Default
# value is 127.0.0.1
--local-port <port> # Specify the local port. Default value is 80.
--node-cc <cc> # Specify the country code to hint the
# selection of mudcat nodes.
--node-id <nid> # Specify the unique ID of mudcat node.

Поддерживаются следующие дополнительные параметры.

  • --domain <domain>

    Этот параметр позволяет задать домен вручную вместо случайно назначаемого адреса, обычно состоящего из цифр. Например, при указании --domain abc будет назначен домен abc.mudcat.io.

  • --local-addr <ip>

    Задаёт локальный IPv4-адрес для переадресации HTTP. Значение по умолчанию — 127.0.0.1.

    Адрес необязательно должен принадлежать внутренней сети. При необходимости можно указать удалённый публичный IP-адрес.

  • --local-port <port>

    Задаёт локальный порт для переадресации HTTP. Значение по умолчанию — 80.

  • --node-cc <cc>

    Позволяет задать код страны релейного сервера mudcat. Например, при коде JP автоматически назначается сервер mudcat в Японии.

  • --node-id <nid>

    Позволяет задать уникальный ID релейного сервера mudcat. ID каждого сервера можно получить командой mudcat node.

Команда mudcat node​

Эта команда используется для получения сведений о релейных серверах mudcat.

$ ./mudcat node -h
Usage: mudcat node [--json-raw]
--json-raw # Prints the raw JSON output.

Команда ./mudcat node показывает список работающих релейных серверов mudcat. Поддерживаются следующие дополнительные параметры.

  • --json-raw

    Выводит список релейных серверов в формате JSON.

Команда mudcat tcp​

Эта команда используется для переадресации TCP.

$ ./mudcat tcp -h
Usage: mudcat tcp [options]
--conn-uuid <uuid> # Set the connection UUID to reuse.
--domain <domain> # Specify the domain name to access.
--local-addr <ip> # Specify the local IP to connect. Default
# value is 127.0.0.1
--local-port <port> # Specify the local port. If not specified,
# --remote-port value will be used.
--node-cc <cc> # Specify the country code to hint the
# selection of mudcat nodes.
--node-id <nid> # Specify the unique ID of mudcat node.
--remote-port <port> # Specify the remote port.

Поддерживаются следующие дополнительные параметры.

  • --conn-uuid <uuid>

    Этот параметр позволяет повторно использовать ранее выделенный удалённый порт.

    Обычно после отключения соединения выделенный удалённый порт нельзя использовать до освобождения его ресурсов.

    Однако при известном прежнем Connection UUID этот порт можно сразу использовать повторно.

  • --domain <domain>

    Этот параметр позволяет задать домен вручную вместо случайно назначаемого адреса, обычно состоящего из цифр. Например, при указании --domain abc будет назначен домен abc.mudcat.io.

  • --local-addr <ip>

    Задаёт локальный IPv4-адрес для переадресации TCP. Значение по умолчанию — 127.0.0.1.

    Адрес необязательно должен принадлежать внутренней сети. При необходимости можно указать удалённый публичный IP-адрес.

  • --local-port <port>

    Задаёт локальный порт для переадресации TCP. Если параметр не указан, используется значение порта из --remote-port <port>.

  • --node-cc <cc>

    Позволяет задать код страны релейного сервера mudcat. Например, при коде JP автоматически назначается сервер mudcat в Японии.

  • --node-id <nid>

    Позволяет задать уникальный ID релейного сервера mudcat. ID каждого сервера можно получить командой mudcat node.

  • --remote-port <port>

    Задаёт TCP-порт, который будет прослушивать релейный сервер mudcat.

Команда mudcat udp​

Эта команда используется для переадресации UDP.

$ ./mudcat udp -h
Usage: mudcat udp [options]
--conn-uuid <uuid> # Set the connection UUID to reuse.
--domain <domain> # Specify the domain name to access.
--local-addr <ip> # Specify the local IP to connect. Default
# value is 127.0.0.1
--local-port <port> # Specify the local port. If not specified,
# --remote-port value will be used.
--node-cc <cc> # Specify the country code to hint the
# selection of mudcat nodes.
--node-id <nid> # Specify the unique ID of mudcat node.
--remote-port <port> # Specify the remote port.

Поддерживаются следующие дополнительные параметры.

  • --conn-uuid <uuid>

    Этот параметр позволяет повторно использовать ранее выделенный удалённый порт.

    Обычно после отключения соединения выделенный удалённый порт нельзя использовать до освобождения его ресурсов.

    Однако при известном прежнем Connection UUID этот порт можно сразу использовать повторно.

  • --domain <domain>

    Этот параметр позволяет задать домен вручную вместо случайно назначаемого адреса, обычно состоящего из цифр. Например, при указании --domain abc будет назначен домен abc.mudcat.io.

  • --local-addr <ip>

    Задаёт локальный IPv4-адрес для переадресации UDP. Значение по умолчанию — 127.0.0.1.

    Адрес необязательно должен принадлежать внутренней сети. При необходимости можно указать удалённый публичный IP-адрес.

  • --local-port <port>

    Задаёт локальный порт для переадресации UDP. Если параметр не указан, используется значение порта из --remote-port <port>.

  • --node-cc <cc>

    Позволяет задать код страны релейного сервера mudcat. Например, при коде JP автоматически назначается сервер mudcat в Японии.

  • --node-id <nid>

    Позволяет задать уникальный ID релейного сервера mudcat. ID каждого сервера можно получить командой mudcat node.

  • --remote-port <port>

    Задаёт UDP-порт, который будет прослушивать релейный сервер mudcat.

История изменений​

0.0.3 (2023-01-21)​

  • Добавлены следующие параметры.

    • --domain
    • --node-id

0.0.2 (2023-01-20)​

  • Исправлена некорректная работа в Windows.

0.0.1 (2023-01-18)​

  • Это первый выпуск. Основные функции реализованы, но ещё многое можно улучшить и, вероятно, остаётся немало ошибок. Мы будем постепенно совершенствовать программу.