socat - Multipurpose relay (SOcket CAT)

netcat がパワーアップしたようなもの?

netcatのport forwardが面倒くせーなーと思っていたけど、socatなら名前付きパイプを作らなくても良かった。(といっても内部的にncを実行しているようなのでラッパーのようなもの?)

簡単にportフォワードできたり。telnet,ncのようにTCP/UDPのクライアントに使ったり。

ただ、TCP/UDP portに接続するだけならncでいいやん?と思いきや
名前の通りsocketに直接接続できるのも大きな違いかな。

tcp/udp client

$ socat STDIN TCP4:www.example.com:80 
GET / HTTP/1.0  # http request を標準入力から入力
	
### もしくは、http requestの内容をファイルに書いておいて
$ socat - TCP4:www.example.com:80 < http.request

port forward

localの8080に来たものを192.168.0.1:8080にforward

$ socat TCP4-LISTEN:8080 TCP4:192.168.0.1:8080
  • socket
$ socat - UNIX-CONNECT:/path/to/file.socket