Quelle est la commande nc dans le système Linux ? Explication détaillée de l'utilisation de la commande nc

伊谢尔伦
Libérer: 2017-05-30 15:01:20
original
10246 Les gens l'ont consulté

Cet article présente principalement l'utilisation de base de la commande nc dans le système Linux. La commande nc est très puissante. Voici une brève introduction à son utilisation de base pour l'analyse des ports et le transfert de fichiers.

Description de la fonction : Un outil réseau puissant <( ̄▽ ̄)>, connu sous le nom de « couteau suisse » parmi les outils réseau, et dispose de versions Windows et Linux. Parce qu'il est court, concis et pratique, il est conçu comme un outil réseau simple et fiable capable de transmettre des données en lecture et en écriture via les protocoles TCP ou UDP. En même temps, il s'agit également d'un analyseur de débogage d'applications réseau car il peut créer différents types de connexions réseau selon les besoins.
nc peut fournir les fonctions réseau suivantes :
1) Écoutez un port spécifique, puis nc peut être utilisé comme serveur, mais j'ai trouvé que le serveur généré en utilisant nc de cette manière n'est qu'un serveur d'écho, et il n'y en a pas d'autre plus puissant.
2) Connectez-vous à un port spécifique, puis nc devient client De même, c'est aussi un simple client, qui ne peut jouer que le rôle d'écho
3. ) Scannez le port, qui peut être utilisé comme requête pour savoir si un certain port est ouvert sur une certaine machine
Quelques exemples d'utilisation spécifiques


