駆け出しエンジニア、ネットワークを学ぶ[随時更新]
ネットワークを学ぶモチベーション
仕事ではDockerを使うことが多いのですが、開発環境は既に誰かが作り、配布されたものを使います。幾つかのコマンドで仕事は出来ているものの、自分で0からDockerFileを書けるようになりたい、Dockerについて理解を深めたいなと思い、まずはネットワーク周りの知識をつけていこうという事で、勉強中です。
職場の先輩から、そもそもVPSにサーバー立てて、Webサイトを表示する事は出来る?出来ないならそこから始めてみたら?とアドバイスを頂いたので、まずは、そこを目標に、その過程で学んだ用語等をまとめていく予定です。
取り敢えず、学んだ事を一覧化し、自分の頭の整理するような忘備録的な側面の強い記事になっていますので、あしからず。
用語
SSH(Secure Shell)
サーバー間で安全な通信を行うための仕組み。接続先のサーバー側でSSHサーバーサービスが動作していて、クライアントからの接続を待ち受けています。SSHクライアントで接続すると、ネットワーク経由でLinuxサーバーにログインし、コマンドによる作業を行える。通信は自動的に暗号化されます。
以前いた制作会社では、FTPを使う場面もありましたが、暗号化のない平文で送信してしまうため、セキュリティの観点でリスクがありますね...。
MacOSでは、SSHクライアントが標準で用意されてますが、Windowsユーザーは別途設定が必要ですよね。
ポート番号
ネットワーク上のホストでは、複数のアプリケーションがネットワークを使っているのが普通です。その為、ホスト上で動作してるアプリケーションを識別する必要があります。その為に用いられるのがポート番号です。IPアドレスが建物の住所
でポート番号は部屋番号
のようなイメージで良いかなと思っています。
良く使われるネットワークサービス用のポート番号はあらかじめ決められていています(=Well Known Port
)
<主なポート番号一覧>
ポート番号 | 概要 |
---|---|
20 | FTPデータを転送 |
21 | FTP制御情報 |
22 | SSH |
23 | Telnet |
25 | SMTP(メール) |
53 | DNS |
80 | HTTP |
110 | POP(メール) |
143 | IMAP(メール) |
443 | HTTPS |
ネットワークインターフェース
ネットワークとの接点。Linuxサーバーだとeth0
eth1
といった名前で表示されます。
サーバー構築する際の手順
サーバー構築作業は大別すると3つあります。
1. OSをインストールし、設定する。
→インストール後にセキュリティ設定やユーザーの追加など、サーバーの運用に必要な設定作業を行います。
2. 必要なソフトウェアをインストールする。
→OSに加えて、必要なサーバーソフトウェアやミドルウェア(OSとアプリケーションの間に入るソフトウェアでデータベース管理システムなどが相当)をインストールします。
OSのインストール時に一括してインストールすることも可能ですが、不要なソフトウェアもインストールされ、セキュリティリスクを生み出してしまいがちなので、個別にインストールした方が良いとされています。
<良く使われるソフトウェア一例>
Webサーバー(Apache, nginxなど)
プログラミング言語(PHP、Java、Rubyなど)
データベース(MySQL、PostgresSQLなど)
フレームワーク(Laravel、Railsなど)
CMS(WordPressなど)
3. ソフトウェアを適切に設定
インストールしたソフトウェアについては、個々に設定。初期設定のままでは、セキュリティリスクが潜在していたり、日本語が正しくつかえなかったりといった問題があります。
コマンド
※CentOS 7で確認
ネットワークインターフェースの情報を調べる
$ ifconfig eth0
もしくは
$ ip addr show eth0
ネットワークインターフェースの一覧表示
サーバーに備わっているネットワークインターフェースの一覧と各状態が確認できる。
$ nmcli device
ネットワークインターフェースの詳細表示
$ nmcli device show eth0
ネットワークの疎通確認
$ ping 160.16.145.178 -c 5
ネットワークが繋がっているかどうかの確認に使われる基本コマンドがping
ping
コマンドを使うと指定したホストに対してICMP(制御用パケット)を送り、その反応を表示します。ネットワークが繋がっていないか、指定したホストが稼働していないと反応は返ってきません。
Ctrl + Cキー
を押すまで、確認パケットは送られ続けますが、上記のように -cオプション
でパケットを送る回数は指定できます。
「Distination Host Unreachable」が表示され、宛先ホストに届かない原因としては以下をの可能性が高いです。
- ローカルホスト又は相手側がネットワークに繋がっていない
- 相手側のシステムが起動していない
- 相手側のネットワークサービスに問題がある
- 相手側がpingに応答しないように設定されている
- 途中のファイアウォールによって疎通確認が制限されている
Author And Source
この問題について(駆け出しエンジニア、ネットワークを学ぶ[随時更新]), 我々は、より多くの情報をここで見つけました https://qiita.com/10mi8o/items/b79265ad0eeae8d85c8c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .