質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • Linux

    3764questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • ネットワーク

    538questions

    ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

  • Webサーバー

    437questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

仮想マシンを通して自宅のWebサーバにアクセスできるようにしたい

解決済

回答 3

投稿

  • 評価
  • クリップ 2
  • VIEW 824

Necoco46

score 7

現在、自宅にWebサーバがあります

マンションのネット環境が
グローバルアドレスが割り当てられていない状態です。

そのためポートの開放ができないため

解決策として
クラウドサービスを利用して
仮想マシンを通して自宅のWebサーバにアクセスするという手法を考えております。

イメージとしてはこういう感じで考えてます
外部アクセス→仮想マシン→自宅のWebサーバ

外部アクセス者が自宅のWebサーバにアクセスができる状態にしたいです。

またグローバルアドレスはDDNSでグローバルアドレスが変わったとしても、固定されたアドレスでアクセスできるように設定してます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

「自宅サーバのHDDにある多量のデータをインターネットに公開する方法」としては
技術的には大まかに以下の6つの方法があるかと思います。

  • 契約的にはデータトラフィックが多い場合や、P2Pによるファイル交換と判断された場合に通信制限や契約解除等の対象になるケースがある場合があると思います。(サーバ公開に使うなと明示されている場合もあるかと思います)
  1. クラウドのサーバと自宅のサーバをVPNで接続して、同一ネットワークに所属している状態にして、NFS等の方法で自宅サーバのHDDをクラウドのサーバにマウントする
    (無料で構築可能(クラウドのサーバ料金は発生)。無料でやろうとすると構築自体は割と大変、2000円/月くらいからの有料サービスを使えばとても簡単)
  2. 自宅サーバからクラウドサーバに常時SSH等で接続して、簡易的にVPNを構築して、NFS等の方法で自宅サーバのHDDをクラウドのサーバにマウントする
    (無料で可能(クラウドのサーバ料金は発生)。ssh 逆トンネリングあたりで検索すると例が出てきます。SSHが切れたら接続しなおす部分は自分でどうにかしないといけません)
  3. 自宅サーバのHDDの内容をクラウドサーバに常時同期させてクラウドサーバにアクセス
    (無料で可能(クラウドのサーバ料金は発生)。クラウドサーバ側のストレージ容量が十分な場合は最も簡単でお勧め。FTP 同期 自動化あたりで検索すると具体的な方法が出てきます)
  4. 自宅サーバが固定グローバルIP経由でインターネットに接続出来るようなVPNサービスを使用してインターネットから直接自宅サーバにアクセス出来るようにする。
    (有料 https://www.interlink.or.jp/service/myip/ の様なサービス。設定自体はとても簡単なので1000円/月位を支払えるならお勧め。直接自宅サーバにアクセスさせることになるので、自宅サーバのセキュリティについて十分な知識と設定が必要)
  5. wimaxやsoftbankAir,その他3G/LTEと言った無線回線を用意してそちら経由にする
    (データの数が多いが容量自体は少ない/通信速度が遅くても良いという場合は500円/月くらいから可能。直接自宅サーバにアクセスさせることになるので、自宅サーバのセキュリティについて十分な知識と設定が必要)
  6. GoogleDrive/photosやその他クラウドストレージサービスを経由させる
    (条件次第で無料で可能(動画は再エンコードされることを許容すれば無料で容量無制限)。500円/月で結構な容量の使える/面倒をみなくていいので条件が合うなら一番お勧め。ローカルと常時同期も可能)

個人的には、3(FTPで常時同期)か6(GoogleDriveにやらせる)あたりがハードルが低く、かつセキュリティ的にも考えることが限定されるので楽かなと思います。

要件が「自宅のwebサーバにアクセスさせたい」の場合(追記)

自宅のwebサーバでしか動かないプログラムがあるなどの場合は、
1,2の方法でマウントするのではなく、クラウドのサーバをプロキシサーバにするか、iptables等でNATさせる。
もしくは4,5の方法でインターネットからの直接アクセスの経路を用意すれば可能です。

情報収集方法について追記
自宅サーバを公開したいという分野は結構昔からあるので、自宅サーバ公開 マンションあたりで検索すると具体的な設定を含めて多くの情報に行き当たりますので、要件に合いそうなケースを実際に試されてみることをお勧めします。
*最終的にはどうしてもケースバイケースになってしまいますが、具体的に試した後であれば、質問もより具体的になり、ケースに対応した回答が得やすくなるかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/11 19:54 編集

    横から失礼いたします。
    「自宅サーバのHDDにある多量のデータをインターネットに公開する方法」ではなく、
    質問者様は、「シンプルなWebサーバではない」と言われているように、「自宅Webサーバをインターネットに公開する方法」をお探しなのではないでしょうか。
    文脈からすると、なおかつ「Webサーバに紐ついているのがHDDにある多量のデータ」があるのではないでしょうか。

    なお、グローバルアドレスが割り当てられていないとの事ですので、マンションの契約形態が、プライベートVLANで構築されている物と推定されます。
    であるならば、1で言われているVPNを張ろうにも、特殊なVPNの張り方をしないと出来ないが正解となろうかと思いますが・・・
    ※とても大きなセキュリティホールを作成する事になるので、質問者さんのマンションでは出来ないが正解かと思いますが・・・

    ごぞんじかと思いますが、プライベートVLANとは↓
    http://www.infraexpert.com/study/vlanz12.html

    キャンセル

  • 2017/11/11 20:13

    > 自宅のWebサーバに多量のデータが入った外部HDDをマウントしているためシンプルなWebサーバではないためです。

    との事なので、「外部HDDの中身(おそらく、ローカルでの作業等で常時更新される)をインターネットに公開したい」というのが要件と判断し回答しました。

    > なお、グローバルアドレスが割り当てられていないとの事ですので、マンションの契約形態が、プライベートVLANで構築されている物と推定されます。
    であるならば、1で言われているVPNを張ろうにも、特殊なVPNの張り方をしないと出来ないが正解となろうかと思いますが・・・

    プライベートVLANを超えられるかどうかはVPNの仕様とネットワークの設定次第なので、(無料でやろうとすると構築自体は割と大変)と表現しました。
    最終的にはケースバイケースになりますがNATトラバーサルに対応する設定を行えば、自宅サーバがVPNクライアントになる事は多くのケースで可能だと思いますが如何でしょうか(これはVPN構築において特に特殊なケースとは思いません)?

    また、SoftEatherの様なVPN over HTTPSなVPNであれば、ネットワークでVPN関連のプロトコルを防がれていても透過可能です。

    キャンセル

  • 2017/11/11 20:21

    >SoftEatherの様なVPN over HTTPSなVPNであれば、ネットワークでVPN関連のプロトコルを防がれていても透過可能です。

    通常のマンション住まいの方(自宅)に、これをお勧めされるのでしょうか?
    ですので、企業であればと表現しております。
    ※SoftEatherのページに、マンション等の場合はと、かなりキツク、注意書きが書いてありますが・・・

    キャンセル

  • 2017/11/11 20:32

    他人に迷惑がかからない、個人でも可能な、常識的な範囲での回答を期待いたします。
    質問者さんは、企業の人ではないので・・・

    キャンセル

  • 2017/11/11 20:35

    > 通常のマンション住まいの方(自宅)に、これをお勧めされるのでしょうか?

    すみません、何故 「通常のマンション住まいの方(自宅)」に「技術的にめんどくさくてケースによっては実現できないかもしれない可能性」を提示してはいけないかが理解できません。

    teratailは「思考するエンジニアのためのQAサイト」なので、上記のような回答が不適切だとは思えませんが。。。

    キャンセル

  • 2017/11/11 20:52

    > 他人に迷惑がかからない、個人でも可能な、常識的な範囲での回答を期待いたします。
    質問者さんは、企業の人ではないので・・・

    申し訳ありませんが、teratailの利用に際して回答に対するスタンスを他の回答者様と擦り合わせる必要を感じませんので、スタンスについての回答は控えさせていただきますね。

    (最終的にはケースバイケースですが)Softetherについては、少なくとも私が過去にいくつかの集合住宅で使ってみた経験では通常のVPNよりは「かなり」ハードルが低いので一度お試しになってみて下さい。
    * https://www.interlink.or.jp/service/myip/ の様な有料サービスを使うと敷居はもっと下がります。

    キャンセル

+1

サーバをライブラリに頼らずNode.js等を使って自力で構築する腕さえあれば何とかなりそうですね。

まずVPS等のサーバをConoHa等で借ります(以下VPSと命名)
TCPサーバ(!?)をVPS上で構築し、また同じプロセスでWebサーバも構築します。
要件は以下

  • Webサーバはポート80で待ち受ける
  • 同じプロセスでTCPサーバを立ち上げ(コネクションは5本程度)、マンション内の自宅からのコネクションを待ち受ける
  • Webサーバにアクセスが来たら、TCPメッセージを送信してレスポンスを受け取り代わりに返す

家庭内でもTCPクライアントを自作します。
要件は以下

  • VPSサーバにTCPクライアントとしてログインしてコネクションを張りっぱなしにする
  • VPSサーバからのリクエストメッセージを受信すると、localhost/[pass]へアクセスを行いTCPでVPSにレスポンスを(headerもbodyも)ストリーム送信する

ただし、これ全部面倒みるとなると……
セキュリティの事や障害対応を一切考慮してませんので、上記に挙げてない具体的な仕様も突き詰めると
よほど優れたエンジニアでない限り開発だけでも数ヶ月は余裕でかかるでしょう。


まぁ最終的にはtanatさんと同じ結論に回帰してきます。
OpenVPNを使うが安全確実でしょう。
これだとVPSサーバと同じLANの中の1PCとして存在出来るようになります。

HDD内のファイルを外部から繋いで取り出す事が主目的ならばtanatさんの案をそのまま採用しましょう。
質問文通り自宅鯖が目的なのであればVPSサーバにNginx等を入れてリバースプロキシサーバとして動かし、
VPN内のLAN経由で自宅サーバの80番ポートに叩くようにすれば自宅のWebサーバを公開することが可能です。

ただし、自宅に何台も外付けHDDをあることから想像して、アニメ等の動画、音楽データ…その他ごにょごにょした非常に重いファイルが多数あることでしょう。
それらをアクセス制限やトラフィック制限なしで不特定多数相手に公開してしまうと、
著作権法違反でしょっぴかれたり、マンション内のトラフィックを吸い尽くしてマンションから叩き出されたりする可能性がありますので、くれぐれも用法用量を守って正しくお使いください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

?自宅のWebサーバでないといけない理由がよく分からないのですが?
別に、仮想マシン上に、Webサーバーを構築すれば良いのでは?

若しくは、そもそもマンションの固定回線を使用せず、WiMAXなどを契約して、サーバーと有線接続すれば良いのではないでしょうか。

なお、調べた所、技術的には出来るとの事ですが、とても大きなセキュリティホールとなり、最悪の場合、他人の情報流出およびマンションオーナーから訴訟されたり、法律に抵触する場合もあります・・・とだけ記述しておきます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/11 00:23

    自宅のWebサーバに多量のデータが入った外部HDDをマウントしているためシンプルなWebサーバではないためです。

    WiMax契約はお金がかかるためできればコストを削減したいため仮想マシンを活用してます。仮想マシンは月500円です。

    キャンセル

  • 2017/11/11 00:31

    であるならば、方法はないという結論となります。
    企業であるならば、ネットワーク管理者、リスク管理者の許可の元、設定する事となります。

    やられたい事と、実コストが乖離している様に思われます。

    キャンセル

  • 2017/11/11 00:36

    まぁ、個人的な感想で言えば、本当にやりたいのであれば、私であればコストをかけてでもやるだろうなと思いました。
    ただほど、安い物ほど、怖い物はないので・・・

    他人様の事なので、ご参考まで・・・

    キャンセル

  • 2017/11/11 00:59 編集

    老婆心ながら、安物買いの銭失いにはお気を付け下さい。
    たかだか、月額500円かもしれませんが、年額6000円・・・
    年額6000円もあったら、一生懸命探せば、別の方法があるような気がしてならないのですが・・・

    キャンセル

  • 2017/11/12 09:50 編集

    WebサーバーをどのPGで作られているのか、HDDの容量がどのくらいあるのか分かりませんが、

    例えばですが、coreserver(https://www.coreserver.jp/price/)であれば、
    ¥397/月で120GB、許容負荷率250%、¥785/月で240GB、許容負荷率1000%が与えられます。

    環境的には以下が対応しています。

    MySQLサーバー 5.7系
    PostgreSQLサーバー 9.6系
    Perl 5.8 5.16系(5.16 デフォルト)
    PHP 7.1 + FastCGI + OPcache + APCu(5.3/5.4/5.5/5.6/7.0 FastCGI選択可)
    Ruby 2.3系(1.8~2.4まで利用可)
    python 2系、3系
    sqlight 2系、3系
    メーリングリスト Mailman
    HTTP/2 対応

    ただし、レンタルサーバーですと、セキュリティ的に制限されている事があったり、設定がオンプレミスと違っていたりします。
    また、データが法律に違反するものであれば、当然、通報され、しょっぴかれますのでご注意を。

    キャンセル

  • 2017/11/12 11:16

    miyabi-sunさんがおっしゃられている様に、重いデータが何なのか?それによって、最悪しょっ引かれます。

    ですので、そのデータの素性を明らかにして記述しない限り、そもそも回答すること自体が、犯罪を助長している事になりますので、きちんとした回答は得られないかと思います。

    キャンセル

  • 2017/11/12 11:26

    例えば、私自身も経験ありますが、自身が所属しているバンド等の録音、録画等のデータを練習の為にセキュアな環境で、メンバーに公開したいなどであれば、きちんとレンタルサーバー会社に許可をとれば、特に問題ありません。

    が、先の、coreserverで120GBもの容量でも足りない・・・それって何のデータ?・・・って事です。
    例え、企業のDBサーバーであっても、120GBのDBサーバーって、結構な容量です。
    通常は、データ圧縮かけて別ファイルサーバーに保存したり、規定年数過ぎたデータは削除したりしますので。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Linux

    3764questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • ネットワーク

    538questions

    ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

  • Webサーバー

    437questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。