Exemple 1 :
Utilisez nc pour ouvrir. un port spécifique sous linux
nc -lp 23 & (c'est-à-dire telnet)
netstat -an|grep 23 (vérifiez si le port est ouvert normalement)

Exemple 2 :
Utilisez nc pour transfert de fichiers, commande
ssh root@www.freetstar. com "( nc -l 10003 > destination 2>/dev/null & )" && cat source | vers l'hôte distant www.freetstar.com via ssh et utilisez la commande nc Ouvrez le port local 10003 et devenez un processus en arrière-plan Après
&&, ouvrez le fichier source sur la machine locale et redirigez-le vers le port 10003 de www. freetstar.com, c'est-à-dire laisser le site distant www.freetstar.com héberger 10003 Numéro de port Recevoir le fichier source

Exemple 3 :
Utilisez nc pour analyser un port spécifique sous Linux
nc -v -z host.example.com 70-80
Port de numérisation (70 à 80 ), la plage peut être spécifiée. -v affiche des informations détaillées.

Exemple 4 :
Cloner le disque dur ou la partition
Semblable à l'exemple 2, il vous suffit d'obtenir les données du disque dur ou de la partition à partir de dd, puis de les transférer.
L'opération de clonage d'un disque dur ou d'une partition ne doit pas être effectuée sur un système qui a été monté. Par conséquent, vous devez utiliser le CD d'installation pour démarrer, passer en mode de secours (ou utiliser le CD de l'outil Knoppix) pour démarrer le système, puis exécuter sur
server1 : # nc -l -p 1234 | /sda
exécuter sur le serveur1 Écoutez sur le port 1234 et enregistrez le fichier obtenu dans /dev/sda
Exécuter sur le serveur2 : # dd if=/dev/sda | nc server1 1234

Exemple 5 :
Enregistrez la page Web
while true; do nc -l -p 80 -q 1 < somepage.html; done

Exemple 6 :
Simulation des en-têtes HTTP
[root @hatest1 ~]# nc www .huanxiangwu.com 80
GET/HTTP/1.1
Hôte : ispconfig.org
Référent : mypage.com
User-Agent : mon-navigateur
Après Exécutez la commande nc, entrez le contenu de la partie rouge, puis appuyez deux fois sur Entrée pour obtenir le contenu des en-têtes HTTP de l'autre partie.

Exemple 7 :
Chat
Écouter sur le port 1234 du serveur1 [root@hatest2 tmp]# nc -lp 1234
Envoyer un message sur le port 1234 du serveur2 au serveur1 [root@hatest1 ~] #nc server1 1234
De cette façon, les deux parties peuvent communiquer entre elles. Utilisez Ctrl+D pour quitter normalement.
Pour plus d'utilisation, consultez la page de manuel

nc example.host port Ouvre une connexion TCP au port de l'hôte example.host Si la connexion échoue, aucun message d'erreur ne s'affiche et se ferme simplement <. 🎜> nc -p 31337 -w 5 example.host 42 s'ouvre avec un exemple. Un lien TCP sur le port 42 de l'hôte hôte. Utilisez 31337 comme port source, le délai d'expiration de la liaison est de 5 secondes
nc -u example.host 53 Spécifiez le protocole comme protocole udp

Syntaxe : nc [-hlnruz][-g ][-G][-i][-o][-p][-s][ -v.. .][-w][Nom d'hôte][Port de communication...]

Paramètres :
-g Définissez la passerelle de communication de saut de routeur, jusqu'à 8 peuvent être définis.
-G Définit le pointeur de routage source, sa valeur est un multiple de 4.
-h Aide en ligne.
-i Définissez l'intervalle de temps pour la transmission des informations et l'analyse des ports de communication.
-l Utiliser le mode d'écoute pour contrôler les données entrantes.
-n Utilisez l'adresse IP directement au lieu de passer par le serveur de noms de domaine.
-o Spécifiez le nom du fichier, videz les données transmises en caractères hexadécimaux dans ce fichier et enregistrez-le.
-p Définissez le port de communication utilisé par l'hôte local.
-r Des nombres aléatoires spécifient les ports de communication des hôtes locaux et distants.
-s Définissez l'adresse IP de l'hôte local pour envoyer les paquets de données.
-u Utiliser le protocole de transport UDP.
-v Affiche le processus d'exécution de l'instruction.
-w Définissez le temps d'attente pour la connexion.
-z Utilise le mode d'entrée/sortie 0, utilisé uniquement lors de l'analyse des ports de communication.

Jetons un coup d'œil à son utilisation de base :

1. Écoutez le port local

root@10.1.1.43:~# nc -l -p 1234 
root@10.1.1.43:~# netstat -tunlp | grep 1234
Copier après la connexion

tcp 0 0 0.0.0.0:1234 0.0. 0.0 :* ÉCOUTER 15543/nc

2. Analyse des ports

root@10.1.1.43:~# nc -v -w 10 10.1.1.180 80
Copier après la connexion

(INCONNU) [10.1.1.180] 80 (www) ouvert

root@10.1.1.43:~# nc -v -w 10 10.1.1.180 -z 80-30000
Copier après la connexion

(INCONNU) [10.1.1.180] 22000 (?) ouvert
(INCONNU) [10.1.1.180] 80 (www) ouvert

3. Fichier sortant

Source 10.1.1.43 text.txt

Destination 10.1.1.180

root@10:~# nc -l -p 1234 > test.txt #开10.1.1.180:1234端口监听,并将socket传输过来的数据重定向到test.txt文件 test 43 nc
root@10.1.1.43:~#cat test.txt    
root@10.1.1.43:~# nc  10.1.1.180 1234 < test.txt  #连接远程的10.1.1.180,从test.txt的路径从定向到socket,从而将文件传输到远方。
root@10:~# cat test.txt
test 43 nc
Copier après la connexion


4. Transfert de répertoire

Source 10.1.1.43 python_program

Objectif 10.1.1.180

root@10:~# nc -l -p 1234 | tar xzvf -
root@10.1.1.43:~# tar czvf -  python_program | nc 10.1.1.180 1234
Copier après la connexion

python_program/
python_program/1.py
python_program/4.py
python_program/3.py

5. Testez le port UDP

root@172.16.211.34:web# netstat -tunlp
Copier après la connexion

Connexions Internet actives (serveurs uniquement)
Proto Recv-Q Send-Q Adresse locale Adresse étrangère État PID/Nom du programme
tcp 0 0 0.0 .0.0 ; 0.0.0.0 :* 887/dhclient


root@172.16.211.35:~# nc -vuz  172.16.211.34 68
Copier après la connexion
Connexion au port 172.16.211.34 68 [udp/bootpc] réussie !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal