意外と知らないWell Known Ports
ちょっとサーバをごにょごにょやってて気付いたんだけど、ポート8080のサービス名はhttp-altだそうだ。Webの開発やってたら8080はよく目にすると思うけど、意外とみんな知らないんじゃないかな。まあ、こんなの知ってても無駄だけどね。
知らなきゃならないのは、/etc/servicesに変換表があるってこと。ぼくは今まで知らなかったんだけど...
なんだか悔しいので、ポート番号とサービス名を正引き/逆引きできるスクリプトを書いてみた。
well-known-port
#!/bin/sh
SERVICES_FILE=/etc/services
usage() {
echo "usage: $0 [service | port]"
}
services() {
cat $SERVICES_FILE | sed '/^#/d'
}
main() {
if [ "$1" = "-h" -o "$1" = "--help" ]
then
usage
elif [ $(($1 - 1)) -lt 0 ]
then
# parameter is service name
services | grep "^$1[[:space:]]"
else
# parameter is port number
services | grep "[[:space:]]$1/"
fi
}
case $# in
0) services ; exit 0 ;;
1) main $@ ; exit 0 ;;
*) usage ; exit 1 ;;
esac
SMTPとかSSHとか何番だったかすぐ忘れちゃうんだけど、そんな時はこんな感じで調べられる。
% well-known-port smtp
smtp 25/udp # Simple Mail Transfer
smtp 25/tcp # Simple Mail Transfer
% well-known-port ssh
ssh 22/udp # SSH Remote Login Protocol
ssh 22/tcp # SSH Remote Login Protocol
ポートからサービス名も逆引きできるからいい感じ。
% well-known-port 8080
http-alt 8080/udp # HTTP Alternate (see port 80)
http-alt 8080/tcp # HTTP Alternate (see port 80)
ちなみに、パラメータ無しで呼び出したら一覧を表示するようにした。