Red Hat Enterprise Linux 7.1でもssコマンドは腐っているので使い物にならない
以前、CentOS 7 (7.0.1406)およびRed Hat Enterprise Linux 7のssコマンドが腐っていたことにビックリして、「ssコマンドはバグと地雷の塊なのでnetstatの代わりにならない」という記事を書きました。
これはどういうお話かと言うと:
- RHEL 7からはnetstatコマンドなどが収録されているnet-toolsパッケージが非推奨となり、デフォルトではインストールすらされなくなりました。
- しかしnetstatコマンドの代替であるssコマンドはかなり雑な感じで、UDPポートを「tcp」と表示するひどいバグがあります
というお話でした。
このssコマンドのバグは、2014年2月にRed Hat Bugzillaにも上がっていました。
というわけで、さすがに次のバージョンでは直るだろうと待っていたら、ようやくRed Hat Enterprise Linux 7.1が2015年3月にリリースされました。
ということでさっそく試してみます。ちなみにssコマンドが収録されているiprouteパッケージのリリースは「21.el7」なので、RHEL 7(無印)のときの13.el7からいくつか修正が当たっているようです。これは期待できるぞ!
$ yum info iproute 読み込んだプラグイン:langpacks, product-id, subscription-manager インストール済みパッケージ 名前 : iproute アーキテクチャー : x86_64 バージョン : 3.10.0 リリース : 21.el7 ....(省略)....
さっそくssコマンドに-anオプションを付けて実行してみました。ntp(123/udp)やmdns(5353/udp)と、ssh(22/tcp)が上がっているので、これらがちゃんと「udp」と「tcp」と分けて表示されるはず……。
うおぉぉぉぃい! 直っとらんやんけ!!!!
上の図で「UNCONN」と表示されているポートは、本当はUDPなのですが、やっぱり「tcp」と表示されちゃってます。腐ってます(早すぎました)。これはRHEL 7.1も、絶対に本番環境への導入はできないなぁ……。
というわけで前回の記事の繰り返しになりますが、RHEL 7のssコマンドは、Red Hat Enterprise Linuxが利用されるようなエンタープライズ用途での利用シーンで信頼できるレベルには全く達していない、という結論です。Red Hat社が非推奨と言っていますが、それは華麗に無視してnet-toolsパッケージをインストールして、netstatコマンドを使いましょう。