Zeroconf mDNS на Android?

Могу ли я запустить mDNS-сервер Zeroconf на своем телефоне Android? Что-то вроде Avahi в Linux.

Причина, по которой я спрашиваю, заключается в том, что я запускаю сервер SSH / SFTP на своем телефоне для передачи файлов на / с телефона. Прямо сейчас мне нужно подключиться, используя локальный IP-адрес ( 10.1.0.x), а IP-адрес меняется через DHCP. Я хотел бы просто иметь возможность подключиться к своему телефону, используя .localадрес.

Я не думаю, что Dynamic DNS будет работать, потому что я хочу, чтобы мой адрес локальной сети (частный IP-адрес 10.1.0.x), а не мой общедоступный IP-адрес NAT.

Ответы (2)

Есть ли у вас какой-либо контроль над (предположительно беспроводной) локальной сетью, к которой вы подключаете свой телефон? Мне кажется, что основная часть вашей проблемы заключается именно в том, что ваш телефон каждый раз при подключении к вашей локальной сети получает разные IP-адреса. Если бы у него всегда был один и тот же IP-адрес, вы могли бы либо записать это, сохранить его в своем SSH-клиенте, либо присвоить имя этому IP-адресу на других ваших машинах, используя файл HOSTS или аналогичный.

Вы контролируете свою сеть или знаете этого человека? Вы (или они) должны иметь возможность назначить статический IP-адрес или зарезервированный IP-адрес своему устройству, чтобы каждый раз, когда вы подключаете свой телефон к локальной сети, он всегда получал один и тот же IP-адрес.

Если это небольшая личная сеть, то это будет просто настройка записи вашего устройства на вашем маршрутизаторе, если это более крупная сеть, то она будет настроена на DHCP-сервере, а соответствующая запись имени также может быть настроена на их внутреннем устройстве. DNS, чтобы дать вам постоянное имя.

Спасибо, это то, что я в конечном итоге сделал - я назначил статическое сопоставление DHCP для телефона на своем маршрутизаторе, а затем добавил этот IP-адрес на свой локальный DNS-сервер. Решил проблему для меня, но это не обязательно решит ее для других.
Просто в качестве комментария: я часто меняю сети, но я все же хочу, чтобы мои устройства знали адреса друг друга, так что это не общее решение. Было бы лучше, если бы Android поддерживал Zeroconf.
Это решение отлично работает дома... но особенность устройств Android в том, что они, как правило, портативны... и в наши дни компьютеры тоже! :) Я хотел бы иметь возможность легко подключаться с моего ноутбука к телефону в любом месте, когда они находятся в одной сети, независимо от того, контролирую я это или нет. mDNS предоставил решение этой проблемы много лет назад... неужели его все еще невозможно использовать на Android?
@ Джош, первоначальный вопрос был сосредоточен на устройстве, которое должно быть обнаружено в определенной сети, если вам нужно решение, которое будет работать при перемещении между разными сетями (и разными типами сетей), то это другой вопрос. Пожалуйста, задайте свой как новый вопрос и не стесняйтесь ссылаться на этот вопрос, указывая различия в ваших потребностях.

В настоящее время на Android нет демона Avahi, и открытый тикет № 354 на трекере Avahi, где есть прикрепленные исправления, необходимо решить, чтобы сделать сборку для Android возможной.

Вы можете попробовать построить его вручную, если это действительно необходимо.

На Android до сих пор нет демона avahi? :)
Вау, это действительно шокирует и жалко одновременно. Вышеупомянутая ссылка, кстати, не работает, такой страницы нет на трекере Avahi. Это отстой, это грустная и нехорошая инженерия! На самом деле мне придется каждый раз вводить другой IP-адрес, просто потому, что Android слишком тупой, чтобы понять это.