Eroare ssh – legătura la portul 22 a eșuat: Adresa este deja utilizată (Administrarea sistemului, Ssh)

Roger Templeton a intrebat.
a intrebat.

Încerc să-mi pornesc propriul server web. Am instalat o copie proaspătă a serverului Ubuntu și openSSH.

Pot să intru în server prin SSH folosind IP-ul intern (192.168.1.12), dar nu pot să-l accesez prin intermediul adresei mele IP externe. Am configurat redirecționarea porturilor, dar tot primesc „connection refused” de la putty.

Un lucru pe care l-am observat este că, dacă mă conectez la serverul meu web și scriu sudo /usr/sbin/sshd -d primesc următoarele erori:

debug1: Bind to port 22 pm 0.0.0.0
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Bind to port 22 on ::.
Bind to port 22 on :: failed: Address already in use.

Presupun că aceasta este cauza problemelor mele în încercarea de a încerca să folosesc ssh folosind adresa mea externă? Am încercat să dezactivez ipv6, dar numai una dintre erori este rezolvată atunci când fac acest lucru

EDIT:netstat -tan | grep LIST dă următorul rezultat

tcp    0    0 0.0.0.0:22      0.0.0.0:*      LISTEN
tcp6   0    0 :::22           :::*           LISTEN

netstat -tulpn

Proto Recv-Q  Send-Q   Local Address       Foreign Address      State    PID/Program name
tcp     0       0      0.0.0.0:22            0.0.0.0:*          LISTEN     620/sshd
tcp6    0       0      :::22                 :::*               LISTEN     620/sshd
udp     0       0      0.0.0.0:68            0.0.0.0:*                     604/dhclient3

Comentarii

  • Cum arată socket-ul de ascultare? Găsiți-l în netstat. –  > Por David Schwartz.
  • aveți deja ceva care rulează pe portul 22. Aflați care serviciu cu „netstat -tulpn” . Presupun că folosești o distribuție cu aromă de linux ! –  > Por kaji.
  • răspuns actualizat. Folosesc un server Ubuntu –  > Por Roger Templeton.
  • ip addr Nu ați specificat cum este configurată „adresa externă”, în afară de a spune că ați configurat redirecționarea porturilor, ceea ce ar putea însemna mai multe lucruri. –  > Por dmourati.
  • Tu deja aveți deja sshd în funcțiune. Funcționează perfect, după cum reiese din faptul că poate ssh direct la 192.168.1.12 și rezultatele pentru netstat. Cel mai probabil, ceea ce se întâmplă este că redirecționarea porturilor de la routerul dvs. fie nu funcționează/nu este configurată corect. Care este adresa ta IP publică? (ok, poate nu ne spuneți asta :-). Serverul dvs. intern are doar o singură adresă IP? Sau are două, una în DMZ și una internă? Dacă există un IP DMZ, asigurați-vă că SSHD conf se leagă și la acel IP (ar trebui să fie implicit pentru toate IP-urile). –  > Por SuperMagic.
2 răspunsuri
Josh Atkins

sshd rulează deja, după cum reiese din netstat. De asemenea, este legat la toate IP-urile (0.0.0.0.0 în netstat), deci nu ar trebui să fie nicio problemă acolo.

Aveți un firewall pe router? Este posibil să aveți portul de redirecționare activat, dar este posibil ca un firewall să întrerupă totuși 22. De asemenea, este posibil ca ISP-ul dvs. să blocheze 22 înainte ca acesta să ajungă la dvs. De asemenea, aș face un iptables -F (renunță la toate regulile iptables) pentru a fi sigur; acestea se vor întoarce la o repornire (sau le puteți restabili folosind iptables-restore).

Puteți confirma că sshd nu refuză conexiunile verificând /var/log/auth.log pentru conexiunile refuzate.

Dacă ați confirmat că nu aveți conexiuni refuzate în jurnalele dvs. și că nu există un firewall pe router, atunci v-aș sugera să schimbați SSH pentru a utiliza un alt port decât 22 (un port înalt aleatoriu > 1024). Puteți face acest lucru prin editarea /etc/ssh/ssh_config și schimbând „Port 22” cu ceva mai mare.

EDIT: Actualizare din comentarii pentru a salva o lectură; ar trebui, de asemenea, să încercați să verificați de la un IP din afara rețelei dvs. în circumstanțe ca aceasta. În acest caz, ISP-ul bloca portul 22, iar conectarea la un port ridicat pe plan intern (specificând IP-ul extern) nu a funcționat, probabil din cauza lipsei de NAT cu ac de păr.

Comentarii

  • Sunt de acord. Nu sshd-ul este problema. Verificați firewall-ul, port forward și ISP-ul dumneavoastră. –  > Por jkj.
  • Bună ziua, mulțumesc pentru răspuns. Routerul meu are un firewall și tocmai am încercat să-l dezactivez, dar fără succes. De asemenea, am verificat jurnalul și nu există nimic acolo despre refuzul conexiunilor. Am încercat și să folosesc portul 46000 dar tot am aceeași problemă. Presupun că acest lucru ar fi rezolvat situația dacă ISP-ul meu bloca 22. Probabil că nu redirecționez portul corect, deoarece am rulat un verificator de porturi pe serverul meu și acesta confirmă că portul 46000 nu este deschis. –  > Por Roger Templeton.
  • Dacă folosesc aceeași metodă de redirecționare a portului ca și în cazul deskop-ului și al utorrent-ului meu, atunci ar trebui să funcționeze corect. –  > Por Roger Templeton.
  • Aveți dreptate că trecerea la portul 46000 ar trebui să ocolească orice restricție a ISP-ului; ați reușit să confirmați că sshd a preluat modificarea portului pe netstat? Pare probabil că redirecționați corect portul dacă funcționează pentru alte servicii de pe alte gazde. Poate verificatorul de porturi să confirme cu succes că celelalte servicii sunt redirecționate? –  > Por Josh Atkins.
  • Cred că pot confirma că modificarea portului a fost efectuată cu succes. Încă pot accesa serverul meu folosind IP-ul 192.168.1.12 cu portul 46000. Trebuie să-mi cer scuze, verificatorul de porturi spune acum că 46000 este deschis și pare a fi de încredere –  > Por Roger Templeton.
kaji

Adresă deja utilizată înseamnă, de obicei, că un serviciu rulează deja în portul în cauză, de exemplu, 22 ? ați verificat serviciile de ascultare ? puteți face un dump ?

netstat -tan | grep LIST

Comentarii

  • Aceasta este o alternativă excelentă la lsof -i. Mulțumesc! –  > Por atripes.

Tags: