Недавно я перенес свою серверную ОС с CentOS 7 на поток CentOS 8 со стандартными вариантами установки. Теперь я столкнулся с ошибкой при доступе к серверу HTTP / S.
Предположим, вы используете http-сервер на порте 80 или 443. Например, используя модуль python http.server
:
$> sudo python3 -m http.server -b xxx.xxx.xxx.xxx 80[or 443]
Здесь xxx.xxx.xxx.xxx представляет собой общедоступный IP-адрес, а http.server
можно заменить любым веб-сервером, таким как Apache, Nginx или контейнер Podman.
Чтобы избежать влияния брандмауэра, я отключил firewalld.service
с помощью:
$> sudo systemctl stop firewalld.service
Кроме того, перед запуском http-сервера я подтвердил, что ни один другой процесс не прослушивает порт 80 или 443:
$> netstat -lnt | grep 80[or 443]
$> # nothing returned
Итак, обычно, когда кто-то обращается к этому серверу, например, используя:
curl xxx.xxx.xxx.xxx
На него следует ответить некоторым контентом с работающего сервера, например папки и файлы в текущем каталоге.
Но в моем случае эта команда возвращает страница 404 не найдена на порту 80 и Клиент отправил HTTP-запрос на HTTPS-сервер на порт 443 в виде обычного текста, соответственно. Эта ошибка возникает только на портах 80 и 443 с общедоступным IP-доступом, это означает, что работает следующее действие.
$> curl localhost
Фактически, не имеет значения, есть ли запущенный http-сервер. Кажется, есть невидимый HTTP-сервер, работающий с более высоким приоритетом.
Я много пытался справиться с этой ошибкой и обнаружил, что при изменении статуса firewalld.service
, например остановки / запуска / перезапуска firewalld.service
, будет короткое время (около 10 секунд) для доступа к работающему серверу в обычном режиме после изменения.
Все запущенные службы перечислены ниже:
liuchang@xenonpy ~ ❯❯❯ systemctl --type=service --state=running
UNIT LOAD ACTIVE SUB DESCRIPTION
accounts-daemon.service loaded active running Accounts Service
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
chronyd.service loaded active running NTP client/server
colord.service loaded active running Manage, Install and Generate Color Profiles
crond.service loaded active running Command Scheduler
cups.service loaded active running CUPS Scheduler
dbus.service loaded active running D-Bus System Message Bus
firewalld.service loaded active running firewalld - dynamic firewall daemon
gdm.service loaded active running GNOME Display Manager
gssproxy.service loaded active running GSSAPI Proxy Daemon
irqbalance.service loaded active running irqbalance daemon
k3s.service loaded active running Lightweight Kubernetes
ksmtuned.service loaded active running Kernel Samepage Merging (KSM) Tuning Daemon
libstoragemgmt.service loaded active running libstoragemgmt plug-in server daemon
mcelog.service loaded active running Machine Check Exception Logging Daemon
ModemManager.service loaded active running Modem Manager
NetworkManager.service loaded active running Network Manager
packagekit.service loaded active running PackageKit Daemon
polkit.service loaded active running Authorization Manager
rdma-ndd.service loaded active running RDMA Node Description Daemon
rhsmcertd.service loaded active running Enable periodic update of entitlement certificates.
rngd.service loaded active running Hardware RNG Entropy Gatherer Daemon
rpcbind.service loaded active running RPC Bind
rsyslog.service loaded active running System Logging Service
rtkit-daemon.service loaded active running RealtimeKit Scheduling Policy Service
smartd.service loaded active running Self Monitoring and Reporting Technology (SMART) Daemon
sshd.service loaded active running OpenSSH server daemon
sssd.service loaded active running System Security Services Daemon
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-machined.service loaded active running Virtual Machine and Container Registration Service
systemd-udevd.service loaded active running udev Kernel Device Manager
tuned.service loaded active running Dynamic System Tuning Daemon
udisks2.service loaded active running Disk Manager
upower.service loaded active running Daemon for power management
[email protected] loaded active running User Manager for UID 1000
[email protected] loaded active running User Manager for UID 42
wpa_supplicant.service loaded active running WPA supplicant
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
40 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
Я понятия не имею об этом и надеюсь, что кто-то может мне помочь. Заранее спасибо!