オタクでない人でも「TCP/IP 」について聞いたことがあると思いますが、それが何であるか、またはコマンドラインを使用して(using the command line)Linuxサーバーで構成する方法を誰もが知っていますか?
最初に基本的な用語を定義するのに役立ちます。少なくとも、理解を深めるためのフレームワークを開発することができます。TCP/IPも例外ではありません。
用語に関するこのセクションは、完全なリストではありません。Linuxでネットワーキングと(Linux)TCP/IPファイルを構成する方法を理解するための旅を始めるための基礎を提供します。
The *Nix World
*nixが何を意味するのか疑問に思ったことはありますか?UnixとLinuxは(Unix and Linux are related)どのように関連していますか(それぞれのさまざまなバージョンのすべては言うまでもありません)?
*nixは、ワイルドカード(アスタリスク)を使用して Linuxおよび/またはUnix (または任意のディストリビューション)を参照する方法です。
* Nixは1960年代後半に開発されました。AT&Tベル研究所(T Bell Labs)はほぼ同時にUnixを開発しました。さまざまな反復と開発を通じて、Linuxも誕生しました。
これらの並行した革新の結果、コマンドラインを介して1つのサーバーにインストールを実行する方法を学ぶと、さまざまなUnixまたはLinuxサーバー上の他の多くのタスクと互換性があると思われるスキルを習得できます。
マニュアルページ–あなたの指先での情報(Man Pages – Information at Your Fingertips)
Googleと同じように、Linuxには、ユーザーが必要なリソースを見つけることができる独自の検索および調査ツールのセットがあります。これらのリソースは、「マニュアルページ」として知られています。Linuxサーバー(またはLinuxベースのオペレーティングシステム)にログインすると、コマンドラインアプリケーションを開いて、インタラクティブなドキュメントファイルに検索語を入力するなど、調査したい内容を入力できます。
Linuxユーティリティ、ツール、デーモン、スクリプト(daemon, script)など、調査したいトピックを選択した場合は、「man」と入力してから単語を入力することで検索できます。これを行う方法については、この記事の後半で学習します。
マニュアルページは使いやすいです。いくつかの単語を入力し始めるだけで、 (Just)LinuxOSが情報を返し始めます。特定のトピックのマニュアルページがない場合、Linuxはそれを教えてくれます。
ほとんどの場合、マニュアルページは、それらが表示されるソフトウェアバージョンに対してかなり正確です。たとえば、10年前のLinuxサーバーにログインしている場合、マニュアルページにはそのバージョン(および年齢)に関連する情報が表示されます。(Linux)
マニュアルページは使いやすく正確ですが、いくつか注意点があります。これらの警告を画像で説明しましょう。
下の画像では、 ARP(ARP)のマニュアルページは、ARPが廃止され(「メモ」セクションの下)、代わりにipneighを検索する必要があることを示しています。(ip neigh)その表記法では、「man ip neigh」と入力して、交換用のツール/プロトコルに関する情報にアクセスすることをお勧めします。
ただし、「man ip neigh」と入力しても、「ipneigh」のマニュアルページは検索されません。代わりに、2つのマニュアルページを検索します。1つは「ip」用で、もう1つは「neigh」用です。
「manipneigh」と入力するとmanページが表示されるのは事実ですが、細心の注意を払っていない限り、実際には探していたものではないことを見逃す可能性があります。
ダッシュを追加することもできます(置換ツールを参照するときにmanページに表示されるものではありませんが)…したがって、ダッシュを追加して「man ip-neigh」と入力すると、これも正常に機能しますが、正しくありません。また。
「 manip-neighbour 」と入力してみてください(英国式のつづりに注意してください)。その特定のフレーズを入力すると、ARPのマニュアルページを置き換える(またはARPプロトコルを置き換える)ための正しいマニュアルページが表示されます。要点は次のとおりです。必要なものが見つからない場合は、目的のマニュアルページが表示されるまでさまざまな組み合わせを使用してみてください。
例として、nslookupツールのマニュアルページを検索してみてください。これを行うには、「mannslookup」と入力します。これを行うと、以下の画像/スクリーンショットのようなマニュアルページが表示されます。nslookupツールについて知りたいことをすべて学びます。
画面にmanページが表示されたら、下にスクロールして、読み取り、適用、テスト、さらにはmanページを閉じることができます(文字「q」を入力してmanページを自動的に閉じることにより)。
存在しないマニュアルページをリクエストすると、Linuxは、そのマニュアルページのエントリがないというフィードバックを提供し、別のマニュアルページを試してみます。
IPv4およびIPv6(IPv4 and IPv6)
IPv4とIPv6はどちらも技術的には同じですが、私たち人間には同じようには見えません。これらは、ローカルエリアネットワーク( LAN(LAN) )上のマシンまたはデバイスを識別する手段です。それらは、 LAN(LAN)内のデバイスを識別する方法でプライベートです。
IPv4は、ドット/ピリオドで区切られた数字を使用します。私たちのほとんどは、 IPv4(IPv4)形式を使用してプライベートネットワークに接続されているコンピューターに表示されるIPアドレスの種類に精通しています。
ネットワーク上のコンピューターにもIPv6アドレスがありますが、見た目は異なります。IPv6は、コロン(:)で区切られた英数字で構成されます。
では、 IPv4(IPv4)とIPv6の違いは何ですか?ネットワーク名のように考えてください。(Think)1つは名のようなもので、もう1つは名前です。両方の名前は同じ人(またはこの場合はコンピューター)を指しています。通常、姓と名が異なるのと同じように、IPv4の「(IPv4 “)名前」は、両方が同じマシンを指している場合でも、 IPv6の「名前」とは異なります。(IPv6 “)
Carla Schroederは、IPv4とIPv6に関する読みやすく便利な記事(useful article about IPv4 and IPv6)を書いています。
Linuxサーバー(およびsuとsudo)でのルートアクセス(Root Access on a Linux Server (and su and sudo))
完了する必要のあるタスクの多くには、rootアクセス(別名Administratorまたはスーパーユーザー)が必要です。これは、これらのユーティリティやアプリの多くが機密性が高いため、セキュリティ上の理由から制限されているためです。
rootとしてログインするか、スーパーユーザーアクセス(su)をトリガーする別の解決策は、コマンドの前に「sudo」を付けて、その特定のコマンドをスーパーユーザー/ rootとして実行する必要があるが、後続のコマンドは実行しないことをLinuxマシンに通知することです( 「sudo」ディレクティブが前に付けられます)。
「sudo」が使用され、コマンドの前に付加されている場合、LinuxはスーパーユーザーのIDと権限を認証するためにsuパスワードを要求します。
ネットワーキングプロトコル(Networking Protocols)
Linuxについて議論するときは、考慮すべきさまざまなプロトコルがあります。この記事の主要な2つのプロトコルは、TCPとIPです。
伝送制御プロトコル(TCP)(Transmission Control Protocol (TCP))
伝送制御プロトコル( (Transmission Control Protocol)TCPと呼ばれることが多い)は、名前が示すように、パケットの伝送に使用されるプロトコルです。
トラフィック制御(Traffic Control)(tc) と呼ばれるLinuxツールを含むさまざまなツールの説明については、以下を参照してください。
TCPは、パケットがある場所から別の場所に移動する方法をLinuxオペレーティングシステムに指示します。また、ネットワークトラフィックを制御し、情報のパケット(ある場所から別の場所に移動する データのフォルダーなど)の送信を指示します。(data)
これが、このプロトコルが伝送制御プロトコル(Transmission Control Protocol)(TCP) と呼ばれる理由です 。
インターネットプロトコル(IP)(Internet Protocol (IP))
インターネットプロトコル(Internet Protocol)は、一般的にその頭字語、IPによって参照されます。
IPの場合、パケットを送信するためのより広い領域(インターネット)があります。(Internet)それは、インターネットと呼ばれる、より広く、より長く、より移動の多い超高速道路を持っているようなものです。TCPはネットワークを介したパケットの移動を制御しますが、IPはインターネットを介したパケットの移動を制御します。
ICMPプロトコル(ICMP Protocol)
ICMPは、(ICMP)インターネット制御メッセージングプロトコル(Internet Control Messaging Protocol)の略です。これはほとんどのLinuxディストリビュー(Linux)ションで使用できるプロトコルですが、すべてのLinuxディストリビューション(Linux)で使用できるとは限りません。これは、現在のCentosインストールにmanページがないことによって証明されました。
一見、この特定のプロトコルはそれほど重要ではないように見えるかもしれませんが、実際にはそうです。ICMPは、パケットが宛先に適切に到達しない場合にエラーメッセージを提供する責任があります。ICMPは、送信されている情報のパケットの配信(または受信)に関するステータス更新を受信するために不可欠です。
ユーザーダイアグラムプロトコル(UDP)(User Diagram Protocol (UDP))
User Diagram Protocol(UDP)は、Transmission Control Protocol(TCP)と同様に、あるポイントから別のポイントに情報のパケットを送信するためのプロトコルです。TCPの場合、プロセス/送信の一部として、パケットが正常に配信されたことを確認するため、 UDPよりも信頼性が高くなります。
UDPの場合、検証プロセスがないため、パケットが正常に送信されたか、エラーなしで受信されたかがわかりません。このように、それは利用するのに十分簡単なプロトコルですが、検証可能ではなく、認証することもできません。
Linux構成(Linux Configuration)
Linuxオペレーティングシステム で利用可能ないくつかの構成ファイルがあります。
たとえば、LinuxマシンでApacheサーバーを実行している場合、 Apache構成ファイルは重要です。これらのファイルは、Apache Webサーバーに、ドメイン、より具体的には、そのサーバーでホストされているサイトで何が起こっているかを知らせます。
構成ファイルにはhttpd.confというラベルが付いている場合があります。時々それはapache.confとしてラベル付けされます。または、完全に異なるラベル/名前である可能性があります。構成ファイルは、あるサーバーの1つの場所にある場合と、別のサーバーのまったく別の場所にある場合があります。
幸い、特定の構成ファイルを見つけるのに役立つコマンドがあります。たとえば、次のように入力して、「httpd.conf」構成ファイルが存在する場合はそれを見つけることができます。
find / -name “httpd.conf”
最初の単語「find」は、使用しているコマンド/ユーティリティ(この場合は「find」ユーティリティ)をLinuxに知らせます。(Linux)コマンドラインの2番目のコンポーネントは「/」です。これにより、検索ユーティリティは、サーバーのルートレベルから開始するパスを検索する必要があることを認識できます。
より具体的な場所を探している場合は、「/ etc」のようなものを使用して、 Linuxにetcディレクトリで開始し、そのパスをたどることを通知できます。Linuxは冗長な場所を検索する必要がないため、特定のパス/場所を提供することで、プロセスをスピードアップできる可能性があります。
「-name」オプションは、ファイルまたはディレクトリの名前で探しているものをLinuxに知らせます。(Linux)名前を引用符で囲むと便利です。また、検索時にワイルドカードとしてアスタリスク(*)を使用することもできます。
「/etc」ディレクトリ/パス内の構成ファイルとディレクトリの例は次のとおりです。
- pam.d –認証モジュールに関連するユーティリティを含むディレクトリ。例として、「su」と「sudo」があります。
- sysconfig –電源管理、マウスなどのコンピューターの機能を含むディレクトリ。
- resolv.conf – Linuxマシンがその容量で使用されている場合に、ドメインネームサーバーの機能を支援するファイル。
- サービス–このファイルには、 (services)Linuxマシンで使用可能な接続(つまり、開いているポート)が含まれています。
ファイル、パス、またはユーティリティが廃止または廃止されているかどうか疑問に思っている場合は、マニュアルページを使用して確認してください。これは、最新のものと変更されたものを把握するのに役立つ方法です。
Linuxファイルシステムを理解する(Understanding the Linux File System)
多くのLinuxディストリビューションでは、構成ファイルは「 (Linux distributions)etc/sysconfig」パスの下のnetwork-scriptsディレクトリにあります。それらがそこにない場合は、同様の場所/パスがある可能性があります。この特定のケースに存在するファイルは、以下のスクリーンショットに示されています。
以下のスクリーンショットでわかるように、2つの構成ファイルがあります。それらのそれぞれは、それぞれのインターフェース(すなわち、ifcfg-eth0)に従ってラベル付けされます。
構成ファイルの前には、 ifconfigコマンド(ifconfig command)を置き換える「 ifcfg 」が付いています(インターフェイスファイル名の一部になります)。とは言うものの、ifcfgはIPv6(IPv6)と互換性がないため、現在は多少置き換えられています。
2つのインターフェイス参照(ifcfg-eth0とifcfg-lo)は、特定のタイプのインターフェイスを参照します。Linux開発者はこの分野で役に立ち、ファイル名の形で定義と方向性を提供しました。「 eth0 」で終わるインターフェースの場合、「イーサネット」を介して接続されているか、イーサネット機能を備えているインターフェースです。
「 eth 」の文字を使用すると、正しい方向を示します。「eth」に続く番号は、デバイスの番号を示します。したがって、次のイーサネットデバイスは「ifcfg-eth1」などのようになります。
「lo」で終わるファイル名は、「ループバック」インターフェースを指します。「 localhost」とも呼ばれます。これは、技術的には実際のネットワーク接続ではないネットワーク接続です。これにより、プロセスはネットワークを介して通信せずにデバイス上で通信できるようになります。この特定のインターフェースについて考えるときは、「仮想」と考えてください。
すべてのLinuxディストリビュー(Linux)ションはループバック(またはローカルホスト)を持つことができ、通常はデフォルトでループバック用に設定されています。「-lo」で終わるインターフェースを使用します。ローカルホストのIPアドレスは通常127.0.0.1です。多くの場合、ループバック仮想インターフェイスを使用して、接続をテストし、他の潜在的なネットワークの問題を除外できます。
ファイル(The Files)
構成ファイルを編集する(およびそれらを表示する)には、さまざまな方法があります。1つの方法は、コマンド「 vi」の後にファイル名を付けてアクセスする「 viエディター」を使用することです。(vi editor)この場合、「vi ifcfg-eth0」(引用符なし)と入力すると、その特定のインターフェース(eth0)のネットワーク情報を表示できます。
ただし、従来の方法で実行し、ifcfgのマニュアルページにあるネットワーク構成の手順に従うことをお勧めします。
これは、技術者でない人にとっても簡単かもしれません。viエディターを使用するには、細部に少し注意を払う必要があるため、細部を重視する場合(または、既にプログラマーまたはシステム管理者である場合)、Linux構成ファイルを操作する場合はviエディターが最適なソリューションになる可能性があります。
マニュアルページにアクセスする際に、ifconfigスクリプトを置き換えたifcfgスクリプトに関する情報を確認できます(上のマニュアルページのスクリーンショットに示されているように)。また、 Linuxディストリビューション(Linux)のインターフェースのリストを見ると、ifupコマンドとifdownコマンドに気づきます。それらも、manページで確認できます。
マニュアルページのスクリーンショットを下の画像に示します。マニュアルページに表示されているように、LinuxでのTCP / IPファイルのセットアップと構成で参照(および変更)できる追加のLinuxTCP/IPファイル(およびそれらのファイルに到達するためのパス)があります(Linux)。
viエディターなどのコマンドラインテキストエディターを使用して構成ファイルを表示すると、いくつかのオプションが定義されていることに気付くでしょう。たとえば、ネットワークインターフェイスを見ると、すべて大文字の単語、等号(=)、別の単語が続く場合があります。
たとえば、「ONBOOT」というディレクティブがあり(ONBOOT)、構成オプションの例として「ONBOOT=yes」と表示されている場合があります。他にもいくつかの構成ポイントとオプションがあります。たとえば、もう1つはNETMASKです。
構成ディレクティブ「NETWORKING」が表示された場合は、その後に「yes」が続くはずです。その後に「no」が続く場合は、ネットワークインターフェイスがネットワーク用にアクティブ化されていないことを示しているため、問題が発生している可能性があります。
ここに、今説明した状況を修正するための段階的なプロセスがあります。
- 安全のために、構成ファイルのコピーを作成してください。これを行うにはいくつかの方法があります。最も簡単な方法の1つは、コマンドウィンドウを使用することです。
次のように入力します。cpifcfg-eth0ifcfg-eth0_20200101(cp ifcfg-eth0 ifcfg-eth0_20200101)
次に、次の行に次のように入力しますmv ifcfg-eth0_20200101 /home/mydirectory/ifcfg-eth0_20200101
これにより、作成したファイルコピーがバックアップに使用しているディレクトリに移動します。
- 構成ファイルのバックアップを作成したので、次はその構成ファイルに変更を加えます。viエディターを使用している場合は、次のように入力します
。vi ifcfg-eth0
これを実行すると、ファイルがターミナル/コマンドアプリケーションで開きます(トリガーしたときにマニュアルページが開くのと同じ方法です)。
構成ファイルを開いたら、「NETWORKING=no」を含む行を探し、その行を削除するか、「NETWORKING=yes」に変更します。これは「cwviエディタの」ディレクティブ。スラッシュを入力すると、viエディターに何かを検索していることを伝えることになります。この場合、「NETWORKING」を検索していることをエディターに通知し、検索されたら(マウスをその場所に向けて)、右矢印キーを使用して「no」という単語に移動できます。
「no」という単語が表示されたら、「n」で停止して「cw」と入力すると、「no」を「yes」に変更できます。「cw」は単語の変更を表し、Linuxでは単語全体をある単語(「no」)から別の単語(「yes」)に変更できます。1文字だけを変更したい場合は、「r」を使用して1文字または文字を置き換えることができます。
スクリーンショットは、このプロセスを以下に示しています。
- 構成ファイルを保存した後(つまり、escと入力してINSERTモードを終了し、次にダブルZを入力してファイルを保存します)、サービスまたはコンピューターを再起動します。これは、いくつかの異なる方法で行うことができます。コンピュータを再起動する1つの方法は、次のコマンドラインを入力することです
。shutdown-r now
shutdownコマンドは、Linuxマシンにシャットダウンするように指示します。-rオプションは、それが単なるシャットダウンではなく、再起動して今すぐ実行することをコマンドに指示します。
ヒント:(Tip:)コンピューターまたはサーバーがいつ再起動を完了したかを知りたい場合は、「ping」と入力してから、コンピューター/サーバーのパブリックIPアドレス(またはLinuxサーバーでホストされているサイトのドメイン名)を入力します。
pingコマンドを使用すると、サーバーが「ping可能」ではないことがわかります(これは再起動中に発生します)。サーバーが正常に再起動すると、pingは肯定応答で応答し、再起動が成功したことを示します。
以下は、上記のリストの手順を説明するのに役立ついくつかの画像です。
ステップ1:
ステップ2:
ヒント:(Tip:)サーバーの世界では、特異なものはないことに注意してください。たとえば、特定のインターフェイス(この場合はeth0)の構成を変更できますが、それはネットワーク上の1つのインターフェイスであり、別のサーバーの影響を受ける(または影響を受ける)可能性があります。
したがって、上記の例では、サーバーを再起動することにより、ネットワークデバイスも再起動します。これはこのインターフェイスの唯一のオプションではありませんが、このインターフェイスは再起動するコマンドの影響を受けます。
/etc/hosts File(s)
/etc/hostsファイルは存在する場合と存在しない場合があります。存在する場合は、構成で使用される場合と使用されない場合があります。たとえば、ファイルを直接管理するのではなく、ホスト構成を処理する別のシステムがある場合があります。また、hostsファイル自体も異なります。たとえば、次の画像に示すように、 IPv4とIPv6では(IPv6)構成の処理が異なります。
Configuration Files; Locations/Paths; Terms; and More
その他の役立つファイル名とファイルの場所は次のとおりです。
- / etc / sysconfig / network-scripts /(構成ファイルのパス)
- / etc / sysconfig / network-scripts / ifcfg-eth0(構成ファイル)
- / etc / hosts(設定ファイル)
- /etc/resolv.conf(ネームサーバー情報を含む構成ファイル)
多くの場合、システムまたはサーバーソフトウェアは構成ファイルを自動的に作成します。また、DHCPが使用されている場合、静的IPアドレスは使用されないため、オンザフライで計算されるネットワーク構成の他の側面があります。
次のコマンドライン(CL)コマンドは、ほとんどのLinuxディストリビューションで使用されていました(または使用されています)。それらが廃止または廃止された場合、置換コマンドがリストされます。
- route(obsolete / deprecated):ルートの表示と編集に使用されました。iprouteに置き換えられました。
- hostname:マシンのホスト名を表示または操作および編集するために使用されます。
- netstat:ネットワーク接続、ルーティングテーブル、インターフェイス統計、マルチキャストメンバーシップなどを表示します。
- arp :(obsolete / deprecatedIPv4情報を表示するために使用されていました。具体的には、ネットワークネイバーキャッシュ。IPv6はネットワークアドレスになり、ピリオドで区切られた4つの数字のIPv4コレクションに取って代わりました。(IPv4)これらの変更に照らして、この廃止されたコマンドはipneighに置き換えられました。
- ip:IPは「インターネットプロトコル」と究極のWAN(ワイドエリアネットワーク)を表すだけでなく、システム管理者またはコンピュータユーザーがTCP/IPパラメータを表示したり次のように設定したりできるユーティリティでもあります。必要です。
- tc :これは「トラフィック制御」の略で、 (tc)Linuxマシン でのインバウンドおよびアウトバウンドトラフィックの管理を支援するユーティリティです。
構成ツール:GUIと コマンドライン(CL)(Configuration Tools: GUI Vs. Command Line (CL))
TCP/IPを含むネットワーキングの構成を処理するためのグラフィカルユーザーインターフェイス(GUI)メカニズムを示しています。
最初のイメージはAppleMacGUI(System Preferences > Networking)で、次の2つのイメージはWindowsオペレーティングシステム(Windows Operating System)のイメージです(バージョンによって異なります)。スクリーンショットでわかるように、 Microsoftのコントロールパネル(Microsoft Control Panel)とネットワーク接続(Network Connections)を介してアクセスします。
GUIとテキストエディタまたはコマンドライン(CL)の長所と短所(Pros and Cons of GUI Versus Text Editor or Command Line (CL))
多くの人は、使いやすさ、視覚的な表現、全体的な単純さからグラフィカルユーザーインターフェイス(GUI)を好みますが、問題のトラブルシューティングと修正を行うには、構成ファイル(この場合はネットワーキングに関連する)を理解しておくと役立ちます。
最初にGUI(GUI)を取得することもできますが、万が一の場合に備えて、十分な情報を得ることができます。また、必ずしもGUIを備えていない(またはまだ持っていない)オペレーティングシステムもあります。準備しておくと役に立ちます。
次のセクションでは、構成ファイルとそのアクセス方法、更新方法、およびファイルとユーティリティの管理について説明します。
Linuxコマンドライン(CL)ツール、ユーティリティ、スクリプト、およびデーモン(Linux Command-Line (CL) Tools, Utilities, Scripts, and Daemons)
Linuxディストリビュー(Linux)ションで利用できるツールはたくさんあります。繰り返し(Again)ますが、他のコマンドと同様に、これらのツールがさまざまなディストリビューションでどのように使用されるかには類似点(および相違点)があります。場合によっては、ツールを利用できますが、最初にインストールする必要があり、インストールプロセスはさまざまです。
コマンドラインツールは、シェル(shell)と呼ばれることが多く、初期にはターミナル(terminal)と呼ばれていました。他の用語もありますが、一般的には、ユーザーがウィンドウにコマンドを入力してオペレーティングシステムにアクセスできるようにするアプリケーションです。
いくつかの例を見てみましょう。1つ目はWindowsオペレーティングシステムのもので、 (Windows)Windowsユーザーにはなじみがあるように見えます。CMDと入力すると、ツールが開きます(下のスクリーンショットを参照)。
2番目のスクリーンショットは、ほとんどのApple(Apple)コンピューターにプリインストールされているターミナル(Terminal)と呼ばれるアプリケーションのスクリーンショットです。
NSLookup(nslookup)
nslookupの場合、nsはネームサーバー(nameserver)を表し、コマンドのルックアップ(lookup)部分は情報の「ルックアップ」です。したがって、このツールの名前が示しているのは、ネームサーバーを介して一般的に利用可能な情報を検索するということです。
NSLookupは便利なツールです。この場合、eBayに関する情報を検索するために使用しています。そのために、「nslookup ebay.com」と入力すると、下の画像に示されているものと同様の情報が表示されます。
コマンドはスクリーンショットの上部に表示されます(個人情報がぼやけた後)。次に、そのリクエスト(nslookup )からの出力が、サーバー(Server)(パブリックIPアドレス)、特定のIPアドレス(IP address)など の情報とともにその下に表示されます。
交通管制(tc)(Traffic Control (tc))
もう1つのツールは、「トラフィック制御」ツール(「tc」とも呼ばれます)です。これは、データパケットのスケジューリングと処理を可能にするツールです。
このコマンドは、パケットがネットワーク上をどのように移動するかを示します。(how)その方法(how)の側面には、タイミング、速度、デバイスなどの質問への回答が含まれます。トラフィック制御(Traffic Control)(tc)の使用に関するコマンドライン(CL)表現は次のとおりです。
一部の人にとっては「ぎこちない」ように見えるかもしれませんが、コマンドラインの各単語は重要なことを表しています。リストは次のとおりです。
- tc:これはツールであり、この場合は「トラフィック制御」(別名「tc」)です。これは、コマンドラインアプリケーション/ソフトウェアにどのLinuxツールを使用するかを指示します。
- qdisc:この省略形は、キューイングの規律(queuing discipline)を表し、単純なスケジューラーを説明する別の方法です。
- 追加(add):構成(はい、技術的にはファイル)を構築しているので、コントロールに追加(adding)していることをツールに伝えています。
- dev eth0:「dev」は「デバイス」を指し、デバイスを定義しようとしていることをツールに通知します。この場合の「eth0」は、デバイスへの参照です。これは、デバイスラベルのグラフィカルユーザーインターフェイス( GUI )に表示されるものと似ていることに気付くでしょう。
- ルート(root):これは、ルートレベルまたは出力からのアウトバウンドトラフィックを変更していることをツールに通知します。
- netem:この単語は、「ネットワークエミュレータ」というフレーズを表します。ハードウェアネットワークではないかもしれませんが、同じものをエミュレートしています。これは、 Parallelsソフトウェアが(Parallels)Appleコンピュータ用のWindowsソフトウェアをエミュレートする方法に似ています。確かに、これはまったく異なるソフトウェアですが、netemがネットワークをエミュレートしているのと同じようにエミュレーションソフトウェアです。この場合、netemはLAN(ローカルエリア ネットワーク)ではなく、 WAN(ワイドエリアネットワーク)を表します。
- delay:この単語は、トランザクションの「遅延」コンポーネントを変更していることをtcツールに通知します。
- 400ms:遅延に影響していることはすでにツールに伝えましたが、遅延に影響している量を定義する必要があります。この場合、400ミリ秒です。
ネットワーク管理者(Network Manager)
Network Managerの目的は、ネットワーク構成を簡素化および自動化することです。DHCPユーザーの場合、ネットワークマネージャー(Network Manager)はIPアドレスを取得し、デフォルトルートを置き換え、ネームサーバーを自動的に交換できます。
ネットワークマネージャ(Manager)を使用するためのnmtuiツールは、すべてではありませんが、ほとんどのLinuxディストリビュー(Linux)ションで利用できます。また、一部のツールは「利用可能」であるがまだ利用できないことに注意してください。つまり、インストールする必要があり、必ずしも問題のLinuxディストリビュー(Linux)ションにプリインストールされているとは限らないツールやデーモンがいくつかあります。
その他のネットワーキングトピック(Other Networking Topics)
TCP/IPLinuxディストリビューション(Linux)を扱う場合に特に魅力的な多くの側面があります。Linux(Don)インストール(Linux)内で手動ページ(別名manページ)を利用できることを忘れないでください。したがって、これはすべきでないことの一種の無関係なリストのように見えるかもしれませんが、いつでもマニュアルページを使用して何をすべきかを理解することができます。
ルーターとしてのLinux(Linux as the Router)
最近では、ほとんどの人がルーティングのタスク専用のハードウェア(つまりルーター)を使用してネットワークルートタスクを管理しています(manage the network route task)。
多くの場合、それはルーターが家庭やオフィスのインターネットパッケージ/契約を扱うパッケージの一部であるためです。顧客は通常、月額(または年額)のレンタル/リース料金を支払うか、ルーターを購入する必要があります。
どのように処理されても、 Linux(Linux)がルーターとして機能することは可能ですが、ルーターとして機能する必要はほとんどありません。上記のシナリオは、Linuxのほぼ疑似的な非推奨の状況を生み出しますが、それはLinux(Linux)が(Linux)完全にゲームから外れていることを意味するわけではありません。必要に応じて、 Linux(Linux)サーバーをハードウェア(および後続のソフトウェア)ルーターとして設定することができます。
IPルート(以前の「ルート」)(IP Route (Formerly “Route”))
次の画像は、「ルート」のマニュアルページとそのツールで可能なディレクティブのスクリーンショットを示しています。
SNORT –侵入者検知システム(SNORT – An Intruder Detection System)
Snort Softwareは、Martin Roeschによって開発され、CiscoSystemsによって買収され(Martin Roesch and since acquired by Cisco Systems)たオープンソースの侵入検知システム(Intrusion Detection System)(IDS )です。TCP/IP層を利用するルールに基づいて動作します。これらのルールを定義すると、ネットワークを保護するための侵入を識別できます。
How to Set Up Linux > TCP/IP Settings for Linux
次のミニチュートリアルは、 Linux(Linux)の世界 で遭遇する可能性のあるいくつかの一般的なタスクに役立ちます。
時間は急速に変化することを覚えておいてください。そのため、マニュアルページとGoogleでの検索を使用して、次の手順を確認し、仕事をより良くする可能性のある他のツールがないことを確認すると便利です。この記事の執筆時点では、そうではありません。
チュートリアル01:Linuxマシンへの静的IPアドレスの割り当て(Tutorial 01: Assigning a Static IP Address to a Linux Machine)
最初に尋ねる質問は、コンピューター/サーバーに静的IPアドレス(変更されないもの)または変更可能なIPアドレス(DHCP –動的ホスト構成プロトコル(DHCP – Dynamic Host Configuration Protocol)など)が必要かどうかです。これが(サーバーではなく)パーソナルコンピュータである場合、インターネットへのアクセスにDHCPを使用している可能性があります。
つまり、静的IPアドレスをコンピューターに割り当てることをいじくり回す必要はありません。インターネットサービスプロバイダー(ISP)および提供/リースされているハードウェアは、インターネットに接続できるように、オンザフライでIPアドレスを自動的に計算します。つまり、静的IPアドレスが必要ない場合は、サーバー以外のコンピューターでは動的に変更するIPアドレスで十分です。
サーバーがあり、他の人がサーバーにアクセスできるようにする必要がある場合(つまり、自宅の外、WAN/internet、非LAN)、使用しているドメインがサーバーにマッピングされるように、静的IPアドレスが必要になります。ドメインに割り当てられたホスティングネームサーバーを介して、または静的IPアドレスを介して直接アクセスできます。
誰もあなたの家の外であなたのコンピュータやサーバーにアクセスする必要がない場合、誰も静的IPアドレスを使用していないので、IPアドレスの変更(動的;非静的)は問題ありません。
注:一部の人々は、パブリックアクセスにDHCP IPアドレスを使用しています(はい、サーバーとしても)が、
- そうするためには非常に技術的な知識のある人が必要なので、それほど一般的ではありません。
- 静的IPアドレスよりも(その性質は絶えず変化するため)維持するのははるかに困難です。
静的IPアドレスが必要な場合は、先に進んでここの手順に従ってください。そうでない場合は、このセクションをスキップできます。
ご覧のとおり、コマンド(上に表示)には、行の先頭に「sudo」が含まれています。「su」コマンド(スーパーユーザー)を使用してスーパーユーザーとしてログインすることは可能ですが、「sudo」を使用すると、その1つのコマンドのみがスーパーユーザーとして実行されます。
もう1つの方法であるスーパーユーザーとしてログインすると、すべてのタスクをスーパーユーザーとして完了できるため、必要な処理をより簡単に実行できます。
ただし、それに伴ってセキュリティリスクが発生します。そのため、sudoを使用してコマンドを開始し、アプリが(必要に応じて)パスワードを要求して、そのタスク/コマンドのスーパーユーザーとしてコマンドを完了することを許可する方が安全です。
選択はあなた次第であり、より簡単な方法に基づく必要があります。以下のスクリーンショットで表されているファイルには、次のコマンドを使用してアクセスします。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
そのコマンドを使用する前に、ネットワークデバイス番号が検証され(eth0)、それが正しいことを確認します。ご存知のように、Linux構成はインターフェースのファイル内で管理されるため、構成ファイルを編集する前に、そのファイルからインターフェース番号を確認することが不可欠です。
注意すべき構成ファイルのもう1つの側面は、「静的」という言葉の使用です。静的IPアドレスを追加しているので、そのことを構成ファイルに通知することが重要です。
メモは、説明のために以下のスクリーンショットに追加されましたが、構成ファイルに含めるべきではありません。また、一部のLinuxディストリビュー(Linux)ションでは、引用符が必要です。この特定の構成ファイルでは、自動作成された構成ファイルに引用符が存在しないため、傾向が継続され、引用符は追加されませんでした。
次のスクリーンショットは、メモと余分なスペースを削除して、ファイルが実際にどのように表示されるかを示しています。
編集する次の(そして最後の)構成ファイルには、次のように入力してアクセスします。
sudo vi /etc/resolv.conf
そのファイル内で、ネームサーバーを追加(または変更)できます。これらのネームサーバーは、変更されたばかりの他の構成ファイルと一致する必要があります。この場合、/etc/sysconfig/network-scripts/ifcfg-eth0(上のスクリーンショット)にあります。
使用される言い回しは「nameserver」です。したがって、デバイス構成ファイルにDNS1=8.8.8.8が表示されている場合、resolv.confファイルにはnameserver8.8.8.8が表示され(nameserver 8.8.8.8)ます。
DNS2=4.4.4.4に対応するものは、resolv.confファイルにnameserver4.4.4.4として(nameserver 4.4.4.4 )表示されます。
大まかに言えば、上記の手順はRed Hat Linuxディストリビュー(Red Hat Linux)ションで機能しますが、テクノロジーの変更が発生した場合に、将来的に機能するという保証はありません。これが、構成をテストおよび検証する必要がある理由です。
構成が完了したら、上記の推奨される方法でネットワークインターフェイスを再起動します。これにより、変更が適用されます。静的IPアドレスをテストする場合にも役立ちます。これを行うには、別のデバイス(できれば別のネットワーク上)からそのパブリック静的IPアドレスに接続しようとします。
また、友人や同僚に電話して、別の地理的な場所(および別のネットワーク)から静的IPアドレスへの接続を試行させることもできます。
チュートリアル02:ネットワークIPエイリアシング(Tutorial 02: Network IP Aliasing)
1つのネットワークインターフェイスカード( NIC(NIC) )に複数のIPアドレスを割り当てることができます。これは、ネットワークIPエイリアス(Network IP Aliasing)と呼ばれます。これは、実際のIPが1つだけであり、追加のIPアドレスが同じカードのエイリアスであるためです。IPアドレスを割り当てるには、チュートリアル01で説明されているように、お好みのIPアドレスの割り当て方法を使用します。
静的である必要はありませんが、ネットワークIPエイリアス(Network IP Aliasing)を使用して複数のIPアドレスを割り当てるには、静的IPを使用してIPアドレスを割り当てる必要があります。
チュートリアル03:Linuxマシンのホスト名を変更する(Tutorial 03: Change Host Name of the Linux Machine)
次の手順を使用して、好みのエディターを使用してLinuxマシンのホスト名を変更します。
1.コマンドラインアプリで次のように入力して、ホスト名構成ファイルを変更します。
sudo vi /etc/hostname
その構成ファイルに古いホスト名が表示されている場合は、それを新しいホスト名に置き換えます。
2.コマンドラインアプリで次のように入力して、ホスト構成ファイルを変更します。
sudo vi /etc/hosts
そのファイルに古いホスト名が表示されている場合は、上記の手順1でホスト名(hostname)構成ファイルを使用した場合と同じ方法で、新しく選択/指定されたホスト名に置き換えます。
3.サーバーまたはLinuxコンピューターを再起動します。これを行う1つの方法(Linuxディストリビューションによって異なります)は、コマンドラインアプリで次のように入力することです。
sudo shutdown –r now
この再起動は、変更を有効にするために必要です。
チュートリアル04:NICを有効または無効にする(Tutorial 04: Enable and Disable Your NIC)
Linuxのコマンドラインを介して実行できるより魅力的なことの1つは、イーサネット(Ethernet)接続を有効または無効にすることです。
これを行うには、次の2つから適切なコマンドを入力します。
sudo ip link setup
sudo ip link setdown
古いバージョンのLinuxでは(Linux)、ifconfigupまたはifconfigdownを実行できますが、これらのコマンドは、新しいLinuxディストリビュー(Linux)ション内で非推奨または廃止される可能性があります。その場合は、新しいipコマンドをお勧めします。
チュートリアル05:ネットワーク転送を有効にする(Tutorial 05: Enable Network Forwarding)
Linuxオペレーティングシステムは、さまざまなネットワークに接続でき、ルーターとして機能できます。(Linux)あなたがする必要があるのはあなたがIPアドレスを転送することを可能にするuncomment the net.ipv4.ip_fporward=1 line
必要な設定ファイルは通常/etc/sysctl.confに保存されています:
設定方法の例については、「How to enable IP forwarding on Linux (IPv4 / IPv6)」を参照してください。
(静的IPアドレスの代わりに) DHCPを使用して(DHCP)Linuxサーバーをセットアップしている場合は、ネットワーク転送の形式を選択できます。これは一般的ではありませんが、実行可能であり、誰かがそうする傾向がある場合を表すため、ここで参照されます。
チュートリアル06:シェルを介したリモートコマンド(Tutorial 06: Remote Commands Via Shell)
Linuxサーバーにアクセスする必要があり、そのサーバーが地理的に同じ場所に配置されていない場合は、リモートコマンドを使用してそのリモートLinuxサーバーにアクセスする必要があります。
プログラマーやシステム管理者にとって、サーバーへの「リモートイン」は通常のことです。
これを行う最も一般的な方法の1つは、「ssh」コマンドを使用して、安全でない接続を介してアクセスしている場合でも 、 Linuxサーバーに安全にアクセスすることをコマンドラインアプリに通知することです。(Linux)
「ssh」コマンドの使用に加えて、接続している場所と方法に関する情報を提供する必要があります(利用可能な他のオプションの中でも)。
Linuxサーバーへのアクセスにはドメイン名を使用することも、パブリック静的IPアドレスを使用することもできます。名前またはIPアドレスは、sshコマンドがアクセスしているものとその場所を示します。
他のオプションには、リモートサーバーへのログインに使用されるユーザー名が含まれる場合があります。そのオプションが定義されていない場合、要求される可能性がありますが、sshコマンドと同時に定義するオプションでもあります。
例えば:
ssh username myserver.com
パスワードをコマンドに設定することもできますが、セキュリティ上の理由から、リモートサーバーとの接続時にパスワードを入力することをお勧めします。
なんで?コマンドにパスワードをプレーンテキストで入力すると、同じコンピューターを使用している次のユーザーがパスワードにアクセスでき、パスワードにアクセスできるようになります。
追加のセキュリティ上の理由から、特定のポートを介してLinuxサーバーにアクセスすることをお勧めします。使用できるポートを指定することで、他のポートをブロックし、ハッカーの試みやDOS(サービス拒否)攻撃を防ぐことができます。
sshにはさまざまな構成ポイントがあります。これらのいくつかはshellhacks.comにリストされています。
チュートリアル07:ネットワーク監視ツール(Tutorial 07: Network Monitoring Tools)
ネットワークを管理するための重要なコンポーネントの1つは、すべてが機能し、機能し続けることを確認することです。これは、ネットワーク監視を通じて行うことができます。ネットワーク監視に対応するツールはさまざまですが、最終的には同様の目標と目的を達成します。
そのようなネットワーク監視ツールの1つがCactiです。Cacti は、オープンソースのネットワーク監視ツールです。Cactiはネットワークを監視し、ログに記録された内容をグラフィカルに表現します。これは、ユーザー(特に初心者)が問題が発生する可能性のある場所を特定するのに役立ちます。
フロントエンドは多くのユーザーに対応でき、ホスティングサービスで使用されて、リアルタイムの帯域幅情報やその他のデータを次のグラフに表示することがあります。
データは、任意の外部スクリプトまたはコマンドを介してCactiにフィードできます。(Cacti)Cactiは、cronジョブを介してデータをまとめ、MySQLデータベースに入力してから、フロントエンドユーザーグラフとして表示します。
データ収集を処理するために、ユーザーが「入力」する必要のあるデータとともに、外部スクリプト/コマンドへのパスをサボテンにフィードできます。次に、 Cacti(Cacti)はこのデータをcronジョブに収集し、MySQLデータベースにデータを入力します。
Cactiは、ネットワークの使用状況を監視し、消費者にわかりやすいビジュアルを提供したいネットワーク管理者にとって便利なツールです。Cactiは、 (Cacti)cacti.netから無料でダウンロードできます。このWebサイトには、ネットワーク監視ツールをインストールおよび構成するためのドキュメントが含まれています。
試すことができるサボテン(Cacti)の代替品には、 Solarwinds NPM、PRTG、Nagiosなどがあります。Solarwindsは、SNMPだけでなく、ICMP/Ping、WMI、Netflow、Sflow、Jflow、IPFIXなどもサポートします。事前に作成されたテンプレート、グラフ、およびアラートは、ネットワークの監視をすばやく開始するのに役立ちます。
PRTGは最大100個のセンサーを無料で提供します。Solarwindsと同様の機能に加えて、スマートフォン(Smartphones)、タブレット、iPad向けの柔軟なアラートとアプリケーションを備えています。
Nagiosには、 (Nagios)Cactiにあるすべてのツールがありますが、もう少し構成が必要です。選択できるプラグインはたくさんあります。これは、最も古いネットワーク管理および監視ツールの1つとして確固たる評判を持っています。ただし、構成ファイルの保守には手を汚す必要があります。
How To Set Up & Configure TCP/IP Files On Linux (TCP/IP Settings For Linux)
Even non-geeks have lіkely heard of “ΤCP/IP” but doеs everyоne know what it is or how to cоnfigure it оn a Linux server using the command line?
It helps to define basic terminology first. At the very least, it allows you to develop a framework on which to build your understanding. TCP/IP is no exception.
This section on terminology is not an exhaustive list. It’ll give you a basis on which to start your journey into understanding networking and how to configure TCP/IP files on Linux.
The *Nix World
Have you ever wondered what *nix means? What about how Unix and Linux are related (let alone all of the various versions of each)?
*nix is a method of referencing Linux and/or Unix (or any distribution) using a wildcard (the asterisk) to do so.
*Nix was developed in the late 1960’s. AT&T Bell Labs developed Unix at around the same time. hrough various iterations and developments, Linux was also born.
The result of these parallel innovations is that once you learn how to perform installations on one server via the command line, you’ve learned a skill that’s likely compatible with many other tasks on a variety of Unix or Linux servers.
Man Pages – Information at Your Fingertips
Much like Google, Linux has its own set of search and research tools that enable users to find the resources they need. Those resources are known as, “man pages.” When you are logged into a Linux server (or Linux-based operating system), you can open the command-line application and type in what you would like to research, like typing in a search term in an interactive documentation file.
If you pick a topic you want to research, like a Linux utility, tool, daemon, script, you can look that up by typing “man” and then the word. You will learn how to do this later in this article.
Man pages are easy to use. Just start typing a couple of words and the Linux OS will begin returning the information to you. If there’s no man page for a particular topic Linux will tell you that.
For the most part, man pages are reasonably accurate for the software version on which they appear. For example, if you are logged into a Linux server that’s 10 years old, the man page displays information relative to that version (and age).
Man pages are easy to use and accurate, but there are a couple of caveats. Let’s illustrate those caveat(s) via images.
In the image below, the man page for ARP indicates that ARP is obsolete (under the “notes” section) and that one should look up ip neigh instead. It would seem, by that notation, that one may want to type “man ip neigh” to access information about the replacement tool/protocol.
However,, typing “man ip neigh” does not look up the man page for “ip neigh”. Instead, it’ll look up two man pages… one for “ip” and the other for “neigh.”
While it’s true that you’ll get a man page if you type “man ip neigh,” unless you are paying close attention, you may miss that it’s not actually what you were looking for.
You could add a dash (even though that isn’t what shows in the man page when referencing the replacement tool)… So, if you add a dash and type “man ip-neigh” that also works fine but it isn’t correct either.
You might try typing “man ip-neighbour” (note the British spelling). When you type that particular phrase, you’ll see the correct man page for replacing the ARP man page (or replacing the ARP protocol). The bottom line is this: If you can’t find what you need, try using different combinations until you get the desired man page.
As an example, try looking up the man page for the nslookup tool. You do this by typing “man nslookup”. When you do that, you’ll see a man page that looks similar to the image/screenshot below. You’ll learn all you’d want to know about the nslookup tool.
After the man page pops up on your screen you can scroll down, read, apply, test, and even close out the man page (by typing the letter “q” and letting the man page automatically close).
If you request a man page that doesn’t exist, Linux will provide you with the feedback that there’s no entry for that man page and to try another one.
IPv4 and IPv6
Both IPv4 and IPv6 are technically the same, but they don’t appear the same to us humans. They’re a means of identifying machines or devices on a local area network (LAN). They’re private in the way that they identify the devices in the LAN.
IPv4 uses numbers separated by dots/periods. Most of us are familiar with the type of IP addresses we see for computers connected to our private networks using the IPv4 format.
Computers on a network also have an IPv6 address, but it looks different. IPv6 is composed of alphanumeric characters separated by colons ( : ).
So what are the differences between IPv4 and IPv6? Think of it like a network name. One is like the first name and the other is the last name. Both names point to the same person (or in this case, a computer). Just as we generally have a different first name compared to our last name, the IPv4 “name” will be different from the IPv6 “name” even though they both point to the same machine.
Carla Schroeder has written an easy-to read and useful article about IPv4 and IPv6.
Root Access on a Linux Server (and su and sudo)
For many of the tasks that need to be completed, root access (a.k.a. Administrator or superuser) is required. That’s because many of these utilities and apps are sensitive enough that they’re restricted for security reasons.
An alternative solution to logging in as root or triggering superuser access (su) is to prepend a command with “sudo” telling the Linux machine that that particular command needs to be run as superuser/root, but that subsequent commands do not (unless also prepended with the “sudo” directive).
In cases where “sudo” is used and prepended to the command, Linux will request the su password in order to authenticate the superuser identity and permissions.
Networking Protocols
there are many different protocols to consider when discussing Linux. The two protocols that are primary to this article are TCP and IP.
Transmission Control Protocol (TCP)
Transmission Control Protocol, more often referred to as TCP, is a protocol used for the transmission of packets, just as the name describes.
See below for an explanation of various tools, including the Linux tool called Traffic Control (tc).
TCP directs the Linux operating system on how packets should move from one place to another. It also controls network traffic and directs the transmission of packets of information (like folders of data moving from one place to another).
This is why the protocol is called Transmission Control Protocol (TCP).
Internet Protocol (IP)
Internet Protocol is commonly referred to by its acronym, IP.
In the case of the IP you have a wider area (the Internet) to transmit packets. It’s like having a wider, longer, and more travelled super highway… called the internet. While TCP controls the movement of packets across a network, IP controls the movement of packets across the internet.
ICMP Protocol
ICMP stands for Internet Control Messaging Protocol. While it’s a protocol that’s available in most Linux distributions, it may not be available on all Linux distributions. This was evidenced by the lack of a Man page within a current Centos installation.
At first glance, it may not seem like this particular protocol is that essential but in reality it is. ICMP is responsible for providing error messages if/when a packet doesn’t properly reach its destination. ICMP is essential for receiving status updates on the delivery (or receipt) of the packets of information being transmitted.
User Diagram Protocol (UDP)
User Diagram Protocol (UDP), like Transmission Control Protocol (TCP), is a protocol for the transmission of packets of information from one point to another. In the case of TCP, as a part of the process/transmission, there’s a verification of successful delivery of the packet(s), making it more reliable than UDP.
In the case of UDP, there’s no verification process so you won’t know whether the packets were transmitted or received successfully and without error. As such, it’s an easy enough protocol to utilize but it’s not verifiable or able to be authenticated.
Linux Configuration
There’s several configuration files available in the Linux operating system.
For example, if you’re running an Apache server on your Linux machine, the Apache configuration files are important. Those files let the Apache web server know what’s going on with the domain and more specifically, the site that’s hosted on that server.
Sometimes the configuration file is labeled as httpd.conf. Sometimes it’s labeled as apache.conf. Or it could be a completely different label/name. You may find the configuration files in one location on one server, and other times they’re in a completely different location on another server.
Fortunately, there are helpful commands that may assist in locating specific configuration files. For example, you can type the following to locate the “httpd.conf” configuration file, if it exists:
find / -name “httpd.conf”
The first word, “find”, let’s Linux know what command/utility you’re using, which in this case is the “find” utility. The second component of the command line is the “/” which lets the find utility know that it should be searching the path starting from the root level of the server.
If you were looking in a more specific location, you may have something like “/etc” to let Linux know to start in the etc directory and follow that path. By providing a specific path/location, you can potentially speed up the process, because Linux doesn’t have to search in places that are redundant.
The “-name” option lets Linux know what you’re looking for in the name of the file or directory. It’s helpful to include the name in quotation marks, and you can also use an asterisk ( * ) as a wild card when searching.
Some examples of configuration files and directories in the “/etc” directory/path include:
- pam.d – a directory that contains utilities related to authentication modules. “Su” and “sudo” are found there, as an example.
- sysconfig – a directory that includes functions of the computer, like power management, mouse, and more.
- resolv.conf – a file that aids in the functionality of the domain name server, if the Linux machine is being used in that capacity.
- services – this file contains the available connections (i.e. open ports) available on the Linux machine.
If you’re wondering if any files, paths, or utilities are obsolete or deprecated, use the man pages to check. This is a helpful way to keep tabs on what is current and what has changed.
Understanding the Linux File System
In many Linux distributions, configuration files are found in the network-scripts directory under the “etc/sysconfig” path. If they’re not located there, it’s likely that there’s a similar location/path. The files that are present in this particular case are shown in the screenshot below.
As you’ll see in the screenshot below, there are two configuration files. Each of them are labeled according to their respective interfaces (i.e. ifcfg-eth0).
The configuration files are preceded by “ifcfg” which replaces the ifconfig command (as well as becoming a part of the interface file name). That said, it has now been somewhat replaced as well since the ifcfg is not compatible with IPv6.
The two interfaces references (ifcfg-eth0 and ifcfg-lo) refer to specific types of interfaces. Linux developers were helpful in this area, providing definition and direction in the form of file names. In the case of the interface ending in “eth0”, it’s an interface that’s connected via “ethernet” or has ethernet capability.
The use of the letters “eth” point you in the right direction. The number that follows “eth” provides the number of the device. So, the next ethernet device may be something like “ifcfg-eth1” and so forth.
The file name that ends in “lo” refers to a “loopback” interface. It’s also referenced as the “localhost.” This is a network connection that isn’t technically a real network connection. It simply allows processes to communicate on the device without communicating over the network. Think “virtual” when thinking about this particular interface.
All Linux distributions are capable of having a loopback (or localhost) and are usually set up for one by default. They use an interface that ends in “-lo.” The IP address for the localhost is usually 127.0.0.1. In many cases, the loopback virtual interface can be used to test connections and rule out other potential network issues.
The Files
There are different ways to edit configuration files (as well as view them). One method is to use the “vi editor” that’s accessed via the command “vi” followed by the filename. In this case, when one types “vi ifcfg-eth0” (without the quotation marks) they are able to view the network information for that particular interface (eth0).
However, it would be more advisable to do it the traditional way and follow the network configuration instructions found in the man page for ifcfg.
This may also be easier for the non-technical person. Using the vi editor does require a bit of attention to detail so if you’re detail-oriented (or you’re already a programmer or system administrator) the vi editor may be an optimal solution when working with Linux configuration files.
In accessing the man pages, we’re able to review information about the ifcfg script that replaced the ifconfig script (as shown in the above screenshot of the man page). Also, when looking at the list of interfaces in the Linux distribution, we notice the ifup and ifdown commands. Those, too, can be reviewed in their man page(s).
A screenshot of the man page is shown in the image below. As you will see in the man page, there’s additional Linux configuration files (and the paths to get to those files) that can be consulted (and modified) in the set up and configuring of the TCP/IP files on Linux.
If you use a command-line text editor like the vi editor to view the configuration file, you will notice some options that are defined. For example, in looking at the network interface, you may see words in all caps, followed by an equals sign (=), and then another word.
For example, there may be a directive that’s “ONBOOT” and it may say “ONBOOT=yes” as an example of a configuration option. There’s several other configuration points and options as well. For example, another one is NETMASK.
If you see the configuration directive, “NETWORKING,” it should be followed by a “yes.” If it’s followed by “no” it may represent a problem because that would indicate that the network interface is not activated for networking.
Here is a step-by-step process to correcting the situation just described:
- Make a copy of the configuration file, to be safe. There are a few ways to do this. One of the easiest is with the command window.
Type: cp ifcfg-eth0 ifcfg-eth0_20200101
Then on the next line, type: mv ifcfg-eth0_20200101 /home/mydirectory/ifcfg-eth0_20200101
This moves the file copy you just made to a directory you’re using for backups.
- Now that you’ve made a backup of the configuration file,, it’s time to make changes to that configuration file. If you’re using the vi editor, you would type the following:
vi ifcfg-eth0
After doing so, the file will open in the terminal/command application (similar to the way a man page opens when you trigger it).
Once the configuration file is open, you would look for the line that includes “NETWORKING=no” and delete that line or change it to “NETWORKING=yes”. This can be done with the “cw” directive in the vi editor. By typing a forward slash, you’re telling the vi editor that you’re searching for something. In this case, you let the editor know that you are searching for “NETWORKING” and when it’s found (directing the mouse to that location) you can use the right arrow key to move to the word “no”.
When you get to the word “no”, stop on the “n” and type “cw” allowing you to change the “no” to “yes.” The “cw” stands for change word and Linux allows you to change the entire word from one word (“no”) to another (“yes”). If you only wanted to change one letter, you could use an “r” to replace one letter or character.
The screenshots show this process below.
- After saving the configuration file (i.e. typing esc to get out of the INSERT mode and then a double Z to save the file), it’s time to restart the service or the computer. This can be done in several different ways. One method to reboot the computer is typing the following command line:
shutdown -r now
The shutdown command tells the Linux machine to shutdown. The -r option tells the command that it isn’t just a shutdown, but a reboot and to do it now.
Tip: If you want to know when the computer or server has completed the reboot, type “ping” and then the public IP address of the computer/server (or a domain name of a site hosted on the Linux server).
By using the ping command, you will see that the server is not “pingable” (which happens during the reboot) and then when the server successfully restarts, the ping will respond with a positive response, indicating a successful reboot.
The following are some images that help to illustrate the steps in the above list.
Step 1:
Step 2:
Tip: Keep in mind that nothing in the server world is singular. For example, you may change the configuration for a particular interface (in this case eth0) but that may be just one interface on a network and may be affected by (or affect) another server.
So, in the example above, by restarting the server, it will trigger network devices to also restart. This is not the singular option for this interface but this interface would be affected by a command to restart.
/etc/hosts File(s)
The /etc/hosts file may or may not exist. If it does exist, it may or may not be used in the configuration. For example, you may have a different system that handles host configurations, rather than managing the file directly. Also, the hosts file itself varies. For example, IPv4 and IPv6 handle the configuration differently, as you can see in the image below.
Configuration Files; Locations/Paths; Terms; and More
Some additional helpful filenames and file locations are:
- /etc/sysconfig/network-scripts/ (configuration file path)
- /etc/sysconfig/network-scripts/ifcfg-eth0 (configuration file)
- /etc/hosts (configuration file)
- /etc/resolv.conf (configuration file with nameserver information)
In many cases, system or server software creates the configuration files automatically. Also, if DHCP is used, there are other aspects of the networking configuration that are calculated on-the-fly, since static IP addresses are not used in that case.
The following command-line (CL) commands were (or are) used in most Linux distributions. Where they are obsolete or deprecated, the replacement command is listed.
- route (obsolete / deprecated): Was used to show and edit routes. Replaced by ip route.
- hostname: Used to display or amanipulate and edit the hostname of the machine.
- netstat: View network connections, routing tables, interface statistics, multicast memberships, etc.
- arp: (obsolete / deprecated) Used to be used to show IPv4 information; specifically the network neighbor cache. IPv6 has become the network address, replacing the IPv4 collection of four numbers separated by periods. In light of these changes, this obsolete command has been replaced by ip neigh.
- ip: Not only does IP stand for “internet protocol” and the ultimate WAN (wide area network”) but it’s also a utility that allows the system administrator or computer user the ability to view the TCP/IP parameters as well as setting them as needed.
- tc: This stands for “traffic control” and is a utility to help with managing the inbound and outbound traffic on the Linux machine.
Configuration Tools: GUI Vs. Command Line (CL)
To provide a point of reference, the following three images display a graphical user interface (GUI) mechanism to handle the configuration of networking, including TCP/IP.
The first image is the Apple Mac GUI (System Preferences > Networking) and the second two images are that of the Windows Operating System (though it varies from version to version). It’s accessed via the Microsoft Control Panel and Network Connections, as you can see in the screenshots.
Pros and Cons of GUI Versus Text Editor or Command Line (CL)
While many people prefer graphical user interfaces (GUI) because of their ease of use, visual presentation, and overall simplicity, it’s helpful to understand configuration files (in this case related to networking) so that you can troubleshoot and correct any issues.
You may want to grab the GUI first but it helps to be fully informed… just in case. Also, there’s some operating systems that do not necessarily have a GUI (or don’t have one yet) so again; it’s helpful to be prepared.
In the next section we’ll cover configuration files and how to access them, update them, as well as the management of the files and utilities.
Linux Command-Line (CL) Tools, Utilities, Scripts, and Daemons
There are many tools that are available for Linux distributions. Again, like other commands there are similarities (and differences) between how those tools are used in the different distributions. In some cases, tools are available but need to be installed first, and the installation process often varies.
The command line tool is often referenced as shell and in the early days, terminal. There are other terms for it but generally, it’s an application that allows the user to access operating systemsby typing commands in a window.
Let’s look at a couple of examples. The first one is from the Windows operating system and likely looks familiar to Windows users. The tool is openedby typing CMD (as shown in the screenshots below).
The second screenshot is that of an application called Terminal that comes pre-installed on most Apple computers.
NSLookup (nslookup)
In the case of nslookup, the ns stands for nameserver and the lookup portion of the command is a “look up” of information. So, what the name of this tool is telling us is that it’ll look up information generally available via a nameserver.
NSLookup is a handy tool. In this case, we are using it to look up information about eBay. In order to do so, we type “nslookup ebay.com” and we’re presented with information that’s similar to what’s shown in the image below.
The command is displayed at the top of the screenshot (after the blurred out private information). Then, the output from that request (the nslookup) is shown below that, with information such as Server (the public IP address), the specific IP address, etc.
Traffic Control (tc)
Another tool is the “Traffic Control” tool (also referred to as “tc”). It’s a tool that allows the scheduling and processing of data packets.
The command tells you how the packets move over a network. That how aspect includes the answers to questions like timing, speed, devices, and more. Here is a command line (CL) representation of the use of Traffic Control (tc):
While it might look like “gibberish” to some, each word in the command line represents something important. Here is the listing:
- tc: This is the tool, in this case “Traffic Control” (a.k.a. “tc”). This tells the command line application/software which Linux tool to use.
- qdisc: This abbreviation stands for queuing discipline and is another way of describing a simple scheduler.
- add: Since we are building a configuration (yes, technically a file), we are telling the tool that we are adding to the controls.
- dev eth0: The “dev” refers to the “device”, letting the tool know that we’re about to define the device. The “eth0,” in this case, is the reference to the device. You’ll notice that this is similar to what appears in a graphical user interface (GUI) for a device label.
- root: This tells the tool that we are modifying the outbound traffic from the root level, or egress.
- netem: This word represents the phrase, “network emulator”. While it may not be the hardware network, it’s emulating the same. This is similar to how the Parallels software emulates the Windows software for Apple computers. Granted, it’s a completely different piece of software but is emulation software in the same way that netem is emulating a network. In this case, netem represents a WAN (wide-area-network) as opposed to a LAN (local-area-network).
- delay: This word tells the tc tool that we’re modifying the “delay” component of the transaction.
- 400ms: We have already told the tool that we’re affecting the delay, but now we need to define how much we are affecting the delay. In this case, it’s by 400 milliseconds.
Network Manager
The purpose of the Network Manager is to simplify and automate your network configuration. For DHCP users, the Network Manager can obtain an IP address, supersede default routes and automatically swap out nameservers.
The nmtui tool for using your Network Manager is available in most, though not all, Linux distributions. Also, keep in mind that some tools are “available” and yet not available. In other words, there are some tools and daemons that need to be installed and do not necessarily come pre-installed on the Linux distribution in question.
Other Networking Topics
There are many aspects of networking and TCP/IP that are particularly fascinating, especially when dealing with a Linux distribution. Don’t forget that you have manual pages (a.k.a. man pages) available right within the Linux installation. So, while this may appear to be a sort of unrelated list of what you shouldn’t do, you can always use a man page to figure out what you should do.
Linux as the Router
These days, most people use hardware that’s dedicated to the task of routing (i.e. router) to manage the network route task.
Many times, that’s because routers are a part of the package deal with home or office internet packages/contracts. The customer is usually caught paying a rental/lease fee per month (or annually) or having to purchase the router.
However it’s handled, there’s little need for Linux to operate as a router even though it’s capable of functioning as one. The scenarios described above create an almost pseudo-deprecation situation for Linux, but that doesn’t mean Linux is out of the game entirely. It’s possible to set up a Linux server as the hardware (and subsequent software) router if you need to.
IP Route (Formerly “Route”)
The following image shows a screenshot of the man page for “Route” and the directives that are possible with that tool.
SNORT – An Intruder Detection System
Snort Software is an open source Intrusion Detection System (IDS) originally developed by Martin Roesch and since acquired by Cisco Systems. It operates on the basis of rules that utilize the TCP/IP layers of the network. Defining those rules identify intrusions to protect a network.
How to Set Up Linux > TCP/IP Settings for Linux
The following mini tutorials will help you with some common tasks that you may come across in the Linux world.
Keep in mind that times change quickly, so it’s helpful to use your man pages as well as searches in Google to verify the following steps and ensure that there aren’t any other tools that may do the job better. As of the writing of this article, that’s not the case.
Tutorial 01: Assigning a Static IP Address to a Linux Machine
The first question you should ask is whether or not the computer/server needs a static IP address (one that does not change) or a changeable IP address (like DHCP – Dynamic Host Configuration Protocol). If this is your personal computer (not a server), the chances are you may be using DHCP for your access to the internet.
What that means is that you don’t have to mess with assigning a static IP address to your computer. Your internet service provider (ISP) and any hardware provided/leased is automatically calculating an IP address on-the-fly to enable you to connect to the internet. In other words, if you don’t need a static IP address, a dynamically changing one is just fine for your non-server computer.
If you have a server and you need it to be accessible to others (i.e. outside your home; a WAN/internet; non-LAN) then you will need a static IP address so that either the domain that you are using is mapped to it via the hosting nameserver assigned to the domain, or accessible directly via the static IP address.
If no one needs to access your computer or server outside your home, then a changing IP address (dynamic; non-static) is just fine, because no one is using a static IP address.
Note: Some people have used a DHCP IP address for public access (yes, even as a server) but,
- It requires a very technically-minded person to do so, so it’s not as common.
- It’s much more difficult to maintain (because of its ever-changing nature) than a static IP address.
If you do need a static IP address, then go ahead and follow the steps here. If not, you can skip this section.
As you will see, the command (shown above) includes “sudo” at the beginning of the line. While it’s possible to use the “su” command (superuser) and log in as the superuser, the use of “sudo” only runs that one command as superuser.
The other method, logging in as superuser, allows all tasks to be completed as superuser, making it more convenient to do what needs to be done.
However, along with that comes a security risk, which is why it’s safer to simply start the command with sudo and allow the app to request a password (as needed) to complete the command as superuser for that task/command.
The choice is yours and should be based on whatever method is easier. The file represented by the screenshot below is accessed via the following command:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Prior to using that command, the network device number is verified ( eth0 ) to ensure that it’s correct. As you recall, the Linux configurations are managed within the file for the interface so it’s essential that the interface number is verified from that file prior to editing the configuration file.
Another aspect of the configuration file to take notice of is the use of the word “static.” Since we are adding a static IP address, it’s important to let the configuration file know that that’s the case.
The notes were added in the screenshot below for illustrative reasons, but should not be included in your configuration file. Also, in some Linux distributions, quotation marks are required. In this particular configuration file, no quotation marks were present in the auto-created configuration file so that trend was continued and no quotation marks were added.
The following screenshot shows how the file would actually appear, with the notes and extra spaces removed.
The next (and final) configuration file to be edited is accessed by typing:
sudo vi /etc/resolv.conf
Within that file, the nameservers can be added (or modified). Those nameservers should match the other configuration file that was just modified. In this case, at /etc/sysconfig/network-scripts/ifcfg-eth0 (the screenshot above).
The verbiage that will be used is “nameserver.” So, where the device configuration file shows DNS1=8.8.8.8, the resolv.conf file should show nameserver 8.8.8.8.
The counterpart of DNS2=4.4.4.4 would show as nameserver 4.4.4.4 in the resolv.conf file.
Loosely put, the steps above work on the Red Hat Linux distribution, but there’s no guarantee that it’ll work in the future, with the technology changes that occur. This is why configurations should be tested and verified.
Once the configurations have been completed, restart the network interface with the preferred method as described above. This will apply the changes. It’s also helpful if the static IP address is tested. You can do this by attempting to connect to that public static IP address from another device (preferably on a different network).
You could also call a friend or associate and have them attempt a connection to the static IP address from another geographic location (and different network).
Tutorial 02: Network IP Aliasing
It’s possible to assign more than one IP address to one network interface card (NIC). This is called Network IP Aliasing because only one IP would be an actual one, so the additional IP addresses are aliases to the same card. In order to assign the IP address, use your favorite method of assigning the IP address as described in Tutorial 01.
It isn’t that it has to be static, but in order to have multiple IP addresses assigned using Network IP Aliasing, one has to assign IP addresses using a static IP.
Tutorial 03: Change Host Name of the Linux Machine
Use the following steps to change the hostname of your Linux machine using your preferred editor:
1. Modify the hostname configuration file by typing the following in the command line app:
sudo vi /etc/hostname
Wherever you see the old host name in that configuration file, replace it with the new host name.
2. Modify the hosts configuration file by typing the following in the command line app:
sudo vi /etc/hosts
Wherever you see the old host name in that file, replace it with the newly chosen/designated host name in the same way that you did with the hostname configuration file in the above step one.
3. Restart the server or Linux computer. One method to do this (depending on your Linux distro) is to type the following in the command line app:
sudo shutdown –r now
This restart is needed in order for the changes to take effect.
Tutorial 04: Enable and Disable Your NIC
One of the more fascinating things that you can do via the command line in Linux is to enable or disable your Ethernet connection.
To do this, type the appropriate command from these two:
sudo ip link setup
sudo ip link setdown
With older versions of Linux, you could run ifconfigup or ifconfigdown, but it’s possible that those commands are deprecated or obsolete within newer Linux distributions. In that case, the newer ip command is preferable.
Tutorial 05: Enable Network Forwarding
Your Linux operating system is capable of connecting a variety of networks and can act as a router. All you need to do is uncomment the net.ipv4.ip_fporward=1 line which will enable you to forward the IP address.
The necessary configuration file is normally stored at /etc/sysctl.conf:
For examples on how to set it up take a look at “How to enable IP forwarding on Linux (IPv4 / IPv6).”
If you’re setting up a Linux server using DHCP (instead of a static IP address) you can opt for a form of network forwarding. This is not common, but referenced here because it’s doable and it represents a case where someone may be inclined to do so.
Tutorial 06: Remote Commands Via Shell
In the case where you need to access a Linux server and that server is not geographically located in the same place as you, you may need to use remote commands to access that remote Linux server.
For those who are programmers or system administrators, “remoting in” to a server is a normal occurrence.
One of the most popular ways to do this is to use the “ssh” command, letting the command line app know that you want to securely access the Linux server, even if you are doing so via an insecure connection.
In addition to the use of the “ssh” command, you need to provide information of where you’re connecting and how (among other options available).
You may use a domain name for the Linux server access or even a public static IP address. The name or IP address tells the ssh command what it’s accessing and where to find it.
Other options may include the username that will be used to login to the remote server. Without that option defined, it may be requested but it’s also an option to define it at the same time as the ssh command.
For example:
ssh username myserver.com
The password may also be configured into the command but it’s recommended, for security reasons, that you enter that at the time of the connection with the remote server.
Why? If the password is typed into the command, in plain text, it can be accessed by the next person using that same computer and they would have access to the password.
For additional security reasons you may want to access the Linux server via a specific port. By designating a port that may be used, you can block other ports and prevent hacker attempts or DOS (denial of service) attacks.
There are many different configuration points for ssh. Some of these are listed at shellhacks.com.
Tutorial 07: Network Monitoring Tools
One important component of managing a network is verifying that everything works and continues to work. You can do this through network monitoring. Tools that accommodate network monitoring vary but ultimately accomplish similar goals and objectives.
One such network-monitoring tool is Cacti. Cacti is an open-source network monitoring tool. Cacti monitors the network and provides graphical representations of what has been logged. This helps users (especially newbies) to identify where there may be issues.
The front end can accommodate plenty of users and is sometimes used by hosting services to display real-time bandwidth information and other data in the following graphs..
Data can be fed into Cacti via any external script or command. Cacti will bring the data together via a cron-job and fill your MySQL database before presenting it as a front end user graph.
To handle data gathering, you can feed cacti the paths to any external script/command along with any data that the user will need to “fill in”. Cacti will then gather this data in a cron-job and populate a MySQL database.
Cacti is a useful tool for network administrators who want to monitor network use and provide easy-to-understand visuals to consumers. Cacti can be downloaded for free at cacti.net. The website includes documentation to install and configure the network monitoring tool.
Alternatives to Cacti you could try include, Solarwinds NPM, PRTG and Nagios. Solarwinds will support SNMP as well as ICMP/Ping, WMI, Netflow, Sflow, Jflow and IPFIX, to name a few. The pre-built templates, graphs and alerts help you to start monitoring your network quickly.
PRTG provides up to one hundred Sensors for free. It has similar features to Solarwinds, plus flexible alerts and applications for Smartphones, tablets, ipads.
Nagios has all of the tools you will find in Cacti, but does require a little more configuration. There are plenty of plugins to choose from. It has a solid reputation as one of the oldest network management and monitoring tools. But, you will have to get your hands dirty in the maintenance of its configuration files.