Linux勉強(疎通確認、DNS)
LPIC2を勉強中。備忘として記載する。(LPIC以外で思いつきで調べたこと含む)
ポート番号指定の疎通確認方法
業務ではwindowsから疎通確認する機会が多いのでPowershellでtest-netconnectionコマンドをよく使用しているが、Linuxでは疎通確認したことないなと思い調べてみた。
nc -vz <宛先> <ポート番号> nc -u -vz <宛先> <ポート番号> #udp traceroute -T -p <ポート番号> <宛先> traceroute -U -p <ポート番号> <宛先> curl -v telnet://<宛先>:<ポート番号>
ncはcentosの最小インストールやAmazonLinuxに入っていなかったので、tracerouteとcurlが便利そうかな。 curlは覚えたら最近のWindowsのコマンドプロンプトでも使えそう。ただUDPは確認できないが。
DNSについて
権威サーバとフルサービスリゾルバについてちゃんと知らなかったのでちょっと調べた。 ざっくりと権威サーバは自身のゾーン情報を回答するもの、フルサービスリゾルバはDNSキャッシュサーバで不明なDNS名は都度クライアントとして他のDNSサーバに問い合わせてキャッシュ更新するみたいなものならしい。
あとDNS関連コマンドはnslookupしかちゃんと使用したことなかったので個人的に気になるコマンドを整理。
nslookup <問合せDNS名> <DNSサーバ指定> host -t <クエリタイプ> <ipアドレスもしくはDNS名> dig <問合せDNS> <クエリタイプ: a, mx, any等>
digのanyオプションは全てのクエリタイプを確認できるので便利そう。あとdigは色々詳細が出てくるので、内容を覚えたい。
sshについて
実際にコマンドを確認する際、ipadのTermiusでサーバにssh接続してるんだけど、接続したまま他のアプリを操作していたら結構早めにssh接続が切れてしまった。sshdのClientAliveIntervalの設定をすればよいみたいな記事があるけど、teratermとかで接続している時はそんな頻繁に切れてない記憶があるので、ipadだとバックグラウンドにした際通信がされなくなって設定しても意味がなさそうな気がする。
とか色々調べたり考えたりしつつ、sshの余計なプロセスをkillしないとなーとプロセス一覧を見てたらどれをkillすれば良いのか迷った。
root 18407 1 0 Mar09 ? 00:00:00 /usr/sbin/sshd -D root 31369 18407 0 12:16 ? 00:00:00 sshd: ec2-user [priv] ec2-user 31401 31369 0 12:16 ? 00:00:00 sshd: ec2-user@pts/0 ec2-user 32510 31402 0 12:26 pts/0 00:00:00 grep --color=auto sshd
一番上はsshdのデーモン、一番下はgrepした結果。なので真ん中二つだけど、どっちでも良いのかな?と思いつつ、ec2-userでログインしてたし、pts(仮想端末?)を削除すれば良いかと思い、ec2-userのプロセスをkillしたらrootのほうもいなくなってた。 rootの方はなんなんだろと思い、privを調べてみたらprivilege separation(権限分離/非特権)らしい。初めて知った。
試しにrootの方をkillしようとしたら権限が足りないとなったのでsudoで削除したらec2-userのほうも削除された。そりゃそうか。