使用 nc (Netcat) 建立傳送資料的 socket server

於 Debian / Ubuntu Linux 想要透過 Socket 互相傳送資料、聊天等等, 可以透過 nc (NetCat) 快速實現.

使用 nc 聊天

  • nc -l 1234 # Server 1
  • nc 127.0.0.1 1234 # 127.0.0.1 換成 Server 1 的 IP 即可.
  • 這樣子雙方打得字就會戶相傳過去, 可以達到聊天的效果. (Ctrl + D 可以結束)

掃 Port - 看哪個 Port 有開放

  • nc -v -w 2 localhost -z 30-80

    localhost [127.0.0.1] 80 (http) open
    localhost [127.0.0.1] 53 (domain) open

傳送資料

  • cat filename | nc -l 9090 # 透過 9090 port 傳送 filename 的檔案內容
  • nc localhost 9090 # 接收 9090 port 傳來的檔案內容

檔案傳送

  • nc -l 1234 > filename # 接收 Server 先建立 (Port: 1234)
  • nc 127.0.0.1 1234 < test.txt # 傳送 Server 後建立並傳送檔案內容過去. (將 127.0.0.1 換成要傳送過去的 IP 即可)
  • Server 端加密: nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > file.txt
  • Client 端解密: mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l 1567

nc 與 telnet 溝通

  • nc -l 1234 # 建立 1234 port socket server
  • telnet localhost 1234 # 連到 socket server
  • # 再來互相打字, 都可以相互接收
  • Server 直接打開一個 Shell: nc -l 1567 -e /bin/bash -i
  • Client 連進來: nc 172.31.100.7 1567

nc 跑影音串流

  • Server: cat video.avi | nc -l 1567
  • Client: nc localhost 1567 | mplayer -vo x11 -cache 3000 -

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料