Atvērto portu pārbaude: ss, netstat, nmap, telnet
Atvērtos portus pārbauda no divām pusēm: lokāli — kuri servisi klausās (ss -tulpn, netstat -tulpn), un no ārpuses — kuri reāli ir pieejami caur ugunsmūri (nmap, telnet). Atšķirība ir svarīga: ports serverī var klausīties, bet būt slēgts ugunsmūrī. Zemāk — precīzas komandas abām pārbaudēm.
Lokālā pārbaude: ko klausās serveris
ss — mūsdienīgais rīks
Parādīt visus klausošos TCP un UDP portus ar procesiem:
ss -tulpn
Karodziņu skaidrojums:
| Karodziņš | Nozīme |
|---|---|
-t |
TCP soketi |
-u |
UDP soketi |
-l |
tikai klausošie (listening) |
-p |
parādīt procesu |
-n |
skaitliski porti bez vārdu atpazīšanas |
Atrast, kas aizņēmis konkrētu portu:
ss -tulpn | grep :443
netstat — klasiskais variants
Ja instalēta pakotne net-tools:
netstat -tulpn
Ārējā pārbaude: kas pieejams no ārpuses
Lokālā pārbaude neņem vērā ugunsmūri. Lai uzzinātu, vai ports ir pieejams no interneta, skenējiet serveri no cita resursdatora.
nmap
Pārbaudīt populārāko portu kopu:
nmap 203.0.113.10
Pārbaudīt konkrētu portu:
nmap -p 443 203.0.113.10
Skenēt diapazonu un noteikt servisus:
nmap -p 1-1000 -sV 203.0.113.10
Portu stāvokļi nmap izvadē:
| Stāvoklis | Ko nozīmē |
|---|---|
| open | ports klausās un ir pieejams |
| closed | pieejams, bet neviens neklausās |
| filtered | paketes bloķē ugunsmūris |
telnet — ātra viena porta pārbaude
telnet 203.0.113.10 443
Ja savienojums izveidots, ports ir atvērts. Ja parādās «Connection refused» — ports ir slēgts vai neklausās, bet iestrēgšana parasti nozīmē ugunsmūra bloķēšanu.
Analogs PowerShell vidē bez telnet:
Test-NetConnection -ComputerName 203.0.113.10 -Port 443
Pārbaude ar nc (netcat):
nc -zv 203.0.113.10 443
Kas un kur ir pieslēdzies: aktīvie savienojumi
Bez klausošajiem portiem noderīgi redzēt arī izveidotos savienojumus — piemēram, lai saprastu, kas šobrīd ir pieslēdzies serverim:
ss -tnp state established
Saskaitīt savienojumu skaitu pa katru attālo IP adresi (vienkārša anomāliju kontrole):
ss -tn state established | awk '{print $4}' | cut -d: -f1 | sort | uniq -c | sort -rn
Windows vidē līdzīgu ainu sniedz:
Get-NetTCPConnection -State Established | Sort-Object RemoteAddress
Populāro servisu standarta porti
Diagnostikā noder atcerēties, kuri porti pēc noklusējuma piešķirti kuriem servisiem:
| Ports | Serviss |
|---|---|
| 22 | SSH |
| 80 | HTTP |
| 443 | HTTPS |
| 3306 | MySQL/MariaDB |
| 5432 | PostgreSQL |
| 3389 | RDP |
Ja uz porta klausās nevis tas serviss, kuru gaidījāt, tas ir iemesls pārbaudīt konfigurāciju vai sistēmu uz svešiem procesiem.
Tipiska diagnostikas secība
- Serverī:
ss -tulpn | grep :PORTS— vai serviss klausās? - Ja neklausās, palaidiet vai konfigurējiet servisu.
- Ja klausās, bet no ārpuses nav pieejams, pārbaudiet ugunsmūri (
ufw status,iptables -L). - No ārpuses:
nmap -p PORTS IP— stāvoklisfilterednorāda uz ugunsmūri.
Biežākie jautājumi
ss rāda portu, bet no ārpuses tas nav pieejams — kāpēc?
Serviss klausās, bet ienākošo datu plūsmu griež ugunsmūris. Pārbaudiet ufw status vai iptables noteikumus un atveriet vajadzīgo portu.
Ar ko ss ir labāks par netstat?
ss ir ātrāks un ietilpst aktuālajā iproute2 pakotnē. netstat ir novecojis un bieži nav instalēts pēc noklusējuma.
nmap rāda filtered — ko tas nozīmē? Paketes līdz portam nenonāk ugunsmūra dēļ (serverī vai pakalpojumu sniedzēja tīklā). Ports nav «slēgts», bet filtrēts.
Vai drīkst skenēt svešu serveri? Skenējiet tikai savas sistēmas vai ar īpašnieka skaidru atļauju — citādi tas var pārkāpt noteikumus un likumu.
Kā pārbaudīt portu, neinstalējot nmap?
Izmantojiet telnet IP PORTS, nc -zv IP PORTS vai Test-NetConnection PowerShell vidē.
Nepieciešams serveris ar pilnu kontroli pār portiem un ugunsmūri? Izvietojiet VPS ar Linux sadaļā VPS noma vai pasūtiet serveru administrēšanu.