У меня есть удаленный сервер apache, работающий под управлением Centos7.1, но я обычно использую DirectAdmin на порту 2222 для управления им. Эта проблема впервые возникла после истечения срока действия моего SSL-сертификата. Я попытался войти и обновить сертификаты. У меня возникли проблемы с подключением к портам 22 и 2222 из-за того, что мой брандмауэр блокировал меня, поскольку мой интернет-провайдер изменил мой IP-адрес. В какой-то момент я перезагрузил сервер и, думаю, тогда доступ к 80 и 443 был потерян для всех. Но насколько я могу судить, я не вносил никаких изменений в настройки на сервере. Я попытался полностью отключить свой брандмауэр, чтобы устранить любые потенциальные проблемы с брандмауэром, блокирующие меня.
У меня есть 3 IP-адреса на сервере с двумя учетными записями и несколькими разными веб-сайтами. Обычно я могу войти на порт 2222 для управления сервером, но этот порт недоступен, как и обычные порты 80 и 443 для отображения веб-страниц. Я протестировал, запустив сканирование портов на своем Mac. Доступен только порт SSH 22. Проблема возникает только на этом сервере, я могу подключиться к другим серверам и веб-сайтам.
Пока что я тестировал следующее.
systemctl status httpd - есть некоторые предупреждения, но не критично, были ли они до проблемы
[root@svr ssh]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/etc/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2020-04-13 02:50:04 CEST; 24h ago
Process: 9675 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
Main PID: 1454 (httpd)
Status: "Total requests: 1; Idle/Busy workers 100/0;Requests/sec: 8.82e-05; Bytes served/sec: 0 B/sec"
CGroup: /system.slice/httpd.service
├─ 1454 /usr/sbin/httpd -DFOREGROUND
├─ 9676 /usr/sbin/httpd -DFOREGROUND
└─10031 /usr/sbin/httpd -DFOREGROUND
Apr 13 02:50:04 my.server.name httpd[1454]: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
Apr 13 02:50:04 my.server.name httpd[1454]: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
Apr 13 02:50:04 my.server.name httpd[1454]: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
Apr 13 02:50:04 my.server.name httpd[1454]: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
Apr 13 02:50:04 my.server.name systemd[1]: Started The Apache HTTP Server.
Apr 14 00:11:01 my.server.name httpd[9675]: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
Apr 14 00:11:01 my.server.name httpd[9675]: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
Apr 14 00:11:01 my.server.name httpd[9675]: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
Apr 14 00:11:01 my.server.name httpd[9675]: AH00112: Warning: DocumentRoot [/home/admin/domains/sharedip] does not exist
Apr 14 00:11:01 my.server.name systemd[1]: Reloaded The Apache HTTP Server.
CURL from на сервере подтверждает, что сервер Apache работает на этих портах
[root@svr ssh]# curl localhost:80
<html>Apache is functioning normally</html>
[root@svr ssh]# curl localhost:2222
<html>
<head>
<title>DirectAdmin Login</title>
<meta name="robots" content="noindex,nofollow">
<style>
*{ FONT-SIZE: 8.5pt; FONT-FAMILY: verdana; } b { FONT-WEIGHT: bold; } .listtitle { BACKGROUND: #425984; COLOR: #EEEEEE; white-space: nowrap; border-radius: 3px; box-shadow: 1px 1px 3px #727272; } td.list { BACKGROUND: #EEEEEE; white-space: nowrap; } input { border-radius: 3px; padding-left: 4px; padding-right: 4px; } .inset { border: 1px inset #DDDDDD; } #footer { position: fixed; bottom: 0; width: 100%; padding-bottom: 20px; text-align: center; color: #A1A1A1; } #outofsync { font-weight: bold; color: #990000; }</style>
</head>
Netstat на сервере (заменил первые два числа в IP моих серверов на X в целях безопасности)
[root@svr ssh]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1484/mysqld
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 2665/exim
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1135/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1135/dovecot
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 2665/exim
tcp 0 0 X.X.60.245:53 0.0.0.0:* LISTEN 2726/named
tcp 0 0 X.X.60.243:53 0.0.0.0:* LISTEN 2726/named
tcp 0 0 X.X.2.221:53 0.0.0.0:* LISTEN 2726/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2726/named
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1167/pure-ftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1128/sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 2726/named
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2665/exim
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1135/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1135/dovecot
tcp6 0 0 :::587 :::* LISTEN 2665/exim
tcp6 0 0 :::2222 :::* LISTEN 1151/directadmin
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::80 :::* LISTEN 1454/httpd
tcp6 0 0 :::465 :::* LISTEN 2665/exim
tcp6 0 0 :::21 :::* LISTEN 1167/pure-ftpd
tcp6 0 0 :::22 :::* LISTEN 1128/sshd
tcp6 0 0 ::1:953 :::* LISTEN 2726/named
tcp6 0 0 :::25 :::* LISTEN 2665/exim
tcp6 0 0 :::443 :::* LISTEN 1454/httpd
udp 0 0 X.X.60.245:53 0.0.0.0:* 2726/named
udp 0 0 X.X.60.243:53 0.0.0.0:* 2726/named
udp 0 0 X.X.2.221:53 0.0.0.0:* 2726/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 2726/named
udp 0 0 127.0.0.1:323 0.0.0.0:* 762/chronyd
udp6 0 0 ::1:323 :::* 762/chronyd
ifconfig на сервере
[root@svr ssh]# ifconfig
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet X.X.2.221 netmask 255.255.255.255 broadcast X.X.2.221
inet6 X:X:2a:322::2 prefixlen 64 scopeid 0x0<global>
inet6 X::X:eff:feee:5e6 prefixlen 64 scopeid 0x20<link>
ether X:X:0e:ee:05:e6 txqueuelen 1000 (Ethernet)
RX packets 1321177 bytes 307234082 (293.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 989738 bytes 132392622 (126.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xef000000-ef020000
enp0s31f6:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet X.X.60.243 netmask 255.255.255.248 broadcast X.X.60.247
ether X:X:0e:ee:05:e6 txqueuelen 1000 (Ethernet)
device interrupt 16 memory 0xef000000-ef020000
enp0s31f6:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet X.X.60.245 netmask 255.255.255.248 broadcast X.X.60.247
ether X:X:0e:ee:05:e6 txqueuelen 1000 (Ethernet)
device interrupt 16 memory 0xef000000-ef020000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 229 bytes 22844 (22.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 229 bytes 22844 (22.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Поскольку я новичок, я не могу оставлять комментарии - извините.
Во-первых, я не видел, чтобы httpd прослушивал порт 80 по TCP, только TCP6. Насколько я понимаю, httpd будет отвечать только на адреса IPV6.
Что-то, что вы должны проверить, что в вашем брандмауэре открыты соответствующие порты.
Просмотрите разрешенные в настоящее время порты с помощью следующей команды:
sudo firewall-cmd --list-all --zone=public
Предполагается, что ваша зона по умолчанию является общедоступной.
Через ssh вы можете открывать порты следующим образом:
sudo firewall-cmd --add-port=2222/tcp --zone=public --permanent
sudo firewall-cmd --reload
Службы открываются с помощью аналогичной команды;
sudo firewall-cmd --add-service=http --add-service=https --permanent
sudo firewall-cmd --reload
Убедившись, что брандмауэр разрешает порты или службы, которые вам требуются, вы сможете подключиться.
Вы сказали, что ваш IP-адрес изменился, но не уточнили, изменились ли вы (клиент) или адрес сервера. Если это был сервер, убедитесь, что DNS указывает на правильный адрес. Ответ на этот вопрос должен дать простой "ping youdomainname".
Существуют различные онлайн-сканеры портов, которые могут сканировать открытые порты. Я предлагаю использовать один, чтобы убедиться, что и ваш домен активен, и правильные порты открыты из внешнего мира.
Если все вышеперечисленное верно, то есть:
Считает, что должен работать на вас.