Ubuntu日本語フォーラム
ログインしていません。
Ubuntu14.04をサーバとして使っています。
LAN内から、sshは通っているんですが、外部への接続が出来ません。
/etc/network/interfacesを次のように設定しています。
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.12.102
netmask 255.255.255.0
gateway 192.168.12.1
dns-nameservers 192.168.12.1
しかし、
ping google.com
を打っても
ping: unknown host google.com となってしまいます。
何をチェックすればよいでしょうか?
オフライン
とりあえず、cat /etc/resolv.conf と dig +noall +ans +stats google.com と ip route と ping 8.8.8.8 を実行した結果を教えてください。
もしインストールされているなら traceroute -n 8.8.8.8 を実行した結果もお願いします。
オフライン
ryさま
早々にありがとうございます。
ご指導いただいた結果ですが
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
domain localdomain
search localdomain
nameserver 192.168.1.1
でした、ちなみに
resolv.conf -> ../run/resolvconf/resolv.conf
です。
$ dig +noall +ans +stats google.com
-bash: dig: command not found
$ ip route
default via 192.168.12.1 dev wlan0
192.168.12.0/24 dev wlan0 proto kernel scope link src 192.168.12.102
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=53 time=19.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=53 time=18.3 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=53 time=18.3 ms
^Z
[1]+ Stopped ping 8.8.8.8
$ traceroute -n 8.8.8.8
-bash: traceroute: command not found
でした。
オフライン
とりあえず /etc/resolv.conf ファイルの nameserver 192.168.1.1 を nameserver 192.168.12.1 に書き換えればいいと思います。
ただし、/etc/network/interfaces ファイルに書いた dns-nameservers 192.168.12.1 がここに反映するはずなのが、されていないのが気になります。
dpkg -l | grep '^ii\s\+resolvconf\b' を実行して以下のように出力されるか確認してください。
ii resolvconf 1.69ubuntu1.1 all name server information handler
もし、何も出力されないようなら sudo apt-get install resolvconf を実行して resolvconf パッケージをインストールしてください。
これで /etc/network/interfaces ファイルの dns-nameservers の行が /etc/resolv.conf ファイルに反映されるはずです。
余談ですが、dig や traceroute コマンドも動作確認等でよく使うので sudo apt-get install dnsutils traceroute コマンドでインストールしておくことを勧めます。
オフライン
ryさま
resolvconfは、問題なくインストールされていました。
/etc/resolv.confを書き換えれば、名前解決できるのですが、やはりreboot後に元に戻ってしまいますね。
もう少し、調べて見ます。
いろいろご指導いただき、ありがとうございました。
オフライン
network-manager パッケージが入っていて、それが悪さしている可能性を考えてみた。
小生の環境ですぐには確認できないので、感にすぎませんが。
オフライン
ryさま
ネットでぐぐると、いくらか情報がありました。。
http://d.hatena.ne.jp/zzkater/20140713/1405250096
http://geektrainee.hatenablog.jp/entry/2014/09/23/002443
すぐに、テストできない状態なので、後でじっくりやってみます。
モニタなしの、サーバ環境では、昔からのinterfacesでの設置が楽だったんですが、
このあたりの設定が、ここのところ頻繁に変更されますね。
オフライン
手元の 14.04 server で確認したら、/etc/resolvconf/resolv.conf.d/base ファイルはありますが中身は空でした。
/etc/nsswitch.conf ファイルの当該行は hosts: files dns になっています。
DNS サーバーの指定は /etc/network/interfaces ファイルに dns-nameservers 127.0.0.1 のように記述しています。(自分自身が DNS サーバーなので 127.0.0.1 を指定)
役には立たたなさそうな参考情報ですが。
オフライン
taku_s による投稿:
モニタなしの、サーバ環境では、昔からのinterfacesでの設置が楽だったんですが、
この言い回しからデスクトップ版では無く、純粋にサーバー版をインストールして使用していると推測します。
アップグレードかクリーンインストールかは解りませんが、以下の項目の確認をしてみてください。
* モニター無しとの事なので、デスクトップ環境を追加インストール等もしていないと思われるので大丈夫だとは思いますが。
/etc/NetworkManager/NetworkManager.conf が存在するならば、中身を参照して managed=false になっているのを確認する。
ubuntu 12.04の頃の記憶なので変更されているかもしれませんが、確か true になっていると /etc/network/interfaces 側の設定が無視されてしまう。
trueになっていたらfalseに書き換えて再起動してください。
* /etc/network/interfacesのdns-nameservers 192.168.12.1が反映されないばかりか、何処で設定しているのかresolv.confにnameserver 192.168.1.1が書き込まれているのが気になります。
/etc/resolvconf/resolv.conf.d/head を参照し、nameserver 192.168.1.1 が記述されていない事を確認してください。
このファイルは通常resolv.confのヘッダー部分しか書かれていないはずです。
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
だけです。
/etc/resolvconf/resolv.conf.d/tail が存在していたら同じ様に確認してください。
通常は存在しないと思います。
man resolvconfでは必要ならばresolver optionを記述する事になっています。(options inet6 等)
/etc/resolvconf/resolv.conf.d/base を参照し、nameserver 192.168.1.1 が記述されていないのを確認してください。
記述されていたら削除して $ sudo resolvconf -u して再起動してみてください。
再起動しても /etc/network/interfaces のdns-nameserverが反映されない場合は、/etc/resolvconf/resolv.conf.d/base にnameservers 192.168.12.1を記述して $ sudo resolvconf -u して再起動。
これらの事を確認及び変更してもダメな場合は、解りません。
#9の投稿に誤記があったので修正
再起動しても /etc/network/interfaces のdns-nameserverが反映されない場合は、/etc/resolvconf/resolv.conf.d/base にnameservers 192.168.12.1を記述して
の dns-namerserver と nameservers ですが、正しくは以下です。
誤) dns-nameserver --> 正) dns-nameservers 誤) nameservers --> 正) nameserver
ryさま
/etc/nsswitch.confは、同じくhosts: files dns でした。
katsu07さま
ご指導ありがとうございます。
/etc/NetworkManager/は存在しませんでした。
headには、ご指摘のとおりコメントのみ、baseは空でした。
ところが、tailがありました。
lrwxrwxrwx 1 root root 8 Feb 19 20:52 tail -> original
でoriginalの内容が
# cat original
domain localdomain
search localdomain
nameserver 192.168.1.1
でした。
これを削除して、resolvconf -u をしてみたんですが、うまくいきませんでしたので
originalの方で、nameserver 192.168.12.1 を書いて resolvconf -u をすると。
resolv.conf に結果が反映されました。
ありがとうございました。
今回のマシンは、ARMのボードコンピュータですし、Ubuntu14.04もソースに
ボードコンピュータ用の、パッチを当てたもののはずですが、x86用などと全く同じかは
不明ですので、これ以上は詳しく判りません。
とりあえず、動きました。ありがとうございました。
オフライン
ry による投稿:
とりあえず、cat /etc/resolv.conf と dig +noall +ans +stats google.com と ip route と ping 8.8.8.8 を実行した結果を教えてください。
もしインストールされているなら traceroute -n 8.8.8.8 を実行した結果もお願いします。
ry様
私も同じ問題が発生していますので、ご指導したいただけますでしょうか。
-----------------------------------------------------------------------------------
$ cat /etc/resolv.conf
nameserver 10.0.16.30
nameserver 150.16.1.5
nameserver 10.205.225.34
options timeout:1 attempts:1 ndots:0
$ dig +noall +ans +stats google.com
;; connection timed out; no servers could be reached
$ ip route
169.254.0.0/16 dev eth1 scope link metric 1000
192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.102
$ ping 8.8.8.8
connect: Network is unreachable
$ traceroute -n 8.8.8.8
プログラム 'traceroute' は以下のパッケージで見つかりました:
* inetutils-traceroute
* traceroute
次の操作を試してください: apt install <選択したパッケージ>
-----------------------------------------------------------------------------------
オフライン