• ベストアンサー

グローバルIP一つ(固定)でのWeb公開

今回、プロバイダーのコース変更をしグローバルIDを一つ固定でもらいました。 そこで試しにWebを公開したいと思いアパッチをインストールしました。 OSはTurboLinux6.0です。 とりあえず、LAN内ではアクセスすることできました。 しかし、他のプロバイダーからアクセスするとできません。ログを見てみると下記のようなメッセージが残っています。 98)Address already in use: make_sock: could not bind to port 80 これって、ポート80が使えません。っていうことですよね。 っていうことはWebを公開するためのポートを80以外にすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ken2
  • ベストアンサー率36% (86/235)
回答No.9

IPフィルターの設定も特におかしいとは思えないですね。 ここで、ひとつ提案ですが、eth0も固定のアドレスなのですから、この際インターネットから外してみて、eth0がわにHUBとPC(当然このサーバーにアクセスできるIPアドレスをふる)をつないでみて確認されてはいかがでしょうか? これで、サーバーの問題かどうかは、切り分けできると思うのですが。

YUNTAKU
質問者

お礼

Ken2様 ご回答ありがとうございます。いろいろ試してみましたが、やはりできない様です。 CATVのコース変更をしてサーバーOKのコースに変更中です。 32,000円/月もするけど、、、いたい、、、 とりあえず、ここはいったん締めようと思います。 私の意味の分からない質問にご返事を下さった方、本当にありがとうございました。

その他の回答 (8)

  • ken2
  • ベストアンサー率36% (86/235)
回答No.8

いろいろやっているようですが、まだ使えてないようですね。 LANからアクセスできるのなら、httpdは、動いているようですね。 2本足ということは、IPフィルターの問題でしょうか? ipchains -Lで、IPフィルターの設定がでてきます。 ipchainsは、どのように設定されたのでしょうか? eth0に対して、80番ポートは、inputで、anyからacceptになっているでしょうか?

YUNTAKU
質問者

補足

ken2様 ありがとうございます。 早速 ipchains -L とやって見ましたところ Chain input (policy ACCEPT): Chain forward (policy DENY): target prot opt source destination ports MASQ all ------ 192.168.1.0/24 anywhere n/a Chain output (policy ACCEPT): と出ます。 ipchainsの設定は、 /etc/rc.d/rc.localに以下のように追加しています。 /sbin/depmod -a /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_raudio /sbin/modprobe ip_masq_irc /sbin/modprobe ip_masq_vdolive /sbin/modprobe ip_masq_cuseeme ipchains -P forward DENY ipchains -A forward -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQ >eth0に対して、80番ポートは、inputで、anyからacceptになっているでしょうか? 申し訳ありません。上記の調べ方又は設定の仕方がわかりません。。。 お手数ですが、教えていただけますでしょうか?

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.7

あれれ? グローバルIPを入力して > [WAN側アドレス]80: Unknown host ですか。 "[WAN側アドレス]"とポート番号の"80"の間には,スペース入れるんですけど,これ抜けてないですか? >>$ su -c "netstat -atp" >流れてしまって確認することができません。。 表示が一画面に収まりきらないとき,"|"(パイプ)を利用すると良いです。 コマンドの後に"| less"や"| more"を付け足しましょう。 最後に,"httpd.conf"の"ServerName"行ですが,今の状況ならこれは必要ないでしょう。

YUNTAKU
質問者

補足

onosuke 様 ありがとうございます。 > [WAN側アドレス]80: Unknown host ですか。 "[WAN側アドレス]"とポート番号の"80"の間には,スペース入れるんです>けど,これ抜けてないですか? やってみましたが、同じですね。。。これって80のポートが開いていないということでしょうか? >$ su -c "netstat -atp" こちらの方もやってみました。 ご指摘の通り、|moreをつけることによって全てみることができました。でも、80のポートを使っているという記述が無いんです。。。 apacheの設定方法が根本的に間違っているのでしょうか? 何か80のポートを開放するという設定が必要なのでしょうか? 素朴な疑問なんですが、もし80のポートが開いていなくても、LAN内ではアクセスすることができるのでしょうか? LAN内から、ポートスキャンすると80は開いているのですが、他のプロバイダーからポートスキャンすると開いていません。。。 ん~~~だんだん混乱してきました。 本当に申し訳ありませんが、ご指摘の程お願いします

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.6

