zoukankan      html  css  js  c++  java
  • socat使用

    socat使用

    TOC

    socat是一個netcat(nc)的替代產品,可以稱得上nc++。socat的特點就是在兩個流之間建立一個雙向的 通道。socat的地址類型很 多,有ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,等等。

    使用举例:

    连接

    c:>socat - tcp:192.168.1.18:80

    這個命令等同於 nc 192.168.1.18 80。 socat裡面,必須有兩個流,所以第一個參數-代表標準的輸入輸出,第二個流連接到192.168.1.18的80端口。

    反向telnet的例子

    //on server:
    c:>socat tcp-listen:23 exec:cmd,pty,stderr

    這個命名把cmd綁定到端口23,同時把cmd的Stderr重定向到stdout。

    //on client:
    c:>socat readline tcp:server:23

    連接到服務器的23端口,即可獲得一個cmd shell。readline是gnu的命令行編輯器,具有歷史功能。

    文件傳遞

    c也經常用來傳遞文件,但是nc有一個缺點,就是不知道文件什麼時候傳完了,一般要用Ctrl+c來終止,或者估計一個時間,用-w參數來讓他自動終止。用socat就不用這麼麻煩了:

    //on host 1:
    c:>socat -u open:myfile.exe,binary tcp-listen:999
    
    //on host 2:
    c:>socat -u tcp:host1:999 open:myfile.exe,create,binary

    這個命令把文件myfile.exe用二進制的方式,從host 1 傳到host 2。-u 表示數據單向流動,從第一個參數到第二個參數,-U表示從第二個到第一個。文件傳完了,自動退出。

    一個NAT環境,如何從外部連接到內部的一個端口

    只要能夠在內部運行socat就可以了。

    //外部:
    c:>socat tcp-listen:1234 tcp-listen:3389
    
    //內部:
    c:>socat tcp:outerhost:1234 tcp:192.168.12.34:3389
    

    這樣,你外部機器上的3389就影射在內部網192.168.12.34的3389端口上。

    獨特的讀寫分流功能

    c:>socat open:read.txt!!open:write.txt,create,append tcp-listen:80,reuseaddr,fork

    這個命令實現一個假的web server,客戶端連過來之後,就把read.txt裡面的內容發過去,同時把客戶的數據保存到write.txt裡面。”!!”符號用戶合併讀寫流,前面的用於讀,後面的用於寫。

  • 相关阅读:
    flush privileges 什么意思
    kill
    xargs
    mysql 5.6 与5.7安装
    内核线程、轻量级进程、用户线程
    在gdb将所有线程的堆栈输出到文件中去
    GDB 反向调试(Reverse Debugging)
    redhat 6.6 安装 (LVM)
    GDB中创建要素数据集
    AO Identify地图交互
  • 原文地址:https://www.cnblogs.com/volva/p/11812433.html
Copyright © 2011-2022 走看看