UbuntuボックスのIPアドレスを見つけるためのbashコマンドはありますか?後でマシンにSSHで接続できるように、IPアドレスを見つける必要があります。
/sbin/ifconfig -a
以下を使用できます。
/bin/ip addr
内部アドレスを使用している場合は、
curl http://myip.dnsomatic.com
uNIXシェルでは良い考えかもしれません。
または、そのURLをブラウザに入力します。
「ifconfig -a
"結果、ifconfig
が内部アドレスを指定しました-これはおそらく外部からは機能しません。
すべて問題がないように見えても、着信ssh接続を許可しないファイアウォールを設定することができます。
その時点で、マシンのブラウザから対象のポートを試す必要があります。
http://www.canyouseeme.org/
これで接続が確認されます
/bin/hostname -i
/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
内部アドレスが必要な場合は、ifconfigの後にインターフェースを追加します。
/sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
NATの背後にいて、パブリックIPが必要な場合は、これを使用します。
wget -q -O-checkip.dyndns.org | sed -e 's /.現在のIPアドレス://' -e 's /<.$ // '
取得元: http://www.go2linux.org/what-is-my-public-ip-address-with-linux
複数のインターフェースがある場合、どのインターフェースをIPにするかを指定すると便利です。インターフェース「eth0」のIPV4アドレスが必要な場合:
ip addr show dev eth0 | grep "inet " | awk '{ print $2 }'
インターフェース 'eth0'のIPV6アドレスが必要な場合:
ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }'
ラップトップの2つの一般的なインターフェース、wlan0とeth0の間のIPを検索する場合:
CURRENT_IP=''
for INTERFACE in wlan0 eth0; do
if [ -z $CURRENT_IP ]; then
CURRENT_IP=$(ip addr show dev $INTERFACE | grep "inet " | awk '{ print $2 }')
fi
done
ルーターのIPアドレスを確認する必要がある場合は、このコマンドを実行できます。
ディグ+ short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220
DNSサーバーにOpenDNSを使用している場合は、次のように短縮できます。
掘る+ short myip.opendns.com
このコマンドを使用することもできます。
カールhttp://myip.dnsomatic.com
これを丸めるだけ ページ :
$ curl wtfismyip.com/text
LOCAL_IP=`/bin/hostname -I | sed 's/ //g'`
これはLinuxとOS Xでも機能する1行で、ローカルではない最初のアドレスを返します。
ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
https://stackoverflow.com/a/13322549/99834 にクレジットを送信します
それを行う最も簡単な方法はおそらく
ifconfig eth0
マシンがデフォルトの有線インターフェイス上に単一のIPアドレスを持っていると想定-必要になる場合があります
ifconfig wlan0
wiFiの場合。
ip address show scope link
リビングのIPアドレスが表示されます-リンクがあります-インターフェース。しかし、それはbashコマンドではありません。 Bashには、IPとネットワークについての知識はまったくありません。
私が理解しているのは、動的IPを持つリモートUbuntuマシンを接続したいということです。 dyndns.orgサイトにアクセスして、無料のアカウントを開きます。次に、リモートマシンに動的IPツールをインストールする必要があります。
Sudo aptitude install dyndns-client
だからあなたは経由でリモートマシンをSSHすることができます
ssh [email protected]
したがって、構成後は、リモートマシンのIPアドレスは必要ありません。
これが私が使っているものです:
LC_ALL=C /sbin/ifconfig | awk '
/inet addr/ {
gsub("addr:","");
if(($2!="127.0.0.1") && ($2!="0.0.0.0") && ($2!=""))
{ print $2 };
}'
特定のインターフェースの単一のIPだけが必要な場合は、次のことができます。
ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2); print $2 }'
ボックスのパブリックIPアドレス を探している場合は、以下を使用できます。
Dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \"
__-4
_や_-6
_などの Dig(1)
オプションを使用して、IPv4またはIPv6アドレスを具体的に検索できます。 Googleは、TXT
タイプのレコードで回答を提供します。Dig
によって提示されると、引用符で囲まれます。 traceroute
などのユーティリティで変数を後で使用する場合は、 tr(1) のようなものを使用して、引用符を削除する必要があります。
他のオプションには、_whoami.akamai.net
_と_myip.opendns.com
_が含まれ、これらはA
およびAAAA
レコードで応答します(上記のGoogleの例のようにTXT
ではなく)。したがって、引用符を削除する必要はありません。
_Dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
_
_Dig -4 @resolver1.opendns.com -t any myip.opendns.com +short
_
Dig -6 @resolver1.opendns.com -t any myip.opendns.com +short
_上記のすべてのオプションを使用して変数を設定するサンプルスクリプトを次に示します。
_#!/bin/sh
IPANY="$(Dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv4="$(Dig -4 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv6="$(Dig -6 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
AKAMv4="$(Dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)"
CSCOv4="$(Dig -4 @resolver1.opendns.com -t a myip.opendns.com +short)"
CSCOv6="$(Dig -6 @resolver1.opendns.com -t aaaa myip.opendns.com +short)"
printf '$GOOG:\t%s\t%s\t%s\n' "${IPANY}" "${GOOGv4}" "${GOOGv6}"
printf '$AKAM:\t%s\n$CSCO:\t%s\t%s\n' "${AKAMv4}" "${CSCOv4}" "${CSCOv6}"
_
プライベートIPアドレス、またはボックスに割り当てられたすべてのIPアドレスのセットを探している場合は、 ifconfig
(BSDおよびGNU/Linuxの場合)、_ip addr
_(GNU/Linuxの場合)、 hostname
(GNU/Linuxのオプション_-i
_および_-I
_)および netstat
は、何が起こっているかを確認します。
LinuxでIPアドレスの抽出を利用したことがあります。
http://www.catonmat.net/blog/golfing-the-extraction-of-ip-addresses-from-ifconfig/