v1.2.22: 80 в ufw открывается перед выпуском сертификата; точная причина сбоя
This commit is contained in:
@@ -1,3 +1,13 @@
|
|||||||
|
## v1.2.22: 80 в ufw открывается прямо перед выпуском сертификата
|
||||||
|
|
||||||
|
* Настоящая причина сбоя сертификата (проверено на живом сервере): установщик открывает список
|
||||||
|
портов в ufw **позже**, чем пробует выпустить сертификат. На свежем сервере ufw в этот момент
|
||||||
|
разрешает только 22, поэтому проверка Let's Encrypt доходила до сервера и «проглатывалась» —
|
||||||
|
в логе acme `Timeout during connect (likely firewall problem)`. Провайдер тут ни при чём:
|
||||||
|
с настоящим слушателем 80 и 443 отвечают снаружи нормально (проверено в том числе с другого сервера).
|
||||||
|
* Теперь 80/tcp открывается в ufw непосредственно перед `issue_domain_cert`, а формулировка ошибки
|
||||||
|
в установщике исправлена: сначала проверяем ufw, потом хостера.
|
||||||
|
|
||||||
## v1.2.21: порты до выпуска сертификата и понятный блок про SSH-порт
|
## v1.2.21: порты до выпуска сертификата и понятный блок про SSH-порт
|
||||||
|
|
||||||
* **Порты до сертификата.** Установщик теперь сам открывает 80 и 443 в ufw перед работой и прямо
|
* **Порты до сертификата.** Установщик теперь сам открывает 80 и 443 в ufw перед работой и прямо
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
KIT_VERSION="1.2.21" # версия сборки форка; должна совпадать с VERSION релиза
|
KIT_VERSION="1.2.22" # версия сборки форка; должна совпадать с VERSION релиза
|
||||||
GITEA="${KIT_FORK_BASE:-https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS}"
|
GITEA="${KIT_FORK_BASE:-https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS}"
|
||||||
NS="3x-ui-kit-release"
|
NS="3x-ui-kit-release"
|
||||||
SIG_ID="releases@3x-ui-kit"
|
SIG_ID="releases@3x-ui-kit"
|
||||||
@@ -333,8 +333,8 @@ installer_failed() {
|
|||||||
if grep -q "likely firewall problem" /var/log/kit-domain-cert.log 2>/dev/null \
|
if grep -q "likely firewall problem" /var/log/kit-domain-cert.log 2>/dev/null \
|
||||||
|| grep -q "Timeout during connect" /var/log/3x-ui-install.log 2>/dev/null; then
|
|| grep -q "Timeout during connect" /var/log/3x-ui-install.log 2>/dev/null; then
|
||||||
printf '\n%s!%s %s\n' "$Y" "$N" \
|
printf '\n%s!%s %s\n' "$Y" "$N" \
|
||||||
"Похоже, порт 80 закрыт со стороны хостера: Let's Encrypt не смог достучаться до домена." >&2
|
"Let's Encrypt не смог достучаться до порта 80 (в логе acme «Timeout during connect»)." >&2
|
||||||
printf ' В ufw 80 открыт, поэтому смотрите файрвол хостинга (в панели провайдера), а не сервер.\n' >&2
|
printf ' Проверьте по порядку: открыт ли 80 в ufw (скрипт делает это сам) и не режет ли его хостер.\n' >&2
|
||||||
printf ' Либо ставьте без своего домена: в меню маскировки выберите «общедоступный сайт» —\n' >&2
|
printf ' Либо ставьте без своего домена: в меню маскировки выберите «общедоступный сайт» —\n' >&2
|
||||||
printf ' сертификат для домена тогда не нужен, панель останется на самоподписанном.\n' >&2
|
printf ' сертификат для домена тогда не нужен, панель останется на самоподписанном.\n' >&2
|
||||||
fi
|
fi
|
||||||
|
|||||||
+6
-2
@@ -30,7 +30,7 @@ wait_apt_idle() {
|
|||||||
XUI_VERSION="v3.9.0"
|
XUI_VERSION="v3.9.0"
|
||||||
# SHA256 установщика 3X-UI этой версии: тег могут передвинуть, а хеш – нет (проверено 2026-09-30).
|
# SHA256 установщика 3X-UI этой версии: тег могут передвинуть, а хеш – нет (проверено 2026-09-30).
|
||||||
XUI_INSTALL_SHA256="18616fe26c8f6c92db6daa2dcd7cd53c5143ee69ecfd26d8ea6dc9b2c78607a6"
|
XUI_INSTALL_SHA256="18616fe26c8f6c92db6daa2dcd7cd53c5143ee69ecfd26d8ea6dc9b2c78607a6"
|
||||||
KIT_VERSION="1.2.21"
|
KIT_VERSION="1.2.22"
|
||||||
# kit и kit-sub берём из того же релиза, что и этот скрипт, а не из меняющейся ветки main.
|
# kit и kit-sub берём из того же релиза, что и этот скрипт, а не из меняющейся ветки main.
|
||||||
KIT_RAW="https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/tag/v$KIT_VERSION"
|
KIT_RAW="https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/tag/v$KIT_VERSION"
|
||||||
# Ядро Xray для панели. С 26.7.x клиенты на Mihomo и sing-box (Hiddify, FlClash,
|
# Ядро Xray для панели. С 26.7.x клиенты на Mihomo и sing-box (Hiddify, FlClash,
|
||||||
@@ -2160,7 +2160,11 @@ PY
|
|||||||
install -d -m 755 /var/www/kit
|
install -d -m 755 /var/www/kit
|
||||||
[[ -f $tmp/var/www/kit/index.html ]] && install -m 644 "$tmp/var/www/kit/index.html" /var/www/kit/index.html
|
[[ -f $tmp/var/www/kit/index.html ]] && install -m 644 "$tmp/var/www/kit/index.html" /var/www/kit/index.html
|
||||||
if [[ $SINGLE == yes ]]; then
|
if [[ $SINGLE == yes ]]; then
|
||||||
[[ -n $DOMAIN ]] && { issue_domain_cert || die "Не удалось получить сертификат для $DOMAIN: порт 80 должен быть свободен, а A-запись домена указывать на этот сервер. Лог: /var/log/kit-domain-cert.log"; }
|
# Наш шов: открываем 80 в ufw ПРЯМО ПЕРЕД выпуском сертификата. Установщик открывает список портов
|
||||||
|
# позже (после сборки nginx), поэтому на свежем сервере проверка Let's Encrypt доходила до сервера и
|
||||||
|
# «проглатывалась» — в логе acme это «Timeout during connect (likely firewall problem)».
|
||||||
|
command -v ufw >/dev/null 2>&1 && ufw allow 80/tcp >/dev/null 2>&1 || true
|
||||||
|
[[ -n $DOMAIN ]] && { issue_domain_cert || die "Не удалось получить сертификат для $DOMAIN: нужен свободный порт 80, открытый в ufw (и у хостера), и A-запись домена на этот сервер. Лог: /var/log/kit-domain-cert.log"; }
|
||||||
setup_nginx
|
setup_nginx
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
# Код выхода 1 при любом запуске (и при `__update_binary`) – старый `hy2 update` на нём
|
# Код выхода 1 при любом запуске (и при `__update_binary`) – старый `hy2 update` на нём
|
||||||
# останавливается и не заменяет команду hy2.
|
# останавливается и не заменяет команду hy2.
|
||||||
|
|
||||||
KIT_VERSION="1.2.21"
|
KIT_VERSION="1.2.22"
|
||||||
|
|
||||||
cat >&2 <<'MSG'
|
cat >&2 <<'MSG'
|
||||||
Отдельный установщик Hysteria2 больше не поддерживается.
|
Отдельный установщик Hysteria2 больше не поддерживается.
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@
|
|||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
export LC_ALL=C.UTF-8 # ширина колонок по символам, а не байтам
|
export LC_ALL=C.UTF-8 # ширина колонок по символам, а не байтам
|
||||||
|
|
||||||
KIT_VERSION="1.2.21"
|
KIT_VERSION="1.2.22"
|
||||||
KIT_RAW="https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main"
|
KIT_RAW="https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main"
|
||||||
# Файлы новой версии берём из её тега, а не из меняющейся ветки main.
|
# Файлы новой версии берём из её тега, а не из меняющейся ветки main.
|
||||||
kit_ref_raw() { echo "https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/tag/v$1"; }
|
kit_ref_raw() { echo "https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/tag/v$1"; }
|
||||||
|
|||||||
@@ -485,6 +485,13 @@ def main():
|
|||||||
' || die "Это не резервная копия 3X-UI_autoVPS или она повреждена (нет своего сертификата). Ничего не менял."\n',
|
' || die "Это не резервная копия 3X-UI_autoVPS или она повреждена (нет своего сертификата). Ничего не менял."\n',
|
||||||
'авто-шов: replace, строк 1',
|
'авто-шов: replace, строк 1',
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
'scripts/3x-ui.sh',
|
||||||
|
' [[ -n $DOMAIN ]] && { issue_domain_cert || die "Не удалось получить сертификат для $DOMAIN: порт 80 должен быть свободен, а A-запись домена указывать на этот сервер. Лог: /var/log/kit-domain-cert.log"; }\n',
|
||||||
|
False,
|
||||||
|
' # Наш шов: открываем 80 в ufw ПРЯМО ПЕРЕД выпуском сертификата. Установщик открывает список портов\n # позже (после сборки nginx), поэтому на свежем сервере проверка Let\'s Encrypt доходила до сервера и\n # «проглатывалась» — в логе acme это «Timeout during connect (likely firewall problem)».\n command -v ufw >/dev/null 2>&1 && ufw allow 80/tcp >/dev/null 2>&1 || true\n [[ -n $DOMAIN ]] && { issue_domain_cert || die "Не удалось получить сертификат для $DOMAIN: нужен свободный порт 80, открытый в ufw (и у хостера), и A-запись домена на этот сервер. Лог: /var/log/kit-domain-cert.log"; }\n',
|
||||||
|
'авто-шов: replace, строк 1',
|
||||||
|
),
|
||||||
(
|
(
|
||||||
'scripts/hysteria2.sh',
|
'scripts/hysteria2.sh',
|
||||||
'# установку 3X-UI KIT (scripts/3x-ui.sh). Файл оставлен, чтобы старая команда `hy2 update`\n',
|
'# установку 3X-UI KIT (scripts/3x-ui.sh). Файл оставлен, чтобы старая команда `hy2 update`\n',
|
||||||
|
|||||||
Reference in New Issue
Block a user