1. 程式人生 > >nc命令介紹

nc命令介紹

名字: 
nc - 連線、監聽任意的TCP和UDP。 
概要: 
nc [-46DdhklnrStUuvzC] [-i 間隔] [-p 源埠] 
[-s 源IP地址] [-T 服務型別] [-w 超時時間] [-X 代理協議] 
[-x 代理地址[:埠]] [主機名] [埠[s]]

詳細說明: 
nc(netcat)的功能使用是涉及到TCP或者UDP的時候。它可以開啟TCP連線,傳送UDP包,監聽任意的TCP和UDP埠,掃描埠,處理IPv4和IPv6。nc指令碼是非常好的,跟telnet(1)不一樣,它把錯誤資訊輸出到標準錯誤輸出上而不是輸出到標準輸出上(螢幕)。

常用的用法: 
* 簡單的TCP代理 
* 基於http客戶端和伺服器端的shell 指令碼 
* 測試網路上的守護程序 
選項如下:

  • -4 強制nc只能使用IPv4地址。
  • -6 強制nc只能使用IPv6地址。
  • -D 在socket上進行除錯以排除故障。
  • -d 不嘗試從標準輸入讀取。
  • -h 列印nc幫助資訊。
  • -i 間隔 
    在傳送和接收之間指定一個間隔時間。同時會引起連線多個介面時的延遲。
  • -k 當nc當前的連線完成時,強制nc監聽其它的連線。必須同時使用- l選項。
  • -l 指定nc監聽一個外來的連線,而不是向遠端主機發起一個連線。不能同時使用 -p , -s, -z, -w選項。
  • -n 不在任何指定的地址、主機、埠檢視DNS或者服務。
  • -p 源埠 
    指定nc應該使用的源埠,受到特權的限制和可用性。不能同時使用-l選項。
  • -r 指定源或目標埠使用隨機的埠而不是一個範圍序列或系統分配的順序。
  • -S 使RFC 2385 TCP 的MD5簽名可用。
  • -s 源IP地址 
    指定傳送包的介面的IP。不能同時使用-l選項。
  • -T 服務型別 
    為連線指定IP報頭的服務型別。有效值為”lowdelay”,”throughput”,”reliability”或者是8位的16進位制值(16進位制字首0x)。
  • -C 傳送CRLF作為一行的結束。
  • -t 引發nc傳送RFC 854 DON’The WON’T響應給RFC 854 DO和WILL請求。這使得使用nc指令碼化telnet會話成為可能。
  • -U 指定使用Unix Sockets 服務。
  • -u 使用UDP代替預設的TCP。
  • -v nc給出更詳細的輸出。
  • -w 超時時間 
    如果連線或輸入停頓時間超過超時時間就關閉連線。-w選項不會影響到-l選項,也即,nc將會永久的監聽一個連線,不管有沒有-w選項。預設沒有超時時間。
  • -X 代理版本 
    當與代理伺服器會話是要求nc使用指定的代理協議。支援的協議有”4”(SOCKS v.4),”5”(SOCKS v.5),”connect”(HTTPS proxy).預設使用SOCKS v.5。
  • -x 代理地址[:埠] 
    要求nc使用一個有代理地址和埠的代理來連線主機名。如果沒有指定,則使用熟知埠(SOCKS-1080,HTTPS-3128)。
  • -z 指定nc只掃描正在監聽的守護程序,不傳送任何資料。

    主機名可以是數字形式的IP或者是名字標誌(除非使用了-h選項)。通常,主機名必須被指定,除非使用-l選項(這種情況下,本地主機正在使用)。

    埠可以是整數或一個範圍(格式nn-mm)。通常,必須指定目標埠,除非使用-U選項(這種情況下,必須指定一個socket)。

客戶端/伺服器 模式: 
使用nc很容易建立一個很基本的客戶端/伺服器。在一個控制檯,開啟nc監聽一個指定埠的連線。 
例如:

 $ nc -l 1234
nc正在監聽在1234埠上的連線。在第二個控制檯(或第二天機器),連線到正在被監聽的主機的埠:
 $ nc 127.0.0.1 1234
現在在兩個埠之間建立了連線。第二個控制檯的任何型別將會連線到第一個,反之亦然。
當連線設定完成,nc不關心哪邊是伺服器哪邊是客戶端。使用EOF('^D')來結束連線。

資料傳輸: 
前面的例子已經詳述瞭如何建立一個基本的資料傳輸模型。在連線的任何一端輸入任何資訊都會輸出到另外一端,為了模擬檔案傳輸,輸入輸出可以很容易的捕獲。 
使用nc開啟一個指定埠的監聽,將輸出捕獲到一個檔案中:

