
W tym artykule wyjaśniam, jak przesyłać pliki między dwoma komputerami z systemem Linux za pomocą poleceń nc i pv. nc oznaczający Netcat jest narzędziem sieciowym używanym do debugowania i badania sieci, a także służy do tworzenia połączeń sieciowych za pomocą TCP lub UDP, skanowania portów, przesyłania plików i nie tylko. Został stworzony jako niezawodny back-end i jest specjalnie używany w programach i skryptach, ponieważ może generować prawie każdy rodzaj połączenia sieciowego i ma on wiele wbudowanych funkcji.
pv w skrócie Pipe Viewer to oparte na terminalu narzędzie do monitorowania postępu przesyłania danych, pozwala użytkownikowi zobaczyć postęp danych za pomocą paska postępu, pokazuje upływ czasu, procent ukończenia, bieżącą przepustowość, łączną liczbę przesłanych danych i szacowany czas zakończenia procesu.
Przejdźmy teraz dalej i zobaczmy, jak możemy połączyć oba polecenia, aby przesłać pliki między dwoma komputerami z systemem Linux, na potrzeby tego artykułu będziemy używać dwóch komputerów z systemem Linux w następujący sposób:
Maszyna A z adresem IP: 192.168.0.2 Maszyna B z IP: 192.168.0.3
Uwaga: zdecydowanie odradzam używanie netcata do wysyłania i odbierania danych przez sieć publiczną, ponieważ nie używa on uwierzytelniania, jedynym wymaganiem jest adres IP klienta i numer portu nasłuchiwania, a dane przesyłane przez sieć nie są zabezpieczone, w związku z tym zawsze był zarezerwowany dla zaawansowanych użytkowników Linuksa i preferowany był w chronionej sieci lokalnej.
Sytuacje, w których bezpieczeństwo danych jest ważniejsze, zawsze używaj rsync przez SSH lub scp przez SSH .
Teraz zacznijmy od naprawdę łatwego przykładu poleceń nc i pv , ale zanim to zrobisz, oba narzędzia muszą zostać zainstalowane w systemie, zainstaluj je za pomocą odpowiedniego narzędzia menedżera pakietów dystrybucyjnych:
# apt install netcat pv
Jak przesyłać pliki między dwoma komputerami z systemem Linux?
Załóżmy, że chcesz wysłać jeden duży plik Ubuntu.iso z komputera A do B przez sieć.
Na komputerze z systemem Linux A
Najpierw zaloguj się do komputera „ A ” z adresem IP 192.168.0.2 i uruchom następujące polecenie.
# tar -zcf - Ubuntu.iso | pv | nc -l -p 5555 -q 5
opcje użyte w powyższym poleceniu:
- tar -zcf = tar to narzędzie do archiwizacji do kompresowania / dekompresowania plików archiwów argument -c tworzy nowy plik archiwum .tar, -f określa typ pliku archiwum i -z filtruje archiwum za pomocą programu gzip.
- Ubuntu.iso = Określ nazwę pliku do wysłania przez sieć, może to być plik lub ścieżka do katalogu.
- pv = Pipe Viewer do monitorowania postępu danych.
- nc -l -p 5555 -q 5 = Narzędzie sieciowe używane do wysyłania i odbierania danych przez tcp i argumenty -l używane do nasłuchiwania połączenia przychodzącego, -p 555 określa port źródłowy do użycia, a -q 5 czeka przez liczbę sekund a następnie kończy.
Na komputerze z systemem Linux B.
Teraz zaloguj się do komputera „ B ” z adresem IP 192.168.0.3 i uruchom następujące polecenie.
# nc 192.168.1.2 5555 | pv | tar -zxf -