web-dev-qa-db-ja.com

内部IPアドレスを見つけるにはどうすればよいですか?

Ubuntuサーバー12.04がインストールされているため、GUIがありません。 ifconfigコマンドを実行すると、自分のIPアドレスが見つかりません。 inet addr:127.0.0.1と書かれています。

ifconfig -aの出力は次のとおりです。

eth0   link encap:Ethernet  HWaddr 00:06:4f:4a:66:f0
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1   link encap:Ethernet  HWaddr 00:16:ec:05:c8:9c 
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo     Link encap:Local Loopback
    inet addr 127.0.0.1  Mask:255.0.0.0
    inet6 addr:  ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536  Metric:1
    RX packets:1800 errors:0 dropped:0 overruns:0 frame:0
    Tx packets:1800 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:143896 (143.b KB)  TX bytes:143896 (143.8 KB)

etc/network/interfacesの内容は次のとおりです。

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

誰かが私のためにこれを編集できるなら、etc/network/interfacesの内容は別々の行にあるべきです。

Host askubuntu.comの出力は次のとおりです。

;; connection timed out; no servers could be reached.

私は数ヶ月前にowncloudとwebminをセットアップし、問題なく1ヶ月使用していました。 2か月前に電源が切れたと思いますが、昨日までサーバーの電源を入れませんでした。インターネットのセットアップに影響を与えるようなことは何もしていないので、なぜそれがもう機能しないのか分かりません。ネットワークトポロジに関する限り、PC用のpci-eネットワークカードがあります。イーサネット回線は、ネットワークカードからスイッチに行き、そこからモデム/ルーターに行きます。

206
Cam Jones

これらのコマンドは、すべてのネットワーク情報を教えてくれます

ip add

または

ifconfig -a

あなたが言うようにそれがあなたに127.0.0.1を与えるだけなら、2つのオプションがあります:

  1. ネットワークカードが接続されていないか、システムで認識されていません

  2. ネットワークDHCPサーバーが稼働していないか、接続されていません

204
kamil
hostname -I

これにより、追加情報なしでIPアドレスのみが得られます。

209
Sarath Somana

これは私が現在推奨しているものです:

ip route get 8.8.8.8 | awk '{print $NF; exit}'

このコマンドの利点は、使用しているインターフェイス(eth0?eth1?またはwlan0?)を知る必要がないこと、ローカルホストアドレス、Dockerアドレス、またはVPNトンネルなどを除外する必要がないことです。そして、あなたは常にその時点で現在インターネット接続に使用されているIPアドレスを取得します(例えば、イーサネットとwifiの両方またはVPNなどで接続している場合に重要です)。

これにより、一部のインターフェイスでifconfigの出力の解析などで正しいIPが構成されていることだけでなく、それを正しく使用するようにルーティングテーブルが構成されていることもテストされます。

this answer by Collin Anderson でそのアイデアを見つけました。

GitHub上のスクリプトコレクションinternalip スクリプトで使用します。

wget https://rawgit.com/rsp/scripts/master/internalip
chmod a+x internalip

そして次のように使用します:

internalip

または:

internalip TARGET

をTARGET IPアドレスと接続するために使用されるIPアドレスを取得します。デフォルトのターゲットは8.8.8.8です。これは GoogleのパブリックDNSリゾルバー であり、インターネットの適切なデフォルトです。

ただし、別のIPで実行する場合:

internalip 127.2.3.4

次に、あなたが取得します:

127.0.0.1

これは、ループバックインターフェイス上のと127.2.3.4の接続に使用されるIPアドレスだからです。ターゲットがLAN、VPN、またはその他の特別なネットワーク上にある場合に役立ちます。この場合、インターネットに到達するためのデフォルトIP以外のIPを接続に使用できます。

外部IP

external IPアドレス(接続時にインターネット上のサーバーに表示されるアドレス-ここで説明する内部IPアドレスとは異なる場合があります)を確認するには、 この回答

184
rsp

Ifconfigを-aオプションとともに実行すると、インターフェイスにIPがあるかどうかに関係なく、すべてのインターフェイスが表示されることに言及する価値があると思います。

ifconfigを単独で実行すると、IPが割り当てられたインターフェースのみが表示されます。

Perlを使用してIPのみを表示するために使用できる素敵なトリックを次に示します。

# ifconfig | Perl -nle'/dr:(\S+)/ && print $1'
192.168.1.100
127.0.0.1

ネットワークカードがシステムによって認識され、その理由でeth0およびeth1が表示される

ここに、インターフェイスにIPを割り当てる簡単な方法があります。それに応じて有効なIP /サブネットを使用してください。

 ifconfig eth0 192.168.1.200/24 up 

次に、デフォルトルートを追加する必要があります

route add default gw 192.168.1.1

ベスト、

19
user1007727

このコマンドは、単一のデバイスのすべてのIPアドレスを表示します。

dev=eth0
ip addr show $dev | awk '/inet/ {print $2}' | cut -d/ -f1

1行または2行の出力を印刷します。システムがこれをサポートするように構成されている場合、最初のものはinet/IPv4アドレスであり、もう1つはinet6/IPv6です。

8
Aaron Digulla

場合、ifconfigコマンドはIPアドレスを表示しませんでした。GUIを介してUbuntuマシンのIPアドレスを見つける非常に簡単で簡単な方法があります。以下の手順に従ってください:

通知領域のネットワークアイコンをクリックし、接続情報をクリックします。 Network icon options

これにより、IPアドレスなどの情報を含むウィンドウが表示されます。 IP address information

6
Ibungo

ここから選択する良い答えがたくさんありますが、私は facter を指摘したいと思いました。ファクターの主な利点は、grepsedawkcutPerlなどによるすべての操作を節約するNice clean出力を提供することです。興味のあるインターフェイスを教えてくれるわけではありませんが、それを知っている場合は、次のようにしてIPを取得します。

facter ipaddress_eth0 
1
mc0e

ipコマンド

ip addr方法のバリエーションを次に示します。

ipには、すべての情報を1行で入力できる-oオプションがあります。これは、awkPerlなどのツールで解析する場合に便利です。 -4オプションとの組み合わせでは、IPv4アドレスのみが表示されます。したがって、出力は次のようになります(注-wlan7を確認するインターフェイスに置き換えてください)。

$ ip -4 -o addr show wlan7
3: wlan7    inet 192.168.0.78/24 brd 192.168.0.255 scope global dynamic wlan7\       valid_lft 85654sec preferred_lft 85654sec

ご覧のとおり、出力のIPアドレスは4列目/ Wordです。残りは単純な解析演習選択したツールを使用します。ここでは、Pythonを使用しています。

ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 

同じこと、ここでは文字列<<<とコマンド置換$()のみ

python -c "import sys;print sys.stdin.readlines()[0].split()[3]"  <<< $(ip -4 -o addr show wlan7)

個人的には、これを~/.bashrcのNice関数として保存しているため、入力が少なくて済みます。

wlan_ip() {
    ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 
} 

PerlとRubyのバージョンは少し短くなっています。

$ ip -4 -o addr show  wlan7 | Perl -lane 'print $F[3]'                         
192.168.0.78/24

$ ip  -4 -o addr show wlan7 | Ruby -n -e 'print $_.split()[3]'                 
192.168.0.78/24

Wireshark

ネットワーク分析ツールの使用に精通している場合、IPアドレスを取得するには、ブラウザーのキャッシュをクリアし、特定のインターフェイスでWiresharkのキャプチャを開始し、http GETパケットを検索するだけです。送信されます。宛先列にはIPアドレスが表示されます

1