nc -l 1234 > filename.out
使用第二個機器,連線到nc正在監聽的程序,將準備傳輸的檔案傳送到第一個主機nc正在監聽的程序:
    $ nc host.example.com 1234 < filename.in
傳輸完成,連線自動關閉。

對話伺服器: 
有時候手動與伺服器對話比使用一個使用者介面更有用。當可能有必要查證伺服器響應給客戶端命令時傳送的資料,以幫助檢修。例如,重新得到一個網站的主頁:

    $ echo -n "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

注意到這裡也顯示了Web伺服器傳送的報頭。如有必要,使用sed(1)可以過濾掉報頭。
當使用者知道伺服器請求命令的格式後可以進行更復雜的例子操作。
另一個例子,郵件可能被提交到一個SMTP伺服器的用法:
    $ nc [-C] localhost 25 << EOF
    HELO host.example.com
    MAIL FROM: <[email protected]>
    RCPT TO : <[email protected]>
    DATA
    Body of email .
    .
    QUIT
    EOF

埠掃描: 
可以知道目標主機上開啟的埠和服務。-z選項告訴nc列印開啟的埠而不是發起一個連線。例如:

    $ nc -z host.example.com 20-30
    Connection to host.example.com 22 port [tcp/ssh] succeeded!
    Connection to host.example.com 25 port [tcp/ssh] succeeded!
只搜尋指定範圍20-30的埠。
作為一種選擇,它可以知道目標主機正在執行的軟體和版本。這些纖細經常包含在問候的標語之中。
為了重新得到這些資訊,必須首先建立一個連線,當重新得到標語之後就斷開連線。
可以通過-w指定一個比較小的超時時間或者通過傳送“QUIT"命令給伺服器來完成:
    $ echo "QUIT" | nc host.example.com 20-30
    SSH-1.99-OpenSSH_3.6.1p2
    Protocol mismatch.
    220 host.example.com IMS SMTP Receiver Version 0.84 Ready

例子:

    $ nc -p 31337 -w 5 host.example.com 42
    $ nc -p 31337 -w 5 host.example.com 42

開啟一個到host.example埠為53的UDP連線:

    $ nc -u host.example.com 53

使用10.1.2.3作為本地主機IP開啟一個到host.example埠為42的TCP連線:

    $ nc -s 10.1.2.3 host.example.com 42

建立並監聽一個Unix Socket 守護程序:

    $ nc -lU /var/tmp/dsocket

通過了一個IP為10.2.3.4的HTTP代理伺服器的8080埠,連線到host.example.com的42埠。這個例子也可以使用ssh(1)來實現;更多資訊可檢視ssh_config(5)的ProxyCommand指令。

    $ nc -x10.2.3.4:8080 -Xconnect host.example.com 42

相關推薦

nc命令介紹

