Netcatでポートスキャンとか

Netcatでポートスキャンを実行する

$ nc -v -z localhost 1-1023
localhost.localdomain [127.0.0.1] 80 (www) open
localhost.localdomain [127.0.0.1] 25 (smtp) open
localhost.localdomain [127.0.0.1] 22 (ssh) open

上記では、localhostの1〜1023番までのポートをスキャンしている。
80, 25, 22番がオープンしているという結果になった。

リクエストをポート8080からポート80へ転送する

$ mknod ncpipe p
$ nc -l -p 8080 < ncpipe | nc localhost 80 > ncpipe

違う端末から以下を実行してみる。
なお、Apacheが80番ポートで起動しているものとする。

下記のコマンドで8080番がLISTENしているかチェックしてみる
$ lsof -nPi:8080
COMMAND   PID  USER   FD   TYPE DEVICE SIZE NODE NAME
nc      13692 chibi    3u  IPv4  87338       TCP *:8080 (LISTEN)


接続してみる
$ nc localhost 8080
HEAD / HTTP/1.0          ←入力後にEnterを2回押す

HTTP/1.1 200 OK
Date: Mon, 25 Feb 2008 09:35:53 GMT
Server: Apache
X-Powered-By: PHP/5.2.3-1ubuntu6.3
Vary: Accept-Encoding,User-Agent
Connection: close
Content-Type: text/html

8080番にアクセスしたのに、80番へきちんと転送されている。

ブラウザなどから、http://localhost:8080/ などとアクセスしてもきちんとコンテンツが表示される。