ネットワークのコマンドはping以外ほとんど知らないんですけど、それ以外に最近少し覚えたネットワークコマンドなどについて。
適切な使い方などはまだようわかっとらんです・・・
netstat(ss)
通信しているポートの状態をチェックする。どのポートが開いて通信しているのかがわかる。
netstat -antuで起動中のポートが見れる
1 2 3 4 5 6 7 8 9 10 11 12 13 |
netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:8999 0.0.0.0:* LISTEN 1563/fcgiwrap tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1609/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1467/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1546/master tcp 0 0 10.241.42.136:80 10.241.42.23:60858 ESTABLISHED 1610/nginx tcp 0 0 10.241.42.136:80 10.241.42.23:60859 ESTABLISHED 1610/nginx tcp 0 932 10.241.42.136:22 10.241.42.23:60643 ESTABLISHED 1650/sshd tcp 0 0 10.241.42.136:22 10.241.42.23:60722 ESTABLISHED 1673/sshd tcp 0 0 :::22 :::* LISTEN 1467/sshd tcp 0 0 ::1:25 :::* LISTEN 1546/master |
LISTEN は待ち受け中
ESTABLISHは接続中になります。
ステータスの見方など
TCPの状態遷移
ちなみにcentos7からは非推奨で代わりにssコマンドというものを使うようです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# ss -ltu Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Cannot open netlink socket: Protocol not supported udp UNCONN 0 0 *:memcache *:* udp UNCONN 0 0 :::33848 :::* udp UNCONN 0 0 :::memcache :::* udp UNCONN 0 0 :::mdns :::* Cannot open netlink socket: Protocol not supported tcp LISTEN 0 0 127.0.0.1:cslistener *:* tcp LISTEN 0 0 *:mysql *:* tcp LISTEN 0 0 *:memcache *:* tcp LISTEN 0 0 *:EtherNet/IP-1 *:* tcp LISTEN 0 0 *:sunrpc *:* tcp LISTEN 0 0 *:http *:* tcp LISTEN 0 0 *:postgres *:* tcp LISTEN 0 0 127.0.0.1:smtp *:* tcp LISTEN 0 0 :::imqbrokerd :::* tcp LISTEN 0 0 :::irdmi :::* tcp LISTEN 0 0 :::memcache :::* tcp LISTEN 0 0 :::EtherNet/IP-1 :::* tcp LISTEN 0 0 :::sun-as-jmxrmi :::* tcp LISTEN 0 0 :::appserv-http :::* tcp LISTEN 0 0 :::webcache :::* tcp LISTEN 0 0 :::lrs-paging :::* tcp LISTEN 0 0 :::intermapper :::* tcp LISTEN 0 0 :::postgres :::* tcp LISTEN 0 0 :::40024 :::* tcp LISTEN 0 0 ::1:smtp :::* |
頻出っぽいオプションの使い方について
1 2 3 4 5 6 7 |
-n…サービス名に変換せずに表示(not resolve) -a…全てのソケットを表示(all) -l開いているポートを表示(listen) -t…TCP情報のみ表示(tcp) -u…UDP情報のみ表示(udp) ss -ltu (開いているTCP,UDPのポートのみ表示) |
RHEL7/CentOS7 管理コマンドについて 【 ssコマンド編 】
lsof
lsof -i:ポート番号でどのプロセスがポートを使っているかがわかる(root権限で見たほうがいいかも)
1 2 3 4 5 6 7 8 9 |
lsof -i:80(80番ポートの使用状態を見たいとき) COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 281 root 26u IPv4 265703097 0t0 TCP *:http (LISTEN) nginx 284 nginx 26u IPv4 265703097 0t0 TCP *:http (LISTEN) nginx 287 nginx 26u IPv4 265703097 0t0 TCP *:http (LISTEN) nginx 289 nginx 26u IPv4 265703097 0t0 TCP *:http (LISTEN) nginx 291 nginx 26u IPv4 265703097 0t0 TCP *:http (LISTEN) nginx 294 nginx 26u IPv4 265703097 0t0 TCP *:http (LISTEN) nginx 295 nginx 26u IPv4 265703097 0t0 TCP *:http (LISTEN) |
arp
物理アドレス(MACアドレス)と論理アドレス(IPアドレス)の対応を見るコマンド
traceroute
特定のホストまでの経路を調べるコマンド
日経XTECH 【 traceroute 】 ホストまでの経路を調べる
centos7で非推奨のネットワークコマンドなど。
CentOS 7 以降では ifconfig、route、arp、netstat が非推奨
lokkit
iptablesなどのポート開放を非対話で実現するコマンド。迂闊に使うとiptablesを一気に新規作成されるので危険です・・・
1 2 3 4 5 |
#これだと新規作成になり既存で別ポートを開放していた場合潰れるので要注意 #一応バックファイルは作成されますが・・ lokkit -s http -s ssh #追加 lokkit -q --port=8080:tcp |