基本的に、ifconfig(IPアドレスなどネットワークの低水準の設定)、netstat(TCP/UDPパケットの統計表示)、route(ルーティングテーブルの設定)、top(タスクのモニタリング)、vmstat(仮想メモリの状況表示)、iostat(I/Oデバイスの状況表示)は覚えておこう。
ほかにもいろいろとあるからネットで検索してほしい。traceroute(接続経路を表示), nslookupとdig(名前解決), arp(IPアドレスとMACアドレスの対照表であるARPテーブルを表示。IPアドレスはパケットの送受信のアドレスだが、MACアドレスはそれぞれのハードウェアデバイス機器の識別番号)は覚えておいて損はない。
また、ifconfigは低レベルな設定ができるが、使いやすいもっと高レベルなツールやシステムが使われていることが多い。Red Hatならsysconfig、Debianならifupdown。ただし、最近はNetworkManagerを使うことがどちらのディストリビューションでも推奨されている。
ifconfigやnetstatは現在型遅れになりつつあり、今では新しいiproute2パッケージのipとかssコマンドを使えと言われ始めている。
また、ファイアーウォールについては基本的にiptablesを使う。ファイアーウォールでパケットフィルタリングをすることで、不正な通信をブロックできる。他にも、VPNというインターネット回線を使って仮想的な専用のネットワーク(たとえば社内の専用回線的なネットワーク)を作ることのできる技術もある。トンネリングという送信者と受信者をほかから見えないトンネルで繋ぐ技術もある。
そもそも、インターネットはそれぞれのネットワークが家庭やISPのルータによってつながったもの。
それぞれのルータの接続情報を代表ルータが集約し、ルーティングテーブルという経路表を作り出し、その経路表を全ルータに送る。
パケットのIPアドレスがローカルの中であれば、そのコンピュータにパケットを送信する。外部のものであれば、ルータはどこに送れば宛先に近づけるかを知っているので、ネットワークの外部のルータにそのパケットを送る。
IPアドレスは、そのホストのインターネット上の住所(アドレス)で、パケットの送受信先である。このIPアドレスは、ネットワーク部とホスト部に分かれている。
たとえば、IPアドレスが192.168.0.2である時、これをビットにすると、
11000000 10101000 00000000 00000010
となる。
ネットワーク部とホスト部を識別するために、サブネットマスクを使う。サブネットマスクは、ネットワーク部を1とし、ホスト部を0にしたアドレスのこと。
よって、
11111111 11111111 11111111 00000000
であれば、サブネットマスクは255.255.255.0となる。
また、それぞれのホストのネットワークを共有してくれるアドレス(たとえばルータ)をゲートウェイと言う。
サブネットマスクだけではなく、ブロードキャストアドレスを指定することもある。ブロードキャストアドレスは、パケットをブロードキャストするためだけに存在する。これはネットワーク部と同じアドレスを持ち、ホスト部が1となるアドレスとなる。上記の例では、192.168.0.255となる。
最後に、名前解決がある。このようなビット数値によるアドレスは、機械にとっては理解しやすいが、人間にとっては理解しづらい。そのため、人間に分かりやすい名前(hogehoge.co.jpのような)をつける。ここで、hogehogeの部分をホスト名、co.jpの部分をドメインと呼び、ホスト名は自由につけられる。
名前解決をしてくれるのはDNSという仕組みを用いたネームサーバ。ルータが兼ねていることもあるが、そうでなければISPの指定するネームサーバのアドレスを指定する。ネームサーバは/etc/resolv.confに記述する。DNSを含めてあらゆる名前解決をするソフトウェアのことを「リゾルバ」と呼ぶ。
ルータを用いて家庭内ネットワークを構築する際、静的にIPアドレスを与える(たとえば192.168.0.11ならば11の部分を手動で決める)こともできるが、DHCPを用いれば動的に自動で与えることもできる。DHCPを用いる場合、ネットワーク設定にはDHCPを用いることを指定するだけでよく、管理は楽になるが、IPアドレスがたまに変化することがあり、サーバを公開する場合には向いていない。もし、DHCP環境でサーバを公開する場合、ダイナミックDNSという仕組みを使って、IPアドレスがもし変わった場合はそれを定期的にDNSサーバに通知することができる。
32ビットのIPアドレスが表せるIPv4に比べて、IPv6では128ビットのIPアドレスが表せる。IPv6では石ころにすらIPアドレスがふれるぐらい、多くのアドレスが有り余っているとされる。
mii-tool や ethtool を使ってください。
[root@localhost]# ethtool eth0
現在の状態を確認。
[root@localhost]# ethtool -s eth0 duplex full
注意:
この手のツールは、モジュールにオプションを渡しているだけである。
そのオプションをカーネルが認識したかどうかは不明である。
ドライバによってはツールでの変更が出来ないものもある。
また、システムの再起動時には設定がクリアされるため
恒常的に変更したいのであれば、マニュアルファイルを読むべきである。
最近は(有線の)LAN 接続よりも、無線 LAN の導入に関心が集まっています。この問題が主因でクライアントのパソコンに Linux の導入をためらっている方もいるかも知れませんので、参考情報を載せておきます。(追加情報があれば、お願いします。)
Comparison of open-source wireless drivers
https://en.wikipedia.org/wiki/Comparison_of_open-source_wireless_drivers
Existing Linux Wireless drivers
https://wireless.docs.kernel.org/en/latest/en/users/drivers.html
List of Wi-Fi Device IDs in Linux
https://wikidevi.wi-cat.ru/List_of_Wi-Fi_Device_IDs_in_Linux
最近のノートブックでは、PCカード規格の接続端子が標準でついていないケースが増えています。その場合は、USB 2.0 端子へ直接つなぐタイプの無線子機を検討しても良いでしょう。
デスクトップ型PCでは、よく一般に売られているPCカード規格(PCMCIA)に対応した無線LANカードの利用は、専用の接続端子が標準でついていないためできない場合があります。この場合の対処としては、次のような方法が考えられます。
この種の製品は、国内の主要メーカーから販売されているので、入手は容易です。Webブラウザから設定が可能な機種もあります。
現在発売されている製品の中に、メーカーで Linux をサポートしている製品は見当たらないようですが、OS の違いによる影響はあまり受けないので、動作する可能性が高いと考えられます。
近年の Linux は udev によって、デバイスの抜き差しに対応できるようになったので、デバイスを認識しないトラブルは少なくなってます。デバイスが消える原因として、手動の設定が network manager や systemd-networkd の自動設定と衝突している可能性のほうが大きいでしょう。
まず ip a(または ip link )コマンドでデバイス名と認識状況を調べてください。つぎに journalctl -u systemd-udevd や dmesg | grep -i eth を実行して、システムログからデバイスの命名がどう失敗してるのかを調べると、手がかりがあるかもしれません。
「ワイヤレス接続モニタ」という GNOME 付属のアクセサリーがあります。
デスクトップの下部に表示されるパネル上でマウスを右クリックし、 [パネルに追加] > [インターネット] > [ワイヤレス接続モニタ] を開くと、通知アイコンがパネルに追加されます。
ping -b 192.168.0.255 や arp を使う。
適当なホスト名、ドメイン名をつけてやってください。example.com なんかは実際に使われないことになってるので、おすすめ。
systemd フリーなディストリでは、/etc/hostname と /etc/hosts をテキストエディタで書き換える昔ながらの方法です。
/etc/services ファイルにあります。
root で以下のコマンドを実行すれば調べられます。
参考:
/etc/hosts ファイルに名前を書いておいてください。
192.168.0.2 hoge.hogehoge hoge 192.168.0.3 fuga.hogehoge fuga
Windows のほうの C:¥windows¥hosts (9x系列)、%Systemroot%¥system32¥drivers¥etc¥hosts (NT系列) を同じ書式のファイルを用意すると、どちらからでも逆引きできるよ。
host コマンドを使ってください。dig コマンドも使えます。
うまく行かない場合は /etc/resolv.conf ファイル や DNS の設定を確認してください。
/etc/resolv.conf に DNS サーバを指定していますか?
nameserver 94.140.14.140 nameserver 94.140.14.141
以上が昔ながらの設定ですが、最近は大半のディストリビューションに Network Manager が入っていて、resolv.conf を上書きします。なので network manager のほうを設定しましょう。トレイアイコンを右クリックして、接続を編集します。DNSサーバーはカンマでセカンダリを書けます。端末画面で nmtui でも設定できます。
最近の Ubuntu などには、さらに systemd-resolved が入っていて、Network Manager の設定さえも上書きします。なので Systemd のほうを設定しましょう(手順はこちら)。
Ctrl+C で止めてください。あるいは -c オプションで回数を事前に指定 ($ ping -c 5 www.yahoo.co.jp など)。
traceroute www.yahoo.co.jp などとしてください。
dhclient コマンドを使います。
$ su # dhclient -r
でIPアドレスを解放し、つづいて再取得します。
# dhclient
プロバイダのデフォルト DNS を大手のパブリック DNS に切り替えてみても遅い、という場合、ルーターでパケットが衝突している可能性が考えられます。衝突回避のために、DNS への同時問い合わせをやめて逐次問い合わせにするには、以下のようにします。
まず Network Manager の接続名を調べます。
nmcli connection show
その接続名のプロファイルに、逐次問い合わせのオプションを追加します。トレイアイコンを右クリックして接続を再開することで反映されます。
nmcli connection modify eth0 ipv4.dns-options "single-request-reopen" nmcli connection modify eth0 ipv6.dns-options "single-request-reopen"
最近の Ubuntu のように systemd-resolved が入っている場合は、/etc/systemd/resolved.conf にテキストエディタで、AnalyseOptions=single-request-reopen を追加するかコメントアウトして下さい。sudo systemctl restart systemd-resolved で反映されます。
はい。日付と時刻の調整という設定画面で、「ネットワークタイムプロトコルを有効にする」という項目にチェックを入れます。
ntp.ring.gr.jp (Ring Server Project の NTP サーバによる国内サービス) time.nist.gov (National Institute of Standards and Technology- 米国標準技術局の運営)
これらはその一例です。