<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
     Netcat 或者叫 nc 是 Linux 下的一個用于調試和檢查網絡工具包。可用于創建 TCP/IP 連接,最大的用途就是用來處理 TCP/UDP 套接字。

      這里我們將通過一些實例來學習 netcat 命令。

      1. 在服務器-客戶端架構上使用 Netcat

      netcat 工具可運行于服務器模式,偵聽指定端口

    1
    $ nc -l 2389

     然后你可以使用客戶端模式來連接到 2389 端口:

    1
    $ nc localhost 2389

      現在如果你輸入一些文本,它將被發送到服務器端:

    1
    2
    $ nc localhost 2389
    HI, oschina

      在服務器的終端窗口將會顯示下面內容:

    1
    2
    $ nc -l 2389
    HI, oschina

      2. 使用 Netcat 來傳輸文件

      netcat 工具還可用來傳輸文件,在客戶端,假設我們有一個 testfile 文件:

    1
    2
    $ cat testfile
    hello oschina

      而在服務器端有一個空文件名為 test

      然后我們使用如下命令來啟用服務器端:

    1
    $ nc -l 2389 > test

      緊接著運行客戶端:

    1
    cat testfile | nc localhost 2389

      然后你停止服務器端,你可以查看 test 內容就是剛才客戶端傳過來的 testfile 文件的內容:

    1
    2
    $ cat test
    hello oschina

      3. Netcat 支持超時控制

      多數情況我們不希望連接一直保持,那么我們可以使用 -w 參數來指定連接的空閑超時時間,該參數緊接一個數值,代表秒數,如果連接超過指定時間則連接會被終止。

      服務器:

    1
    nc -l 2389

      客戶端:

    1
    $ nc -w 10 localhost 2389

      該連接將在 10 秒后中斷。

      注意: 不要在服務器端同時使用 -w 和 -l 參數,因為 -w 參數將在服務器端無效果。

      4. Netcat 支持 IPv6

    netcat 的 -4 和 -6 參數用來指定 IP 地址類型,分別是 IPv4 和 IPv6:

      服務器端:

    1
    $ nc -4 -l 2389

      客戶端:

    1
    $ nc -4 localhost 2389

      然后我們可以使用 netstat 命令來查看網絡的情況:

    1
    2
    3
    $ netstat | grep 2389
    tcp        0      0 localhost:2389          localhost:50851         ESTABLISHED
    tcp        0      0 localhost:50851         localhost:2389          ESTABLISHED

      接下來我們看看IPv6 的情況:

      服務器端:

    1
    $ nc -6 -l 2389

      客戶端:

    1
    $ nc -6 localhost 2389

      再次運行 netstat 命令:

    1
    2
    3
    $ netstat | grep 2389
    tcp6       0      0 localhost:2389          localhost:33234         ESTABLISHED
    tcp6       0      0 localhost:33234         localhost:2389          ESTABLISHED

      前綴是 tcp6 表示使用的是 IPv6 的地址。

      5. 在 Netcat 中禁止從標準輸入中讀取數據

      該功能使用 -d 參數,請看下面例子:

      服務器端:

    1
    $ nc -l 2389

      客戶端:

    1
    2
    $ nc -d localhost 2389
    Hi

      你輸入的 Hi 文本并不會送到服務器端。

      6. 強制 Netcat 服務器端保持啟動狀態

      如果連接到服務器的客戶端斷開連接,那么服務器端也會跟著退出。

      服務器端:

    1
    $ nc -l 2389

      客戶端:

    1
    2
    $ nc localhost 2389
    ^C

      服務器端:

    1
    2
    $ nc -l 2389
    $

      上述例子中,但客戶端斷開時服務器端也立即退出。

      我們可以通過 -k 參數來控制讓服務器不會因為客戶端的斷開連接而退出。

      服務器端:

    1
    $ nc -k -l 2389

      客戶端:

    1
    2
    $ nc localhost 2389
    ^C

      服務器端:

    1
    $ nc -k -l 2389

      7. 配置 Netcat 客戶端不會因為 EOF 而退出

      Netcat 客戶端可以通過 -q 參數來控制接收到 EOF 后隔多長時間才退出,該參數的單位是秒:

      客戶端使用如下方式啟動:

    1
    nc  -q 5  localhost 2389

      現在如果客戶端接收到 EOF ,它將等待 5 秒后退出。

      8. 使用 Netcat 來處理 UDP 協議

      netcat 默認是使用 TCP 協議,但也支持 UDP,可使用 -u 參數來啟用 UDP 協議通訊。

      服務器端:

    1
    $ nc -4 -u -l 2389

     客戶端:

    1
    $ nc -4 -u localhost 2389

      這樣客戶端和服務器端都使用了 UDP 協議,可通過 netstat 命令來查看:

    1
    2
    $ netstat | grep 2389
    udp        0      0 localhost:42634         localhost:2389          ESTABLISHED

      英文原文:nc-command-examples

    posted on 2012-11-19 17:01 abin 閱讀(378) 評論(0)  編輯  收藏 所屬分類: linux
    主站蜘蛛池模板: 人人揉揉香蕉大免费不卡| 免费无码AV一区二区| 16女性下面无遮挡免费| 亚洲天堂一区二区| 91精品免费不卡在线观看| 亚洲Av熟妇高潮30p| 在线观看免费中文视频| 亚洲天堂一区在线| 免费无码黄十八禁网站在线观看| 亚洲成人免费在线观看| 野花高清在线观看免费完整版中文| 亚洲一级毛片在线播放| 免费黄网在线观看| 无码 免费 国产在线观看91| 国产成人亚洲综合| 免费一级毛片无毒不卡| 亚洲免费网站在线观看| 成人免费无码大片A毛片抽搐| 国产成人精品久久亚洲高清不卡| 国产精品免费看久久久久| 亚洲阿v天堂在线2017免费| 久久香蕉国产线看观看亚洲片| 亚洲一区二区三区免费视频| 亚洲一区二区三区写真| 亚洲第一页综合图片自拍| 99久久国产精品免费一区二区| 91亚洲国产在人线播放午夜| 免费特级黄毛片在线成人观看 | 亚洲一区二区三区夜色| 青草草色A免费观看在线| 免费在线观看亚洲| 亚洲va中文字幕无码久久| 欧美男同gv免费网站观看| 无码日韩人妻AV一区免费l| 亚洲av无码av制服另类专区| 成在人线AV无码免费| 国产真人无码作爱免费视频| 亚洲人成片在线观看| 亚洲熟妇少妇任你躁在线观看无码| 精品熟女少妇a∨免费久久| 综合偷自拍亚洲乱中文字幕|