9. ネットワークコマンド

 
9.1 telnet  他のコンピュータへのログイン
9.2 ftp  ネットワーク上でファイルを転送する
9.3 netstat ネットワークの状態を表示する
9.4 ping  ネットワークの応答をチェックする
9.5 ssh  他のコンピュータへのログイン(暗号化)

9.1 telnet

 他のコンピュータへログインします。
> telnet ホスト名 [ポート番号]
 ポート番号を指定しないと、他のコンピュータへログインできます。  ホスト名は、/etc/hosts に記述しているものでも、フルドメイン名でも、IP アドレスでも OK です。  うまくつながれば、プロンプトが返ってきますので、ユーザ名とパスワードを入力します。  あとは、通常の端末として使用することが出来ます。
> telnet 192.168.0.2
Trying 192.168.0.2...
Connected to hogehoge.jp
Escape character is '^]'.

FreeBSD/i386 (hogehoge.jp) (ttyp1)

login: ユーザ名
Password: (パスワードはエコーバックされません)
Last login: Tue Jun 25 12:16:49 from hogehoge.jp-
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
        The Regents of the University of California.  All rights reserved.

FreeBSD 4.2-RELEASE (hogehoge) #0: Wed Jan 31 13:27:36 JST 2001

Welcome to FreeBSD!
 てな、具合ですね。  ただし、2016年現在、telnet サーバを起動しているマシンはほとんどないかと思われます。telnet の通信は暗号化されないままだからです。現在は telnet に変わって ssh が主流になっています。  ポート番号を指定して、そのポート番号を使用するサーバデーモンが生きているか確認することが出来ます。こちらの方はお手軽なのでまだ需要があります。  ポート番号は、/etc/services で定義されているポート番号のシンボルを使用することも出来ます。  以下に例を示します。
> telnet 192.168.0.2 smtp
Trying 192.168.0.2...
Connected to hogehoge.jp.
Escape character is '^]'.
220 hogehoge.jp ESMTP
quit
221 hogehoge.jp
Connection closed by foreign host.

9.2 ftp

 ネットワーク上でファイルを転送します。  ftp は、File Transfer Protocol の頭文字です。
> ftp [ホスト名]
 ホスト名は、/etc/hosts に記述しているものでも、フルドメイン名でも、IP アドレスでも OK です。
> ftp localhost
Connected to localhost.
220 仮名.ne.jp FTP server (Version 6.00LS) ready.
Name (localhost:ユーザ名): ユーザ名
331 Password required for ユーザ名.
Password: (パスワードはエコーバックされません)
230 User ユーザ名 logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bye
221 Goodbye.
 ftp サーバ上で、cd コマンドでディレクトリ移動したり、send コマンドでファイルを送ったり、recv コマンドでファイルを受信したりできます。  ftp サーバ上のコマンドは、OS や ftp サーバプログラムで異なりますので注意してください。  少なくとも、help コマンドか ? を入力すると、コマンドのヘルプが出力されますのでそれを参照してください。  セッションをクローズするときのコマンドは、どの OS でも ftp サーバプログラムでも同じ bye が通用するようです。

9.3 netstat

 ネットワークの状態を表示します。
> netstat [オプション]
 以下のような画面が表示されます。
> netstat
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp4       0      0  ns.local.ssh           pc01.local.1146        ESTABLISHED
tcp4       0      0  localhost.953          *.*                    LISTEN
tcp6       0      0  localhost.953          *.*                    LISTEN
tcp4       0      0  localhost.domain       *.*                    LISTEN
tcp4       0      0  ns.local.domain        *.*                    LISTEN
udp4       0      0  ns.local.netbios-dgm   *.*
udp4       0      0  ns.local.netbios-ns    *.*
udp4       0      0  localhost.domain       *.*
udp4       0      0  ns.local.domain        *.*
udp4       0      0  localhost.ntp          *.*
udp4       0      0  ns.local.ntp           *.*
Active UNIX domain sockets
Address  Type   Recv-Q Send-Q    Inode     Conn     Refs  Nextref Addr
c514bdc0 stream      0      0        0 c514be00        0        0
c514bd40 stream      0      0        0 c514bfc0        0        0
c514bf00 stream      0      0 c517b040        0        0        0 /tmp/.s.PGSQL.5432
c514bec0 stream      0      0 c517c6c0        0        0        0 /tmp/.iroha_unix/IROHA
c514be80 dgram       0      0        0 c514afc0        0 c514be40
c514bf80 dgram       0      0        0 c514afc0        0        0
c514afc0 dgram       0      0 c5148680        0 c514be80        0 /var/run/log
 詳しい説明は省略しますが、上記で簡単に説明すると、pc01.local というクライアントが、ssh でログインして作業中であるということがわかります。  ポート番号 953 を使うサーバプログラムが、IPV4 と IPV6 で接続待ち状態であることがわかります。  DNS サーバや NTP サーバが動作中であるということがわかります。

9.4 ping

 ホストへの応答をチェックします。  ICMP というプロトコルを使用して、ホストへのメッセージ到達をチェックします。
> ping  [オプション] ホスト名
 ホスト名は、/etc/hosts に記述しているものでも、フルドメイン名でも、IP アドレスでも OK です。  代表的なオプションには、以下のものがあります。
オプション文字列 意味
-c count  ホストへパケットを count 回送ることを指定します。  回数を指定しないと Ctrl-C を押下するまで 送りつづけます。
-s packetsize  パケットのサイズを指定します。  デフォルトでは、56 バイトです。 これは ICMP ヘッダデータの 8 バイトと合せて 64 ICMP バイトに なります。スーパユーザのみこのオプションを指定できます。
-t timeout  タイムアウトを、秒単位で指定します。タイムアウトすると、 受信パケット数にかかわらず ping が終了します。
 下記は、成功例です。
> ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.181 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.154 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.140 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=255 time=0.159 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=255 time=0.151 ms
^C
--- 127.0.0.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.140/0.157/0.181/0.014 ms
 下記は、失敗例です。
> ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
^C
--- 1.1.1.1 ping statistics ---
29 packets transmitted, 0 packets received, 100% packet loss
 注意したいのは、Windows システムでも、まったく同じコマンドがありますが、Windows では、デフォルトで4回送信したら処理を終了しますが、FreeBSD では、Ctrl-C を入力するまで処理をやめないということです。

9.5 ssh

 暗号化通信を使用して、他のコンピュータへログインします。
> ssh [ユーザ名@]ホスト名
 ホスト名は、/etc/hosts に記述しているものでも、フルドメイン名でも、IP アドレスでも OK です。  ユーザ名を省略すると、現在コマンド実行中のユーザ名でログインします。  うまくつながれば、プロンプトが返ってきますので、ユーザ名とパスワードを入力します。  あとは、通常の端末として使用することが出来ます。
> ssh ホスト名
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is 75:e2:df:ac:f1:b9:83:f1:37:23:be:1a:8f:29:c1:ca.
No matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)?  [yes] を入力します
Warning: Permanently added 'ホスト名' (ECDSA) to the list of known hosts.
Password for ユーザ名: パスワードを入力します
Last login: Mon Jan  4 06:31:00 2016 from リモートホスト
FreeBSD 10.2-RELEASE (GENERIC) #0 r286666: Wed Aug 12 19:31:38 UTC 2015

Welcome to FreeBSD!
 という具合です。  ここで、パスワード入力までの記述は、初回ログインするホストの場合のみ出力され、ssh のキーがクライアント側に登録されます。登録済であれば表示されません。