Linux Terminal 101: Netcat
Tartalomjegyzék:
- Netcat szintaxis
- Port szkennelés
- Fájlok küldése a Netcat-en keresztül
- Egyszerű csevegőszerver létrehozása
- HTTP kérés végrehajtása
- Következtetés
A Netcat (vagy nc) egy olyan parancssori segédprogram, amely a TCP vagy az UDP protokollok segítségével olvassa és írja az adatokat a hálózati kapcsolatokon keresztül. Ez a hálózat és a rendszergazdák arzenáljának egyik legerőteljesebb eszköze, és a svájci hadsereg hálózati eszközének tekintik.
A Netcat platformközi, és elérhető Linux, macOS, Windows és BSD számára. A Netcat segítségével megkeresheti és megfigyelheti a hálózati kapcsolatokat, megkeresheti a nyitott portokat, továbbíthatja az adatokat proxyként és így tovább. A Netcat csomag előre telepítve van a macOS és a népszerű Linux disztribúciókhoz, például az Ubuntu.
Netcat szintaxis
A Netcat segédprogram legalapvetõbb szintaxisa a következõ:
nc host port
Az Ubuntu rendszeren
netcat
vagy
nc
is használható. Mindketten hivatkoznak a Netcat OpenBSD verziójára.
Alapértelmezés szerint a Netcat megpróbálja TCP kapcsolatot indítani a megadott gazdagéphez és porthoz. Ha UDP kapcsolatot szeretne létrehozni, használja a
-u
opciót:
Port szkennelés
A portok szkennelése az egyik leggyakoribb alkalmazás a Netcat számára. Szkennelhet egyetlen portot vagy egy porttartományt.
Például a 20–80 tartományban lévő nyitott portok keresésére a következő parancsot használja:
nc -z -v 10.10.8.8 20-80
A
-z
opció megmondja az
nc
hogy csak a nyitott portokat keresse meg anélkül, hogy rájuk
-v
adatokat, és a
-v
opció további bővebb információt szolgáltatna.
A kimenet így néz ki:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
A Netcat segítségével a kiszolgálószoftvert és annak verzióját is megtalálhatja. Például, ha “EXIT” parancsot küld az alapértelmezett SSH port 22 kiszolgálójára:
echo "EXIT" | nc 10.10.8.8 22
A kimenet így néz ki:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.
UDP-portok kereséséhez egyszerűen adja hozzá a
-u
beállítást a parancshoz, az alább látható módon:
nc -z -v -u 10.10.8.8 20-80
A legtöbb helyzetben az Nmap jobb eszköz, mint a Netcat, a bonyolult portok szkenneléséhez.
Fájlok küldése a Netcat-en keresztül
A Netcat felhasználható adatátvitelre egyik gazdagépről a másikra egy alapvető kliens / szerver modell létrehozásával.
Ez úgy működik, hogy beállítja a Netcat-ot, hogy hallgasson egy adott porton (az
-l
opcióval) a fogadó gazdagépen, majd létrehozzon egy szokásos TCP kapcsolatot a másik gazdagépről, és elküldje a fájlt rajta.
A fogadó futtatáskor a következő parancs nyitja meg az 5555 portot a bejövő kapcsolatokhoz és átirányítja a kimenetet a fájlba:
nc -l 5555 > file_name
A küldő gazdagépről csatlakoztassa a fogadó gazdagépet, és küldje el a fájlt:
nc receiving.host.com 5555 < file_name
A könyvtár átviteléhez a tar segítségével archiválhatja a könyvtárat a forrásgépen, és kibonthatja az archívumot a célgazdagépen.
A fogadó gazdagépen állítsa be a Netcat eszközt, hogy figyeljen a bejövő kapcsolatokra az 5555 porton. A bejövő adatokat a tar parancsba továbbítják, amely kinyomtatja az archívumot:
nc -l 5555 | tar xzvf -
A küldő gazdagépen csomagolja a könyvtárat, és küldje el az adatokat úgy, hogy csatlakozik a fogadó gazdagép
nc
hallgatási folyamatához:
tar czvf - /path/to/dir | nc receiving.host.com 5555
A transzfer előrehaladását mindkét végén megnézheti. Ha kész, írja be a
CTRL+C
billentyűt a kapcsolat bezárásához.
Egyszerű csevegőszerver létrehozása
Két vagy több gazdagép közötti online csevegés létrehozásának folyamata ugyanaz, mint a fájlok átvitelekor.
Az első gazdagépen indítsa el a Netcat folyamatot az 5555-ös porton való meghallgatáshoz:
nc -l 5555
A második gazdagépről futtassa a következő parancsot a csatlakozáshoz a figyelő porthoz:
nc first.host.com 5555
Ha beír egy üzenetet, és megnyomja az
ENTER
, akkor az mindkét gazdagépen megjelenik.
A kapcsolat bezárásához írja be a
CTRL+C
.
HTTP kérés végrehajtása
Noha vannak sokkal jobb eszközök a HTTP kérésekhez, mint például a curl, a Netcat segítségével különféle kéréseket is küldhet a távoli szerverekre.
Például, ha le szeretné tölteni a Netcat man oldalt az OpenBSD webhelyről, írja be:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
A teljes válasz, amely tartalmazza a HTTP fejléceket és a HTML kódot, a terminálon kerül kinyomtatásra.
Következtetés
Ebben az oktatóanyagban megtanulta, hogyan lehet a Netcat segédprogramot létrehozni és tesztelni a TCP és UDP kapcsolatokat.
További információkért keresse fel a Netcat man oldalt, és olvassa el a Netcat parancs összes többi hatékony opcióját.
netcat terminálDocker futtatási parancs példákkal
A dokkoló futtatás parancs létrehoz egy tárolót egy adott képből, és egy parancs használatával elindítja a tárolót. Ez az egyik első parancs, amelyet meg kell ismernie, amikor elkezdi dolgozni a Dockerrel.
Echo parancs linuxban példákkal
Az echo parancs a Linux egyik legalapvetőbb és leggyakrabban használt parancsa. A visszhanghoz átadott argumentumok a standard kimenetre kerülnek.
Curl parancs a linuxban példákkal
A Curl parancssori segédprogram az adatok továbbítására egy kiszolgálóra vagy egy olyan kiszolgálóra, amely felhasználói beavatkozás nélkül működik. Ebben az oktatóanyagban megmutatjuk, hogyan kell használni a göndör eszközt gyakorlati példák és a leggyakoribb göndör beállítások részletes magyarázata révén.