えーっと,こいつなんですが $ echo "GET /index.html HTTP/1.0 > >" | telnet [WAN側アドレス] 80 [WAN側アドレス]の部分,グローバルIPに置き換えてもらえました? [WAN側アドレス]っていうのは,そういう意味です。 TurboLinuxマシンのネットワーク構成はどうなっているのでしょう? eth0-WAN(グローバルIP) eth1-LAN のようなDualHome構成?NATルータなんて使ってないですよね? 詳しいところお願いします。 > httpd.conf の設定で ServerName のところにグローバルIDを > 入れたのですが、設定はこれでいいのでしょうか? 通常,ServerName設定は必要ないです。 が必要かどうかは,ネットワークの環境次第ですね。 >もし、ポートを80以外に設定する場合は、httpd.confのPortの >番号を開いているポートに割り振ればいいのでしょうか? はい,OKです。 あ,そうそう.... $ su -c "netstat -atp" こいつは,TCPポート番号の利用状況とそのプログラムがわかります。(suしないと,全てのプログラム名は表示されない)中でも,State行:LISTENとなっているのは,そのポートでサーバが動いています。 > もし、80以外にした場合はどのようにアクセスすればいいのでしょうか? URLなら http://localhost:[ポート番号]/ と,":"の後にポート番号を付け足す。前回のtelnet使う方法なら, $ echo "GET /index.html HTTP/1.0 > >" | telnet [ホスト名/IP] [ポート番号] です。

YUNTAKU
質問者

補足

onosuke様ありがとうございます。 >[WAN側アドレス]の部分,グローバルIPに置き換えてもらえました? >[WAN側アドレス]っていうのは,そういう意味です。 ハイ大丈夫です。グローバルIPを入れました。 >TurboLinuxマシンのネットワーク構成はどうなっているのでしょう? >eth0-WAN(グローバルIP) >eth1-LAN >のようなDualHome構成?NATルータなんて使ってないですよね? >詳しいところお願いします。 おっしゃるとおりです。 eth0にグローバルIPを振り eth1にLAN側のIP(192.168.1.1)を振っています。 >$ su -c "netstat -atp" >こいつは,TCPポート番号の利用状況とそのプログラムがわかります。(suしないと,全てのプログラム名は表示されない)中でも,State行:LISTENとなっているのは,そのポートでサーバが動いています。 これを実行するとたくさんのメッセージがバーァっと出てきます。80はかなり上の方なのでしょうか?流れてしまって確認することができません。。。 本当に申しわけありません。。。いろんなホームページや本を参考にしているのですが自力ではどうしても無理なようです。 お忙しいとは思いますが、ご教授お願い致します

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.5

