Рейтинг:4

возможно ли псевдоним номера порта?

флаг us

Я хочу запустить службу на пользовательском порту (например, jenkins на 8080), и я предпочитаю получать к ней доступ через браузер с именем, которое я могу запомнить, например. http://локальный: Дженкинс который будет псевдонимом для http://локальный:8080

  1. Возможно ли такое?
  2. Если да, то будет ли это только HTTP или все сетевые протоколы будут знать об этом псевдониме?
  3. Кроме того, если верно (1), поддерживается ли эта функция в других ОС (centos, windows и т. д.)

Редактировать:

  1. Каковы движущиеся части с момента ввода адреса до его разрешения? Я предполагаю, что парсеры браузера, и поэтому может быть браузер, который поддерживает мой запрос. После этого проанализированный URL-адрес, вероятно, передается процессу ОС, который, в свою очередь, также может реализовать мой запрос и принять str вместо int... Можно ли настроить какую-либо из этих частей таким образом, чтобы она отвечала моей потребности?
TooTea avatar
флаг cn
Где это нужно для работы? Только на нескольких машинах под вашим контролем? (Является ли «localhost» просто примером, или это действительно относится только к одной машине?)
флаг cn
WoJ
Если вы решите использовать прокси, следуя другим ответам, попробуйте Caddy (https://caddyserver.com/), что делает это очень простым.
Aaron F avatar
флаг cn
Вы можете попробовать [добавить собственный обработчик протокола](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler#example). Это может не сработать для вашего варианта использования, но это то, что вы можете легко опробовать за пару минут.
chrylis -cautiouslyoptimistic- avatar
флаг er
Здесь важна концепция _хорошо известных портов_.
Рейтинг:7
флаг vn

Это можно решить с помощью «обратного проксирования» — так что немного изучите эту область.

Он не может сделать то, что вы на самом деле просите (псевдоним номера порта), но он может дать вам другой способ сделать простой путь для каждой службы (путем пересылки записей DNS на определенный IP-адрес и порт).

В основном то, что вы может делать с обратным прокси-сервером:

  • Убедитесь, что все ваши сайты имеют SSL-сертификат, и (если хотите) HTTPS в таком случае
  • карта http://локальный:8080 к https://jenkins.local (порт вперед)
  • карта http://локальный/дженкинс к https://jenkins.local (расположение вперед)

Вышеприведенное работает как с внутренним, так и с внешним разрешением DNS.

я лично использую Nginx прокси-менеджер, но Траефик также популярный выбор.

Чтобы понять, что нужно настраивать, Nginx Proxy Manager выглядит так:

введите описание изображения здесь

флаг cn
WoJ
Использование HTTPS не является обязательным условием для обратного проксирования. Хотя, вероятно, это хорошая идея (по ряду причин, одной из которых является безопасность, но YMMV)
Artur Meinild avatar
флаг vn
Согласен - но я не думаю, что когда-либо говорил, что это обязательное условие - я привел это как пример того, что вы можете сделать. Тем не менее, я действительно не вижу причин в 2021 году не использовать HTTPS, когда это возможно, поэтому вы можете сказать, что я предполагаю, что большинство людей хотят его использовать.
флаг cn
WoJ
Что ж, в вашем первом пункте говорится «обеспечить» и «принудить». В любом случае, решение использовать или не использовать HTTPS остается за администратором, я просто хотел подчеркнуть, что это не то, что вы должны делать. Есть много случаев, когда проще (и все же безопасно) использовать HTTP.
флаг mx
Просто для ясности, поскольку это неочевидно, не читая другие ответы: на самом деле это не делает * совсем * то, что спросил спрашивающий (что должно было использовать символическое имя для номера порта), но на самом деле это невозможно, и это *самая близкая* вещь, которая работает и решает основную проблему.
Artur Meinild avatar
флаг vn
Я согласен. Я пытался дать решение основной проблемы, как говорится в ОП: «... и я предпочитаю получать к нему доступ через браузер с именем, которое я могу вспомнить». Я отредактировал свой ответ, чтобы отразить это.
Рейтинг:4
флаг ng

Из РФС 1738 https://datatracker.ietf.org/doc/html/rfc1738#section-3.1

порт в URL - это число

порт

    Номер порта для подключения. Большинство схем обозначают
    протоколы, которые имеют номер порта по умолчанию. Другой номер порта
    может опционально поставляться в десятичном виде, отделенном от
    хост через двоеточие. Если порт опущен, двоеточие тоже.
Рейтинг:3
флаг us

Возможно использование таких решений, как Nginx, Apache, squid, lighthttpd и др. Обратите внимание, что они сопоставят ваш порт с любым именем, которое вы дадите, но это будет что-то независимое от внутреннего локального хоста. Вы можете использовать это программное обеспечение в Linux и оконных системах.

Вот пример апача.

Слушайте IP_ADDR:80
NameVirtualHost IP_ADDR:80

<Виртуальный хост IP_ADDR:80>
  ИмяСервера вашеимя.вашдомен

  Проксипасс / http://localhost:10000/
  ProxyPassReverse/http://localhost:10000/

</ виртуальный хост>

Другое решение, если вы хотите сохранить запоминаемость серверов, состоит в том, чтобы предоставить Jenkins другой IP-адрес, запустив его на другом сервере, а затем сопоставив его в /и т.д./хосты как 192.168.1.1 Дженкинс (Вы в основном добавляете это в файл). После этого скажем, что ваш Jenkins работает. 192.168.1.1:3000 вы можете получить к нему доступ по http://Дженкинс:3000.

Даже если вы это сделаете, все сетевые протоколы не будут работать, вы не сможете получить доступ к Jenkins, используя https://Дженкинс:3000.

Надеюсь это поможет!!

CIsForCookies avatar
флаг us
У меня уже есть псевдонимы IP, использующие `etc/hosts`, поэтому я надеялся на такое же решение и для портов :) Спасибо!
Guntram Blohm avatar
флаг cn
Существует /etc/services, но браузеры обычно его не используют, а даже если бы и использовали, вам нужно было бы реализовать его на клиенте, а не на сервере.
Рейтинг:0
флаг na

Вероятно, самым простым решением является использование перенаправить для перенаправления портов, например. бег редирек: 80 127.0.0.1:8080, а еще лучше положить его в свой inetd.conf. Если вам не нравится, что трафик бесполезно проходит через другой процесс, того же можно добиться с помощью iptables пересылка (но это больше хлопот).

Верным способом создания псевдонима было бы использование SRV-запись на вашем DNS-сервере, и это будет хорошо работать без накладных расходов, но из-за истории, Записи SRV игнорируются для протокола http/https.

флаг cn
Вероятно, у него уже есть что-то еще, работающее на порту 80, иначе ему не нужно было бы использовать для этого 8080.
Radovan Garabík avatar
флаг na
@ Бармар, кто знает ... Я думаю, скорее всего, это какая-то веб-инфраструктура, которую он запускает под учетной записью без полномочий root. Но даже в этом случае эта настройка все еще возможна, если у него есть несколько доступных интерфейсов (с отдельными IP-адресами).
флаг cn
на самом деле вы не отвечаете на вопрос, вы говорите, что им вообще не нужно использовать порт 8080. Вопрос только в том, чтобы использовать имя вместо номера для порта.
Radovan Garabík avatar
флаг na
@ Бармар, ты прав ... Я неправильно понял двоеточие как точку. В этом случае я боюсь, что нет серверного решения для требования OP (без обратного прокси-сервера и т. д.).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.