
Ubuntu日本語フォーラム

ログインしていません。
VirtualBoxにUbuntuServerをインストールし、サーバとして使用しようと思ったのですが、
ネットワーク設定がわからず、止まってしまいました。
apacheの設定は完了したのですが、外部からのアクセスを受け入れる方法がわかりません。
実機にサーバを構築した場合は、普通にグローバルIPアドレスにhttpアクセスすればいいと(勝手に)思っているのですが、
仮想環境(VirtualBox)内に外部から接続させるにはどうすればいいのでしょうか。
ホストマシンからゲストマシンへのローカルIPアドレスでの接続はできることを確認しております。
正しい単語がわからず、雰囲気で表現してしまっているところもあると思いますが、
どなたかご教授願います。
オフライン
ネットワークを NAT から ブリッジに変更してみてください。
オフライン
ブリッジに変更してありますが、そこからわかりません。
ブリッジにしたことで、仮想内のIPもホストマシンのIPと同じになりました。
そこから、どうすればいいのでしょうか。
何もわからなくて申し訳ないです、ほんとうに。
オフライン
普通、ホストと仮想環境ではネットワークアダプタが異なるだろうと思うのですが(実際にハード的には同じものを使用しているのですが)。
設定-ネットワーク-高度で MAC アドレスを任意に変えてみても、状況は同じでしょうか?
オフライン
すみません。
もう一度質問をまとめさせていただきます。
まずそもそも、サーバとは、以下のような考えでいいのでしょうか
WWW(インターネット)
↓
ルータ
↓
・PC → 仮想内(サーバ)
LAN内からサーバにアクセスするときはプライベートIPでアクセスできるのはわかりました。
では、LAN外、つまりインターネットからサーバにアクセスするには、どうすればいいのでしょうか。
1.グローバルIP(ルータ?)にWWWからアクセス
2.そこからプライベートIPを辿ってサーバ
のような流れなのでしょうか?
そうだとすると、グローバルIPに接続してきたクライアントは、どこにアクセスしようとするのでしょうか。
家には3台普通のPC(家族使用中)がLANに接続されています。
その中で、うまいこと自分のPCの、それも仮想マシンのapacheに接続させる方法というか、仕組みが全くわかりません。
文章にすると自分でも何が言いたいのか分からなくなりそうです。
こんな汚い文章でも、理解してご教授くださる先生はおられないでしょうか?
よろしくお願いします。
オフライン
あー、ごめんなさい、意図していることが分かりました。
間にルータを噛ませているのであれば、それは、ルータのアドレス変換とかポートマッピングといった機能を使ってやります。
詳しくはルータの説明書をご覧いただきたいのですが、例えば、www.example.com ドメインに外部からアクセスがあったときに、そのリクエストを LAN 内に設置したどのマシンに処理させるかということを、ルータで設定します。
と言うか正確には、ポートマッピングと言うことですので、外部から http(80 番) や、POP(110 番) などのサーバポートにリクエストがあったときに、その要求を LAN 内のどのマシンに飛ばすかと言うことですね。
LAN 内のそれぞれのマシンに、192.168.1.x とかプライベートアドレスが割り振られていると思いますが、ルータの機能で、そのうちのどのマシンに処理させるかを設定するのです。
ところで、固定のグローバル IP をお持ちなのでしょうか? そうでなければ 外部から IP でアクセスするというのは、それなりに大変だと思うのですが。
LAN 内であればプライベート IP でアクセスできますが、インターネット側からでは固定の IP でないとアクセスが困難だと思います。
ダイナミック IP でも不可能とは言いませんが、頻繁に IP が変わってしまいますので現実的ではありません。
オフライン
理解してくださってありがとうございます;
ルータで設定するのですね、わかりましたありがとうございます。
キーワードもわかったので明日にでも詳しくググッてみたいと思います。
ところで、固定のグローバル IP をお持ちなのでしょうか?
ダイナミックDNSを利用する予定なのですが、難しいのでしょうか?
オフライン
ダイナミックDNSを利用する予定なのですが、難しいのでしょうか?
いや、そんなことは無いですよ。
ただ、IP でアクセスしたいということだったようなので。
ドメインをとる予定はないのですか?
オフライン
ドメインを取る予定は今のところないです。
今更ですけど、このスレッドにおいて、以下のように定義させていただきます。
ホストOSのIP: 192.168.0.4
仮想マシンのIP: 192.168.0.80(固定)
グローバルIP: **.**.**.*
ダイナミックDNS: domain.net
ルータ側の設定(ポート変換設定)で、
TCP:80ポートへのアクセスを仮想マシン(192.168.0.80)に転送するように設定しました。
その設定後、http://**.**.**.*/にアクセスしてみましたが、接続エラーになります。
何が原因か、全く思い当たることがなくなってしまいました。
助けてください;
オフライン
#9に追記です
http://**.**.**.*/はエラーですが、
http://192.168.0.80/にアクセスすると、正常に表示されました。
オフライン
butachokin による投稿:
http://**.**.**.*/はエラーですが、
http://192.168.0.80/にアクセスすると、正常に表示されました。
まず最初に、そのエラーメッセージを教えてください。
次に確認と質問です。
http://**.**.**.*/ には、Lan外からアクセスされてるんですよね?
http://192.168.0.80 にはLan内からアクセスされてるんですよね?
http://**.**.**.*/ には携帯とかでアクセスしてみるって手もありますよね。
さて、Apache2が正常に動作して、自ホスト上でhttp://localhostまたは、同一Lan内のPCからhttp://192.168.0.80/で「It Works!(だったかな?)」が表示されるのに、ルータの外からアクセスするとエラーが表示されるということなら、やはりルータの設定を疑います。
ルータのメーカー名・型番を書くと、より早い解決に結びつくかもしれません。
# メーカーによって設定項目の名称が異なったりする場合もあり、今後の質疑応答に齟齬をきたさないためにも明示されてください。
最後に、どのような用途で使用されるのか分かりませんが、無償で配布されるドメインもあります。
有名なところではDynDnsとかです。海外のサービスなので、このあたりの解説をみると分かりやすいかもしれません。
こういったサービスを使用されると、より一般的なサーバー公開の形となり、公開のための情報も集まりやすいかと。
オフライン
まず最初に、そのエラーメッセージを教えてください。
エラーメッセージは、Firefox標準の接続エラーです。
Firefox による投稿:
正常に接続できませんでした
**.**.**.* のサーバへの接続を確立できませんでした。
* このサイトが一時的に利用できなくなっていたり、サーバの負荷が高すぎて接続できなくなっている可能性があります。しばらくしてから再度試してください。
* 他のサイトも表示できない場合、コンピュータのネットワーク接続を確認してください。
* ファイアーウォールやプロキシでネットワークが保護されている場合、Firefox による Web アクセスが許可されているか確認してください。
ルータのメーカー名・型番を書くと、より早い解決に結びつくかもしれません。
BUFFALOのWZR-AMPG300NHです。
それと、Ubuntu server側で、apacheの設定は何も変更していないのに、DocumentRootが初期設定(/var/www)に戻ってしまいました。
今までは、(/home/username/domain.net)に設定していました。
server側で弄ったとすると、ネットワークの設定を固定IPにしました。
もう一つネットワーク設定を新規作成し、DHCPを使用する元の設定も再現してみましたが、
DocumentRootが(/home/username/domain.net)にもどることはありませんでした。
DocumentRootを設定している部分を貼っておきます。
/etc/apache2/sites-available/domain.netの一部です。
<VirtualHost domain.net:80>
ServerAdmin [email protected]
DocumentRoot /home/user/domain.net
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<<中略>>
</VirtualHost>
いろいろと問題が出るたび、挫折しそうです;
お力をお貸しください;
オフライン
butachokinさん による投稿:
エラーメッセージは、Firefox標準の接続エラーです。
Firefox による投稿:
正常に接続できませんでした
**.**.**.* のサーバへの接続を確立できませんでした。
* このサイトが一時的に利用できなくなっていたり、サーバの負荷が高すぎて接続できなくなっている可能性があります。しばらくしてから再度試してください。
* 他のサイトも表示できない場合、コンピュータのネットワーク接続を確認してください。
* ファイアーウォールやプロキシでネットワークが保護されている場合、Firefox による Web アクセスが許可されているか確認してください。
ルータに割り振られたIPアドレスのport80に接続しにいってはみたものの、相手が反応してくれないので困ってるってメッセージですね。
butachokinさん による投稿:
BUFFALOのWZR-AMPG300NHです。
マニュアルの「ルーター機能設定」->「ポートを開放する方法(インターネットゲームをする/サーバーを公開する)」を見て設定してください。
butachokinさん による投稿:
それと、Ubuntu server側で、apacheの設定は何も変更していないのに、DocumentRootが初期設定(/var/www)に戻ってしまいました。
今までは、(/home/username/domain.net)に設定していました。
設定が誤っています
インターネットへ公開するのなら、domain.netなどと、自分のものではないドメインを名乗ってはいけません。
【1】/var/www直下にコンテンツを置きたいなら、デフォルトで構いません。
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>
上記に戻してください。
または、コンテンツの管理がユーザーディレクトリにあった方が楽かもしれませんので、以下のように設定します。
【2】
DocumentRoot /home/*/public_html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/*/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>
上記設定が終わったら、作成したログインユーザのディレクトリ直下にpublic_htmlと言うディレクトリを作成してください。
butachokinさん による投稿:
それと、Ubuntu server側で、apacheの設定は何も変更していないのに、DocumentRootが初期設定(/var/www)に戻ってしまいました
えー。そりゃ怪談すね。 :)
って、一番考えられるのは、viで上手く保存できてなかったんじゃないですかね?
初めて使うなら、nanoの方が使いやすいかも
sudo nano /etc/apache2/sites-available/default
編集方法のメニューが下部に出ますので、分かりやすいかも。
【1】に設定変更して、ルータの外からグローバルIPアドレスでアクセスしてみてください。「It Works!」が表示されたら、【2】の方法を取るかどうか決めると良いです。
回線にもよりますが、プロバイダからのIPアドレスのリリース期間が短い物もあります。
PCを自宅固定にしておけて、常に通電できるかんきょうなら、やはり無償でも有償でもドメインを取られた方がよろしいかと。
オフライン
butachokin による投稿:
ドメインを取る予定は今のところないです。
今更ですけど、このスレッドにおいて、以下のように定義させていただきます。ホストOSのIP: 192.168.0.4
仮想マシンのIP: 192.168.0.80(固定)
グローバルIP: **.**.**.*
ダイナミックDNS: domain.netルータ側の設定(ポート変換設定)で、
TCP:80ポートへのアクセスを仮想マシン(192.168.0.80)に転送するように設定しました。
その設定後、http://**.**.**.*/にアクセスしてみましたが、接続エラーになります。
何が原因か、全く思い当たることがなくなってしまいました。
助けてください;
えぇと、もう一度確認なのですが、現在ご利用のプロバイダとは、固定のグローバルアドレスを貰える契約になっているのでしょうか?
そうでないならば、グローバルIP: **.**.**.* をどのように確認しているのかは分かりませんが、それは一時的にレンタルされたグローバル IP で、次のアクセス時にはもう違う IP に変わっていて、それでアクセスできないという可能性もあります。
オフライン
server側で弄ったとすると、ネットワークの設定を固定IPにしました。
と言うのは、仮想マシンのIP: 192.168.0.80(固定) を設定したという意味ですよね?
それと、根本的問題として、サーバマシン自体は、80 番ポートを開放しているのでしょうか?
オフライン
petitbootangさん による投稿:
server側で弄ったとすると、ネットワークの設定を固定IPにしました。
と言うのは、仮想マシンのIP: 192.168.0.80(固定) を設定したという意味ですよね?
それと、根本的問題として、サーバマシン自体は、80 番ポートを開放しているのでしょうか?
上記を拝見してふと気づいたのですが、バッファロー社製ルータって、初期設定では192.168.11のセグメントじゃなかったですかね?
オフライン
バッファロー社製ルータって、初期設定では192.168.11のセグメントじゃなかったですかね?
zagan さん、その通りです。私のところもバッファローですので、間違いありません。
あー、ということは、その辺のエラーでしょうかね・・・。
でも、ホストや仮想マシンが、192.168.0.x ですね。
それで LAN 内からはアクセスできている、と言うことですよね。
確かにデフォルトでは、192.168.11.x なのですが、それが気に入らなければ、192.168.0.x とか 192.168.1.x とか別のセグメントに強引に変更することは不可能ではないので、butachokin さんがご自身で変更されたのかも知れませんね。
私もあまり、192.168.11.x が好きじゃなかったりして・・・。
オフライン
butachokin による投稿:
それと、Ubuntu server側で、apacheの設定は何も変更していないのに、DocumentRootが初期設定(/var/www)に戻ってしまいました。
今までは、(/home/username/domain.net)に設定していました。
このことについての追記です。
この確認は、http://プライベートIP/ にアクセスして行っていたのですが、
http://プライベートIP/index.html にアクセスしたところ、正常に(/home/username/domain.net)にアクセスできました。
index.html等を省略した際の設定がおかしい気がするのですが、それはどこで設定すればいいのでしょうか・・・?
>>zaganさん
設定が誤っています
インターネットへ公開するのなら、domain.netなどと、自分のものではないドメインを名乗ってはいけません。
すみません。定義をスレッドの中盤でしてしまって、分かりにくくなってしまいましたが、
domain.netはスレッド上での表記でして、実際は取得したダイナミックDNSのドメイン(サブドメイン)です。
上記を拝見してふと気づいたのですが、バッファロー社製ルータって、初期設定では192.168.11のセグメントじゃなかったですかね?
その通りです(笑
はじめはその11の意味がわからず、いろいろなパターンをネットで見ていたのでとりあえず0に統一させて書き込んでいただけです。
実際は全て192.168.11になっています。
>>petitbootangさん
えぇと、もう一度確認なのですが、現在ご利用のプロバイダとは、固定のグローバルアドレスを貰える契約になっているのでしょうか?
そうでないならば、グローバルIP: **.**.**.* をどのように確認しているのかは分かりませんが、それは一時的にレンタルされたグローバル IP で、次のアクセス時にはもう違う IP に変わっていて、それでアクセスできないという可能性もあります。
固定グローバルアドレスは貰えない契約です。
ダイナミックDNSを利用しています(常にあてられたグローバルアドレスに更新)
また、グローバルIPの確認は下記のwebサイトで行っています。
http://cgi13.plala.or.jp/hiro-mg3/ip.shtml
petitbootang による投稿:
server側で弄ったとすると、ネットワークの設定を固定IPにしました。
と言うのは、仮想マシンのIP: 192.168.0.80(固定) を設定したという意味ですよね?
それと、根本的問題として、サーバマシン自体は、80 番ポートを開放しているのでしょうか?
その通りです。仮想マシンのIP: 192.168.0.80(固定) を設定したという意味かけたところ、80は開放されているとのことでした。
オフライン
追記
>>zaganさん
zagan による投稿:
マニュアルの「ルーター機能設定」->「ポートを開放する方法(インターネットゲームをする/サーバーを公開する)」を見て設定してください。
http://buffalo.jp/download/manual/html/air1200/router/wzrampg144/chapter16.html
こちらを参照しましたが、自分が設定した方法と同じでした(もう一度確認してみました)。
オフライン
情報が錯綜してるようなので、改めて
1) /etc/apache2配下のファイル群に対しておこなった編集(設定)とその設定に基づいたその他のディレクトリ・ファイルの変更内容
2) ルータの変更内容
3) DDNSを取得した場合、そのサービス名(or URL)
4) グローバルIPアドレスは動的か静的か
5) Webサーバーの基本運用方針
6) その他、一般的でない環境
について書いていただけますか?
# わざわざ書いていただくのは、これまでの設定を棚卸して、ミスを自己チェックするという意味も含んでいます。
※半分くらいは、再度精読するのがめんどーってのもあるんですが…(笑
チェックしていただくうちに、なにかお気づきになって設定を変更し、公開に成功したら、その変更箇所をポストしてください。
で、ひとつ質問なのですが、なぜIPアドレスでアクセスしようとしてるのですか?
オフライン
ぐちゃぐちゃで見にくいですね。
ということで情報をまとめます。
まず、このトピックにおいて、私の書き込んでいる内容の定義です。
以下の単語は、実際は適当なものに置き換えています。
ホストOSのIP: 192.168.0.4
仮想マシンのIP: 192.168.0.80(固定)
Ubuntu-serverのユーザID: username
グローバルIP: **.**.**.*
ダイナミックDNS: domain.net
そして、まとめです(本件と関係のない情報も含まれている可能性があります)
1) /etc/apache2配下のファイル群に対しておこなった編集(設定)とその設定に基づいたその他のディレクトリ・ファイルの変更内容
一、 (/home/username/domain.net)のディレクトリ作成、その配下にindex.htmlおよびcgi-binのディレクトリ作成
二、(/etc/apache2/sites-available/default)のコピーを(/etc/apache2/sites-available/domain.net)に作成
三、(/etc/apache2/sites-available/domain.net)を以下のように編集1-三 による投稿:
<VirtualHost domain.net:80>
ServerAdmin [email protected]
DocumentRoot /home/usrname/domain.net
<<略(変更なし)>>
ScriptAlias /cgi-bin/ /home/username/domain.net/cgi-bin/
<Directory "/home/username/domain.net/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
<<略(変更なし)>>
</VirtualHost>四、($ sudo a2ensite domain.net)を実行
→(/etc/apache2/sites-available/domain.net)を有効化
五、(/etc/apache2/mods-enabled/mime.conf)の165行目を以下のように編集1-五 による投稿:
AddHandler cgi-script .cgi .pl .rb
六、($ sudo a2enmod userdir)を実行
→http://localhost/~username/で(/home/username/public_html)にアクセス出来るようになった
七、IPアドレスを192.168.0.80に固定
2) ルータの変更内容
http://buffalo.jp/download/manual/html/air1200/router/wzrampg144/chapter16.html
の『■ ネットワークゲームや各種サーバーを公開するなど、あらかじめ利用するポート番号が分かっている場合』を実行しました
3) DDNSのサービス名(url)
miniDNS.net (http://www.minidns.net/index.php)
仮にプライベートIP(192.168.0.80)を登録してみたところ、サーバにアクセスできました。
4) グローバルIPアドレスは動的か静的か
動的
5) Webサーバーの基本運用方針
HTTPサーバとして利用。
将来的には拡張(mailやftp等)予定
6) その他、一般的でない環境
VirtrualBox内のUbuntuServerをサーバとして公開しようとしている事。
7) マシン環境
一、ホストマシン
OS: Windows 7 64-bit Professional
CPU: Intel Core i5-750(2.66GHz)
RAM: 2GB*2(4GB)
二、仮想マシン
OS: ubuntu-10.04.1-server-i386
で、ひとつ質問なのですが、なぜIPアドレスでアクセスしようとしてるのですか?
IPアドレスで動作確認するのが、一番手っ取り早いと思っているからです。
何か他にいい方法があるのでしょうか?;
よろしくお願いします。
オフライン
apache2を再読込or再起動させようとするとエラーが出るようになってました。
同じく、どこも弄ってないはずです・・・
以下のエラー内容はそのままのコピペのため、サーバプライベートIPが192.168.11.80になっています
エラー内容 による投稿:
$ /etc/init.d/apache2 reload
* Reloading web server config apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Sep 15 17:05:25 2010] [error] (EAI 2)Name or service not known: Failed to resolve server name for 192.168.11.80 (check DNS) -- or specify an explicit ServerName
httpd not running, trying to start
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
頭がパンクしそうです…
オフライン
本当にごめんなさい。
#22の投稿の原因は、sudoが抜けていただけでした。
それと、プライベートIPにアクセスしてもDocumentRootに従わずに初期設定である(/var/www)にアクセスされていた問題は、
defaultをa2dissiteすることで解決しました。
オフライン
ちなみにですね、ルーターのポート変換はWAN側からのアクセスに対してしか働かないはずなので、LAN内から**.**.**.*(ルーターのグローバルIP)にアクセスしても、192.168.0.80へのアドレス変換はされないと思います。
つまり、LAN側からhttp://**.**.**.* とやると、ルーターの管理webが表示されるか、エラーになるかのどちらかではないかと思います。
そして、実運用に入ろうとしたときに直面されるかと思いますけど、IPではなくFQDN/ドメイン名でLAN内からサーバーにアクセスしようとしたときに同じ事が起きるはずです。
実運用の際にDDNSに登録するIPはグローバルIPになるからです。
オフライン
>>gontomoさん
情報ありがとうございます。
WAN側からの確認として、
携帯(iモード)とaguse.jpのゲートウェイからhttp://**.**.**.*/ へアクセスを試みましたが、どちらもタイムアウトしました。
WAN→LAN→192.168.0.80に変換→192.168.0.80(サーバ)
に設定されているはずなのですが・・・
何度ルータの設定を見なおしても悪いところがわかりません。
オフライン