IP アドレスは自宅の住所のようなもので、インターネットが要求したデータの送信先を知る方法です。 IP アドレスを知っていると、サーバーのリモート管理など、多くの点で便利です。しかし、Linux で IP アドレスを取得するにはどうすればよいでしょうか?
このチュートリアルでは、コマンド ラインを使用するか、システム設定を確認するかを問わず、Linux で IP アドレスを見つけるためのさまざまな方法を学習します。
読み進めて、IP アドレスを取得する方法を選択してください!
前提条件
このチュートリアルは実践的なデモンストレーションです。フォローしたい場合は、次のものが揃っていることを確認してください:
- Linux マシン – 仮想マシン、専用サーバー、または Linux 用 Windows サブシステム (WSL) を備えたローカルの Windows 10 コンピューターを使用できます。このチュートリアルでは Ubuntu 20.04 LTS を使用しますが、他の Linux ディストリビューションも機能します。
- NET-3 ネットワーキング ツールキットがインストールされている
- このチュートリアルでは、sudo 権限を持つユーザーとしてシステムにログイン/SSH 接続していることを前提としています。このチュートリアルでは、root ユーザーを使用してすべてのコマンドを実行します。
root ユーザーとしてログインしていない場合は、このチュートリアルのコマンドの先頭に sudo を追加してください。
Linux で IP アドレスを取得する curl
で コマンド
cURL と呼ばれる一般的なツールを使用すると、URL 構文で指定されたデータを転送できます。このツールは、DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP などのプロトコルをサポートしています。
しかし重要な質問は、curl コマンドでパブリック IP アドレスを取得できるかということです。はい!パブリック IP アドレスの取得は、cURL の強力な機能の 1 つにすぎません。
関連:これのプレースホルダー
以下のコマンドを実行して、パブリック IP アドレスを見つける際に次のことを行います:
curl
– Google Search API を使用して、クエリ「what is my ip address
」の最初の結果を取得します .」-s
オプションはcurl
を伝えます サイレントリクエストを実行します。出力はgrep
にパイプされます 、正規表現を使用して応答から IP アドレスのみを抽出します。-oE
grep
の一部 コマンドは「一致のみ」の略で、応答全体ではなく、一致する IP アドレスのみを出力します。-m1
オプションはgrep
を伝えます 最初の試合後に停止します。なんで? Google Search API は、IP アドレスとともに一連の HTML コードを返します。その必要はありません。
curl -s | grep -oE "\\b([0-9]{1,3}.){3}[0-9]{1,3}\\b" -m1
以下に、あなたのパブリック IP アドレスが表示されます。
Linux で IP アドレスを取得する wget
で コマンド
cURL と同様に、Wget は、最も広く使用されているインターネット プロトコル (HTTP、HTTPS、および FTP) を使用してファイルを取得できる無料のユーティリティです。
Wget を使用すると、単一のファイル、Web サイト全体をダウンロードしたり、Web サイト全体をミラーリングしたりできます。もちろん、IP アドレスを見つけることもできます。
以下の wget
を実行します コマンドを実行して、パブリック IP アドレスを次のように端末に表示します。
wget
コマンドは HTTP リクエストをhttps://ipecho.net/plain
に送信します そのページのコンテンツを取得します。-qO
オプションはwget
を伝えます 静かにして、端末への出力をできるだけ少なくします。wget
の出力 コマンドはxargs echo
にパイプされます コマンドを使用して、出力を 1 行で表示します。
wget -qO- []() | xargs echo
これで、IP アドレスをユーザーと共有して、ユーザーが SSH 経由でサーバーに接続できるようになります。
dig
でパブリック IP アドレスを調べる コマンド
ドメイン情報グロパー (dig
) コマンドは DNS サーバーのクエリに使用されますが、このコマンドを使用してパブリック IP アドレスを見つけることもできます。
関連:プレースホルダー
Web サーバーのパブリック IP アドレスに ping 要求を送信したとします。 ping 応答を受信した場合は、Web サーバーが実行されており、外部からアクセスできることがわかります。そうでない場合は、問題を特定するためにトラブルシューティングを行う必要があります。最初のステップは、パブリック IP アドレスを見つけることです。
以下の dig
を実行します コマンドを使用して、Web サーバーのパブリック IP アドレスを照会します。
- 以下のコマンドは OpenDNS ネームサーバー (
resolver1.opendns.com
) を使用します ) を使用して、パブリック IP アドレスを見つけます。 OpenDNS サーバーは、信頼性が高く、フィッシング対策やコンテンツ フィルタリングなどの優れたセキュリティ機能を提供するため、お勧めです。 +short
オプションはdig
を指示しますmyip.opendns.com
の間、出力を短い形式で出力します。 パブリック IP アドレスを返すホスト名です。
dig +short myip.opendns.com @resolver1.opendns.com
次に、ping
を実行します 以下のコマンドで、10
ごとに ping リクエストを送信します 秒。 IP_address
を置き換えます Web サーバーの実際のパブリック IP アドレスに置き換えてください。
ping -i 10 IP_address
ifconfig
を使用してプライベート IP アドレスを見つける コマンド
この時点で、パブリック IP アドレスを見つける方法は既にわかっています。ただし、場合によっては、同じネットワーク上の別のデバイスから Linux サーバーに接続するために、Linux サーバーのプライベート IP アドレスを知る必要があります。
プライベート IP アドレスを取得するには? ifconfig コマンドでうまくいきます。
ifconfig
を実行します すべてを表示する以下のコマンド (-a
) システム上のネットワーク アダプターとその構成 (プライベート IP アドレスを含む)。
ifconfig -a
以下に示すように、1 つのシステムが複数のネットワーク アダプタを持つことができます。各アダプターは異なる IP アドレスを持つことができます。
inet を探します eth0 の下のエントリ または wlan0 以下に示すように、アダプターを使用してプライベート IPv4 アドレスを見つけます。
IP アドレスを見つけるための Bash スクリプトの作成
おそらく、IP アドレスを自動的に見つける方法が必要です。その場合、Bash スクリプトを作成することは、パブリック IP アドレスとプライベート IP アドレスを見つけるための優れた選択肢です。
スクリプトを使用する理由複数のシステムで同じスクリプトを使用できるため、各システムでコマンドを実行する手間が省けます。
1. 新しい find_ip.sh を開きます 好みのテキスト エディターでファイルします。
nano find_ip.sh
2. 次のコードを find_ip.sh に追加します。 ファイルを保存し、エディターを閉じます。
以下のコードは、プライベートおよびパブリック IP アドレスを見つけて lanIp および wanIp 変数に保存し、ターミナルに出力します。
#!/bin/bash
# Find your private IP address and store the value to the lanIp variable
lanIp="$(ip -4 -o -br addr|awk '$0 ~ /^[we]\w+\s+UP\s+/ {str = gsub("/[1-9][0-9]*", "", $0); print $3}')";
# Find your public IP address and store the value to the wanIp variable
wanIp="$(curl https://ipinfo.io/ip 2>/dev/null)";
# Print the values of the lanIp and wanIp variables
echo "Your private ip is: ${lanIp}";
echo "Your public ip is: ${wanIp}";
サーバーのパブリック IP アドレスを環境変数に保存すると、Jenkins や TravisCI などの CD/CI ツールで便利です。
3. 最後に、以下の sh コマンドを実行して find_ip.sh スクリプトを実行し、IP アドレスを見つけます。
sh find_ip.sh
次のような出力が表示され、パブリック IP アドレスとプライベート IP アドレスが示されます。
結論
このチュートリアルでは、curl
などのいくつかの異なるコマンドを使用して、Linux で IP アドレスを検索/取得する方法を学びました。 と ifconfig
.また、複数のシステムで IP アドレスの検索を自動化するスクリプトも作成しました。
Linux で IP アドレスを見つける方法がわかったので、この情報をさまざまなタスクに使用できます。おそらく、ホーム ネットワーク用に Cloudflare の動的 DNS を構成するには?