Недавно я установил ZNC на Fedora 22 VPS, которую я беру в аренду в образовательных целях, чтобы улучшить свои навыки и знания в Linux. Одна вещь, которую я пытаюсь сделать, это настроить небольшой IRC-батутер на этом VPS, используя ZNC. Я хочу использовать конкретный поддомен для всех частей моего сервера, связанных с ZNC, но после прочтения документации я все еще не понимаю, как мне связать ZNC с конкретным поддоменом по сравнению с корневым доменом домена. сервер (то есть znc.example.com против example.com).

Как бы я поступил так? Я чувствую, что опция BindHosts связана, но мне трудно понять ее назначение.

1 ответ1

2

Да, опция BindHost используется. (Термин "связывание" происходит от API сокетов Беркли, который программы используют для установления сетевых соединений. Когда программа хочет использовать определенный адрес, будь то для подключения или для принятия подключений, она использует функцию bind(…) .)

Что приводит к важному:

  • Программы не подключаются и не привязываются к доменным именам; для этого они используют только IP-адреса .

    Фактическое доменное имя отправляется только после установления соединения с сервисом.

    (Например, веб - браузеры отправить «Host:» заголовок как часть запроса HTTP Но клиенты SSH не посылают доменное имя на всех.. Как и клиенты IRC, как правило.)


Итак, ответ:

Сначала вам нужно получить второй IP-адрес для вашего сервера, затем сказать ZNC - используя опцию BindHost - связать с этим новым адресом (вместо "all"), и, наконец, указать ваш поддомен znc на этот новый адрес.

Будьте осторожны, используя правильную опцию - ZNC имеет две отдельные опции "связать хост", одну для приема входящих соединений (от вас) и одну для установления исходящих соединений (с серверами IRC).

И да, вы можете увидеть людей, использующих доменное имя с BindHost. Однако это всего лишь удобная уловка - ZNC просто переведет указанное имя в адрес и все равно будет привязываться только к этому IP-адресу, а не к имени.


Через несколько лет может быть другой ответ:

Хотя ни TCP, ни IRC не знают о "доменных именах", они часто используются с другим протоколом, который делает это - TLS, или SSL.

При использовании HTTPS (HTTP/TLS) все современные веб-браузеры отправляют доменное имя также по TLS, в поле "указание имени сервера", поэтому веб-сервер может принять решение гораздо раньше.

Будучи частью TLS, это не ограничивается HTTPS - я уже видел почтовые клиенты и серверы, использующие SNI. Некоторые клиенты IRC, такие как Irssi, также добавили поддержку SNI. Существуют также такие программы, как stunnel которые могут маршрутизировать соединения через один и тот же порт TCP с различными программами на основе имени домена SNI.

Это означает , что в ближайшем будущем вы будете иметь возможность "привязать" к ZnC только одно доменное имя, без необходимости нового IP - адреса. Но только после того, как все ваши IRC-клиенты получат поддержку TLS SNI.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .