Как открыть или закрыть порт в Iptables
Spisu treści:
- Co to jest port nasłuchiwania
- Sprawdź porty słuchania za pomocą
netstat
- Sprawdź porty słuchania za pomocą
ss
- Sprawdź porty słuchania za pomocą
lsof
- Wniosek
Podczas rozwiązywania problemów z łącznością sieciową lub problemami specyficznymi dla aplikacji jedną z pierwszych rzeczy do sprawdzenia powinno być, które porty są aktualnie używane w systemie i która aplikacja nasłuchuje na określonym porcie.
W tym artykule wyjaśniono, jak dowiedzieć się, które usługi nasłuchują na których portach za pomocą poleceń
netstat
,
ss
i
lsof
. Instrukcje dotyczą wszystkich systemów operacyjnych Linux i Unix, takich jak macOS.
Co to jest port nasłuchiwania
Port sieciowy jest identyfikowany przez jego numer, powiązany adres IP i typ protokołu komunikacyjnego, takiego jak TCP lub UDP.
Port nasłuchiwania to port sieciowy, na którym nasłuchuje aplikacja lub proces, działający jako punkt końcowy komunikacji.
Każdy port nasłuchujący może być otwarty lub zamknięty (przefiltrowany) za pomocą zapory ogniowej. Ogólnie rzecz biorąc, port otwarty to port sieciowy, który przyjmuje pakiety przychodzące ze zdalnych lokalizacji.
Nie możesz mieć dwóch usług nasłuchujących na tym samym porcie na tym samym adresie IP.
Na przykład, jeśli korzystasz z serwera WWW Apache, który nasłuchuje na portach
80
i
443
i próbujesz zainstalować Nginx, późniejsze uruchomienie się nie powiedzie, ponieważ porty HTTP i HTTPS są już w użyciu.
Sprawdź porty słuchania za pomocą
netstat
netstat
to narzędzie wiersza polecenia, które może dostarczyć informacji o połączeniach sieciowych.
Aby wyświetlić listę wszystkich portów TCP lub UDP, które są nasłuchiwane, w tym usługi korzystające z portów i stanu gniazda, użyj następującej komendy:
sudo netstat -tunlp
Opcje użyte w tym poleceniu mają następujące znaczenie:
-
-t
- Pokazuje porty TCP.-u
- Pokaż porty UDP.-n
- Pokazuje adresy numeryczne zamiast rozpoznawania hostów.-l
- Pokaż tylko porty nasłuchujące.-p
- Pokazuje PID i nazwę procesu nasłuchującego. Informacje te są wyświetlane tylko wtedy, gdy uruchomisz polecenie jako użytkownik root lub sudo.
Dane wyjściowe będą wyglądać mniej więcej tak:
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 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient
Ważnymi kolumnami w naszym przypadku są:
-
Proto
- protokół używany przez gniazdo.Local Address
-Local Address
IP i numer portu, na którym nasłuchuje proces.PID/Program name
- PID i nazwa procesu.
sudo netstat -tnlp | grep:22
Dane wyjściowe pokazują, że na tym komputerze port 22 jest używany przez serwer SSH:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd
Jeśli wyjście jest puste, oznacza to, że nic nie nasłuchuje na porcie.
Możesz także filtrować listę na podstawie kryteriów, na przykład PID, protokołu, stanu itd.
netstat
jest przestarzały i zastąpiony przez
ss
i
ip
, ale nadal jest jednym z najczęściej używanych poleceń do sprawdzania połączeń sieciowych.
Sprawdź porty słuchania za pomocą
ss
ss
to nowy
netstat
. Brakuje niektórych funkcji
netstat
ale ujawnia więcej stanów TCP i jest nieco szybszy. Opcje poleceń są w większości takie same, więc przejście z
netstat
do
ss
nie jest trudne.
Aby uzyskać listę wszystkich nasłuchujących portów z
ss
, wpisz:
sudo ss -tunlp
Wynik jest prawie taki sam jak raportowany przez
netstat
:
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))
Sprawdź porty słuchania za pomocą
lsof
lsof
to potężne narzędzie wiersza polecenia, które dostarcza informacji o plikach otwieranych przez procesy.
W Linuksie wszystko jest plikiem. Możesz myśleć o gnieździe jak o pliku, który zapisuje w sieci.
Aby uzyskać listę wszystkich nasłuchujących portów TCP typu
lsof
:
sudo lsof -nP -iTCP -sTCP:LISTEN
Dostępne opcje są następujące:
-
-n
- Nie konwertuj numerów portów na nazwy portów.-p
- Nie tłumacz nazw hostów, pokaż adresy numeryczne.-iTCP -sTCP:LISTEN
- pokazuje tylko pliki sieciowe ze stanem TCP LISTEN.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)
Większość nazw kolumn wyjściowych jest oczywista:
-
COMMAND
,PID
,USER
- nazwa, pid i użytkownik uruchamiający program powiązany z portem.NAME
- numer portu.
Aby znaleźć proces nasłuchujący na określonym porcie, na przykład na porcie
3306
, należy użyć:
sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
Dane wyjściowe pokazują, że port
3306
jest używany przez serwer MySQL:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)
Aby uzyskać więcej informacji, odwiedź stronę podręcznika lsof i przeczytaj o wszystkich innych potężnych opcjach tego narzędzia.
Wniosek
Pokazaliśmy kilka poleceń, których możesz użyć, aby sprawdzić, które porty są używane w twoim systemie i jak znaleźć proces nasłuchujący na określonym porcie.
terminalJak sprawdzić lub sprawdzić, gdzie link lub adres URL przekierowuje do
Te bezpłatne narzędzia online pomagają znaleźć, czy adres URL, który Cię przekierowuje chcesz sprawdzić idzie do wybranego miejsca docelowego, czy nie. Znajdź miejsce, do którego przekierowuje dany URL lub link.
Jak sprawdzić stan dysku twardego w systemie Windows 10/8/7 przy użyciu aplikacji WMIc
Można użyć dysku twardego Oprogramowanie Checker & Analyzer lub wbudowane narzędzie WMIC sprawdzają stan dysku twardego za pomocą polecenia DiskDrive Get Status.
Jak sprawdzić (skanować) otwarte porty w systemie Linux
W tym artykule opisano kilka podejść, aby dowiedzieć się, które porty są otwarte na zewnątrz w systemie Linux.