只能在埠 22 上連接到我的 apache Centos 伺服器。可以 SSH 但沒有瀏覽器。執行 DirectAdmin
我有一個執行 Centos7.1 的遠端 apache 伺服器,但我通常在埠 2222 上使用 DirectAdmin 來管理它。這個問題首先是在我的 SSL 證書過期後出現的。我試圖繼續並更新證書。由於我的 ISP 更改了我的 IP 地址,我的防火牆阻止了我,我在連接到埠 22 和 2222 時遇到了一些問題。在某些時候,我重新啟動了伺服器,我認為那時每個人都無法訪問 80 和 443。但據我所知,我沒有對伺服器上的設置進行任何更改。我已嘗試完全關閉我的防火牆,以消除阻止我的任何潛在防火牆問題。
我在伺服器上有 3 個 IP 地址,有 2 個帳戶和幾個不同的網站。通常我可以登錄到埠 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 確認在這些埠上執行的 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 在 TCP 上的 80 埠上監聽,只有 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”應該會給你這個問題的答案。
有各種線上埠掃描器可以掃描開放埠,我建議使用一個來確保您的域處於活動狀態並且正確的埠從外部世界開放。
如果以上所有都是正確的,那就是;
- 埠已打開
- IP 地址已確認
- httpd 正在監聽 TCP & TCP6
認為應該為你工作。