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ネットワークカードがあります。イーサネット回線は、ネットワークカードからスイッチに行き、そこからモデム/ルーターに行きます。
これらのコマンドは、すべてのネットワーク情報を教えてくれます
ip add
または
ifconfig -a
あなたが言うようにそれがあなたに127.0.0.1を与えるだけなら、2つのオプションがあります:
ネットワークカードが接続されていないか、システムで認識されていません
ネットワークDHCPサーバーが稼働していないか、接続されていません
hostname -I
これにより、追加情報なしでIPアドレスのみが得られます。
これは私が現在推奨しているものです:
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を接続に使用できます。
external IPアドレス(接続時にインターネット上のサーバーに表示されるアドレス-ここで説明する内部IPアドレスとは異なる場合があります)を確認するには、 この回答 。
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
ベスト、
このコマンドは、単一のデバイスのすべてのIPアドレスを表示します。
dev=eth0
ip addr show $dev | awk '/inet/ {print $2}' | cut -d/ -f1
1行または2行の出力を印刷します。システムがこれをサポートするように構成されている場合、最初のものはinet/IPv4アドレスであり、もう1つはinet6/IPv6です。
ここから選択する良い答えがたくさんありますが、私は facter を指摘したいと思いました。ファクターの主な利点は、grep
、sed
、awk
、cut
、Perl
などによるすべての操作を節約するNice clean出力を提供することです。興味のあるインターフェイスを教えてくれるわけではありませんが、それを知っている場合は、次のようにしてIPを取得します。
facter ipaddress_eth0
ip addr
方法のバリエーションを次に示します。
ip
には、すべての情報を1行で入力できる-o
オプションがあります。これは、awk
やPerl
などのツールで解析する場合に便利です。 -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
ネットワーク分析ツールの使用に精通している場合、IPアドレスを取得するには、ブラウザーのキャッシュをクリアし、特定のインターフェイスでWiresharkのキャプチャを開始し、http GET
パケットを検索するだけです。送信されます。宛先列にはIPアドレスが表示されます