Problém
Při restartování služby sshd v systému CentOS/RHEL 5/6 jsou protokolovány následující zprávy.
Dec 14 00:15:19 geeklab sshd[9182]: Received signal 15; terminating. Dec 14 00:15:19 geeklab sshd[9274]: Server listening on :: port 22. Dec 14 00:15:19 geeklab sshd[9274]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Řešení
Když jsou současně povoleny oba protokoly IPv6 a IPv4, při spuštění služby sshd se protokol IPv6 nejprve spojí na portu 22 se všemi dostupnými IPv6 IP (::). Takže když se IPv4 IP (0.0.0.0) pokusí navázat na stejný port, systém zaprotokoluje výše uvedenou chybovou zprávu. Je to proto, že tento port již využívají IPv6 IP.
Totéž můžete zkontrolovat také ve výstupu netstat.
# netstat -anp | grep sshd tcp 0 0 :::22 :::* LISTEN 9302/sshd
Chcete-li problém vyřešit, postupujte podle kroků uvedených níže:
1. Upravte konfigurační soubor sshd /etc/ssh/sshd_config a odkomentujte níže uvedený řádek:
# vi /etc/ssh/sshd_config ListenAddress 0.0.0.0
2. Restartujte službu sshd znovu, aby se změny projevily.
# service sshd restart
3. Protokoly podobné níže uvedeným by měly být protokolovány v souboru /var/log/messages.
Dec 14 00:35:23 geeklab sshd[9274]: Received signal 15; terminating. Dec 14 00:35:23 geeklab sshd[9301]: Server listening on 0.0.0.0 port 22.
4. Můžete také zkontrolovat výstup příkazu netstat a ověřit, zda port sshd 22 naslouchá pouze adresám IPv4.
# netstat -anp | grep sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8977/sshd
-
„chyba:Vazba na port 2222 na 0.0.0.0 selhala:Oprávnění odepřeno“ – chyba při spouštění služby sshd na CentOS/RHEL
-
Chyba „mapa se používá“ při odstraňování vícecestného zařízení v CentOS/RHEL
-
Chyba:Adresa se již používá při vázání soketu s adresou, ale číslo portu je zobrazeno jako volné pomocí `netstat`