名字:  nc - 連線、監聽任意的TCP和UDP。 概要:  nc [-46DdhklnrStUuvzC] [-i 間隔] [-p 源埠]  [-s 源IP地址] [-T 服務型別] [-w 超時時間] [-X 代理協議]  [-x 代理地址[:埠]] [主機名] [埠

Linux nc/netcat 命令介紹

don 等待 數據包 opp 範圍 mep -s 操作 nginx 1,nc命令是netcat命令的簡稱,都是用來設置路由器。 2,語法nc/netcat(選項)(參數) 3,選項-g<網關>:設置路由器躍程通信網關,最多設置8個;-G<指向器數目>

12個Linux進程管理命令介紹

pcs 交互 普通用戶 創建 展示 結束 註意 資源限制 組合 12個Linux進程管理命令介紹 當程序可以執行文件存放在存儲中,並且運行的時候,每個進程會被動態得分配系統資源、內存、安全屬性和與之相關的狀態。可以有多個進程關聯到同一個程序,並同時執行不會互相幹擾。Lin

用戶和組管理命令介紹與詳解

linux 命令用戶管理命令:useradd,userdel,usermod,passwd,chsh.chfn,finger,id,chageUseradd(建立用戶)useradd [options] USERNAME 例:useradd -g mygroup user2建立一個

awk命令介紹和常見使用方法

awkawk、sed、grep這三個命令並稱為文本處理三劍客,但是awk的功能遠遠多出其他兩個命令很多。最初由貝爾實驗室研制。後來GUN組織在awk的基礎上研制了gawk,現在我們在Linux使用的一般都是gawk這個命令,但是為了一些習慣,將awk作為gawk的鏈接,也就是說,現在在bash中使用awk還是

linux入門基礎知識及簡單命令介紹

linux基礎linux入門基礎知識介紹1、計算機硬件組成介紹計算機主要由cpu(運算器、控制器),內存,I/O,外部存儲等構成。 cpu主要是用來對二進制數據進行運算操作,它從內存中取出數據,然後進行相應的運算操作。不能從硬盤中直接取數據。 內存從外部存儲中取出數據供cpu運存。內存的最小單位是

nc命令

echo 關閉連接 禁用 發送 連接 建立連接 信息 數據 數據包 向主機192.168.1.154的端口2345發送內容為klamnsckjnakjcn的UDP數據包 echo klamnsckjnakjcn | nc -u 192.168.1.154 2345 結合tc

redis GEO地理位置命令介紹

each limits 排序。 ima 字符 lex member pat uniq GEOADD keylongitude latitude member [longitude latitude member ...] Available since 3.2.0. T

【Ansible 文檔】【譯文】Ad-Hoc 命令介紹

力量 services 方式 控制 雙引號 handlers 升級 ges 快的 Introduction To Ad-Hoc Commands Ad-Hoc命令介紹 下面的例子展示了如何使用 /usr/bin/ansible 來運行ad hoc任務。 什麽是ad hoc命

maven常用命令介紹

記憶 頂級 新浪微博 默認 是否 小例子 ima svn ng- mvn 3.0.4 創建maven項目命令 mvn archetype:generate -DgroupId=damocles-autocredit -DartifactId=damocles-auto

Puppet 之 相關概念和命令介紹

puppet 概念 命令1 概述puppet是一種Linux、Unix、windows平臺的集中配置管理系統,使用自有的puppet描述語言,可管理配置文件、用戶、cron任務、軟件包、系統服務等。puppet把這些系統實體稱之為資源,puppet的設計目標是簡化對這些資源的管理以及妥善處理資源間的依賴關系

(轉)linux nc命令使用詳解

遠程拷貝 工作 主機 lin con gin browser -s 反向連接 linux nc命令使用詳解 原文:https://www.2cto.com/os/201306/220971.html 功能說明:功能強大的網絡工具 語  法:nc [-hlnruz][-g&

第五課:系統目錄及ls·文件類型及alias命令介紹

alias1、上過一次我們學習了單用戶和救援模式及服務器秘鑰登錄等操作,而我們最終的目的還是要操作和使用linux系統,所以我們今天先初步學習linux的基本命令如下:一·目錄介紹 ls命令介紹 文件類型 alias命令介紹1、首先我們先學習下linux的目錄:登

第七課:PATH CP MV cat head tail等文本命令介紹

cp mv cat head摘要:上次我們學習過創建和刪除文本的命令,文本創建後,需要對文檔進行修改和操作:今天我們來學習下:1、PATH:環境變量:當我們使用一個命令時,總要用到環境變量,它是一個路徑,是一些命令的集合。可以用set命令查看系統的所有變量:[root@localhost ~]# ech

MySQL更改root密碼、連接MySQL、MySQL常用命令介紹

row all sta 一行 reg time 建表語句 slist cli 更改MySQL數據庫root密碼 1. 首次進入數據庫是不用密碼的,如下所示: [root@gary-tao ~]# /usr/local/mysql/bin/mysql -uroot //使用絕

adb命令介紹與使用

sock alt ins 進行 服務器端 環境 包名 狀態 mes DB的概念 adb的全稱為Android Debug Bridge,是起到調試橋的作用。通過adb,我們可以在ecplise中方便的通過DDMS來調試Android程序,其實他就是一個debug工具。但它的

sed命令介紹

交互 gpo pat 時間 顯示 給定 模式 取數據 sed -e sed是一個非交互性性文本編輯器,它編輯文件或標準輸入 導出的文件拷貝。標準輸入可能是來自鍵盤、文件重定向、字符串或變量,或者是一個管道文件。sed可以隨意編輯小或大的文件,有許多sed命令用來編輯、 刪除

系統目錄結構以及日常使用的命令介紹

權限 pro 臨時 進程管理器 編輯 img 系統進程 二進制文件 lib 系統目錄結構 ls 列出系統目錄或者文件的 root 用戶家目錄是在根下/root 下面普通用戶家目錄是在/home /etc 配置文件目錄 /dev 設備文件目錄 /boot 啟動文件目錄 /ho

RMAN命令介紹

win 選項 其中 文件的 哪些 archive exc 相關 ati 這裏的RMAN命令均在歸檔模式下執行 一、連接方式 1、本地連接數據庫(系統驗證) [oracle@node1 ~]$ rman target / 2、本地連接數據庫(數據庫賬號密碼驗證

Mac 常用命令介紹

cat 常用 ble pos ash ech 當前 spa shell 1、查看所有shell cat /etc/shells 2、查看當前使用的shell類型 $ echo $SHELL 3、Mac 常用命令介紹