ども,こんばんわ。 前回の質問で,INETデーモン:"inetd",apacheはServerType:standaloneで起動している,以上2点がわかりました。(standaloneなのでINETデーモンはもう用なし) > 98)Address already in use: make_sock: could not bind to port 80 件のエラーメッセージですが,これは今の問題とはとりあえず関係なさそうです。 (このエラーがでるとapacheは起動しない,だがhttpdがプロセスリスト(ps)に並んでいる) もっとも, 「最初からapacheはインストールされていたのではないか?」 「現在は元々のapache or 元々のに上書きしたapache が動いている?」 といった,新たな疑問も出てしまいます。(^^;; ちなみに,あのエラーの問題解決が必要なとき,原因はTurboLinuxマシン内に収まります。 $ echo "GET /index.html HTTP/1.0 > >" | telnet [WAN側アドレス] 80 (echoの後の"(ダブルクォート)閉じずに改行いってください) で"index.html"の内容が画面に出て来るか一度確認してみては? > っていうことはWebを公開するためのポートを80以外にすればいいのでしょうか? httpd.confでポート番号80以外に設定し,それでうまくいくようならCATV会社で内向き宛先TCPの80番ポートを閉じていることになります。試してみる価値は十分ありますが,あのエラーで『っていうことは』にはなりませんね。

YUNTAKU
質問者

補足

onosuke 様 ご回答ありがとうございます。 試しに、apacheの入れ直しをしてみました。すると以前のエラーログは出なくなり何も出なくなりました。 $ echo "GET /index.html HTTP/1.0 > >" | telnet [WAN側アドレス] 80 とやってみたところ、 [WAN側アドレス]80: Unknown host とエラーメッセージが出ました。 httpd.conf の設定で ServerName のところにグローバルIDを入れたのですが、設定はこれでいいのでしょうか? もし、ポートを80以外に設定する場合は、httpd.confのPortの番号を開いているポートに割り振ればいいのでしょうか? もし、80以外にした場合はどのようにアクセスすればいいのでしょうか? 申し訳ありませんが、教えてください

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.4

$ ps axe | grep httpd $ su -c "netstat -atp" $ su -c "ls /etc/xinetd.d" $ su -c "cat /etc/inetd.conf" とやると,どんなのでます? 98)Address already in use: make_sock: could not bind to port 80 このメッセージはWebサーバソフトのログでよいのかな。 Webサーバソフト名とログの他のメッセージもいただけますか?

YUNTAKU
質問者

補足

onosuke 様ご回答ありがとうございます。早速試してみましたところ > $ ps axe | grep httpd 412 ? S 0:00 httpd 693 ? S 0:00 httpd 694 ? S 0:00 httpd 695 ? S 0:00 httpd 696 ? S 0:00 httpd 697 ? S 0:00 httpd 698 ? S 0:00 httpd 699 ? S 0:00 httpd 700 ? S 0:00 httpd 701 ? S 0:00 httpd 702 ? S 0:00 httpd 2778 ? S 0:00 grep httpd > とメッセージがでます。 $ su -c "netstat -atp" とやると パスワードを求められましたのでrootのパスワードでログインしました。 すると今立ち上がっているデーモンでしょうか?たくさん出てきました。 > $ su -c "ls /etc/xinetd.d" とやると また、パスワードを入力して ls: /etc/xinetd.d: No such file or directry とでます > $ su -c "cat /etc/inetd.conf" こちらは、ものすごい長いメッセージが出てきます。 Webサーバーはアパッチです。ログは、Webサーバーのログです。場所は /etc/local/apache/logsのerror_logの中にあるのですが、この一行以外にはメッセージはありません。 同じ場所のaccess_logも空っぽのままです。

  • ken2
  • ベストアンサー率36% (86/235)
回答No.3

やはりまずそのアドレスに対してpingがとおるのかを確認し、nslookupで逆引きしてみてそのプロバイダーが持っているIPアドレスなのかを見たほうがいいともいます。 LANからは、当然アクセスできると思いますが、外からアクセスできないのは、アドレスが間違っていて、ルーティングできないのではにかとも思います。 ほんとに割り当てられたのなら、そんな80番ポートがつかえないような割り当てはしないと思います。 IPアドレスとネットマスクもきちんと確認されたほうがいいと思います。

YUNTAKU
質問者

補足

ken2 様 ありがとうございます。 nslookup で確認しましたところ、私の契約しているプロバイダーのものでした。 アドレスの間違いはないと思います。。。。 IPアドレス、サブネットマスクともに確認してみましたが、間違いは無いようです

  • ikeuchi
  • ベストアンサー率28% (91/314)
回答No.2

外からグローバルアドレスに対してpingは通りますか?また、Internet Test Tools (http://www.vector.co.jp/soft/win95/net/se078518.html)などを使ってポートスキャンをかけてみてはいかがでしょう。 私の場合、CATVでIPはDHCPで可変割り当てですが、外からはプロバイダ側で1024までのポートは止められています。同じようなことがあるのかも。

YUNTAKU
質問者

補足

ikeuchi 様ご回答ありがとうございます。 外からグローバルアドレスに対してのPINGは通ります。 ご指摘の通りポートスキャンをかけてみたところ80は開いていませんでした。1024までで開いていたのは下記のポートです。 7 9 13 15 19 22 23 グローバルIPはDHCPではなく固定になっています。 CATV側で80をふさいでWebサーバーをできなくしているのでしょうか?もし、そうでしたら何らかの方法で作ることはできないのしょうか?

  • ikeuchi
  • ベストアンサー率28% (91/314)
回答No.1

システム構成が判らないので、何とも言えません。 LAN内からはプライベートアドレスでアクセスしていませんか? 1個のグローバルアドレスは、アパッチのサーバに割り当てられていますか?ルータなどに割り当てられていませんか? 外からアクセスしたときに、該当アドレスの80ポートがオープンできない=サーバが見えていない様に思いますがいかがでしょう。

YUNTAKU
質問者

補足

申し訳ありません説明不足ですね。 LAN内からのアクセスはグローバルアドレスでアクセスしてもプライベートアドレスでアクセスしてもアクセスできます。 グローバルアドレスはTurboLinuxに振られています。ルーターなどは入れていません。 >外からアクセスしたときに、該当アドレスの80ポートがオープンできない=サーバが見えていない様に思いますがいかがでしょう。 外からアクセスしようとしたときは、ブラウザのエラーはかなり時間がたったあげく、 「サーバー」に問題が発生していますみたいなことが書かれています。

関連するQ&A

  • fedora core1にapache

    apacheをインストール後、ブラウザでテストすると port80 だけ動きません。 cat /opt/apache/logs/error_log | more をチェックすると すでに80は使われているみたいなのですが、 [Fri May 21 19:08:46 2004] [crit] (98)Address already in use: make_sock: could not bind to port 80 どうしたらいいでしょうか? 改善策をアドバイスお願いします。

  • CATVでのWEBサーバーの公開

    現在CATVでネットに接続しています。Turbolinux6.0をサーバーにして社内用のWebサーバーはできています。 グローバルIPは一つもらっているのですが、これをLANの中でアクセスするとみれるのですが、他のプロバイダーからアクセスすると見れません。 アパッチを使っています。 外から見れるようにするには何か設定が必要なのでしょうか?

  • freeBSD 4.11p8からp9へupgrade後、httpsdがが起動しません

    今回のSAにより、freeBSD 4.11-R p8だったマシンをp9へアップグレードしました。makeworldの後reboot後、これまでのように # /usr/local/etc/rc.d/apache2.sh start でapacheを起動しようとしたところ、 Starting apache2. (48)Address already in use: make_sock: could not bind to address [::]:443 no listening sockets available, shutting down Unable to open logs のようなエラーが出て、apacheが立ち上がってくれません。 どなたかアドバイスいただけないでしょうか? よろしくお願いいたします。

  • Apacheをroot以外の権限で動かしたいのですが、可能でしょうか。

    Apacheをroot以外の権限で動かしたいのですが、可能でしょうか。 (BOF対策です。) 現在、CentOS 5.4を使用しており、root以外のユーザでapacheを起動すると、 Permission denied: make_sock: could not bind to address 0.0.0.0:80 とポート80に対する権限が無いと怒られてしまいます。 以上、よろしくお願いします。

  • Apache起動エラー

    Apacheを起動したときに「通常、各ソケット アドレスに対してプロトコル、ネットワークアドレス、または、ポートのどれか1つのみをしようできます。:make_sock:could not bind to address 0.0.0.0:80 no sockets available,shutting down Unable to open logs・・・ 」といったメッセージが出て起動しません。どのようにすればよろしいでしょうか。よろしくお願いいたします。

  • WEBサーバーの公開

    WEBサーバーを公開したいと思っております。 そもそも『Aterm WR7610HV』で公開は可能でしょうか?? とりあえず、ポートマッピング設定で 変換対象ポートを80、 宛先アドレスを公開するサーバーのプライベートIP で登録。 その後、パケットフィルタ設定で フィルタ種別を通過 送信元IPアドレスを * 宛先IPアドレスを公開サーバーのプライベートIP プロトコル種別をTCP 送信元ポートを 80 宛先ポートを 80 方向を両方向 で登録してみました。 IPは複数です。 ネットの外部よりの接続確認でポート80番が空いていないか、apacheが起動していないといわれます。apacheはローカルでアクセスできるので、起動しています。 ご存知の方がいらっしゃいましたら宜しくお願いします。

  • MAMPのエラーについて

    こんちには MAMPのApacheは立ち上がるのですが、 MySQLサーバーが立ち上がりません。 Can't start server: Bind on TCP/IP port: Address already in use Do you already have another mysqld server running on port: 3306 ? とエラーがでます。 どうかお助け下さい。 よろしくお願い致します。

  • PHP

    CentOS6でアパッチを起動しようとすると ルート権限で service httpd start コマンド打つと Permission denied: make_sock: could not bind to address [::]:18080 とでて失敗します。 なぜでしょうか?

  • アパッチ2.2.11が起動しません。

    アパッチ2.2.11が起動しません。 XAMPP version 1.7.1を導入しています。アパッチがなぜか起動しなくなりました。 ポート80はfreeです。 MySqlは通常通り軌道します。 apache_start.batを実行すると、 「要求したアドレスのコンテキストが無効です。:make_sock:could not bind to address 12.34.56.78:81 no listening sockets available,shutting down Unableto open logs Apache nicht gestartet werden Apache could not be started」 とでます。解決方法がありましたら、ご教授下さい。 windows7 32bitを使用しております。

    • ベストアンサー
    • PHP
  • Apacheのインストール

    いつも拝見しています。 環境:Red Hat Enterprise Linux ES v.4 32bit/EM64T PHPをインストールしようと思ったら、configureでエラーになってしまったので Apacheもソースからインストールしようと思い、インストールできたのですが、Apacheの起動ができません。 # /usr/local/apache2/bin/apachectl configtest では問題ないのですが # /usr/local/apache2/bin/apachectl start を実行すると -------------------- (98)Address already in use: make_sock: could not bind to address [::]:80 no listening sockets available, shutting down Unable to open logs -------------------- とエラーになってしまいます。 また、/etc/rc.d/init.d/httpd にはシンボリックリンクを張らなくてはいけないのでしょうか? 張るとしたらどうすればいいですか? ご教授よろしくお願いいたします。