現在、自宅にWebサーバがあります
マンションのネット環境が
グローバルアドレスが割り当てられていない状態です。
そのためポートの開放ができないため
解決策として
クラウドサービスを利用して
仮想マシンを通して自宅のWebサーバにアクセスするという手法を考えております。
イメージとしてはこういう感じで考えてます
外部アクセス→仮想マシン→自宅のWebサーバ
外部アクセス者が自宅のWebサーバにアクセスができる状態にしたいです。
またグローバルアドレスはDDNSでグローバルアドレスが変わったとしても、固定されたアドレスでアクセスできるように設定してます。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
「自宅サーバのHDDにある多量のデータをインターネットに公開する方法」としては
技術的には大まかに以下の6つの方法があるかと思います。
- 契約的にはデータトラフィックが多い場合や、P2Pによるファイル交換と判断された場合に通信制限や契約解除等の対象になるケースがある場合があると思います。(サーバ公開に使うなと明示されている場合もあるかと思います)
- クラウドのサーバと自宅のサーバを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 10:25
編集2017/11/11 12:26総合スコア18778
0
サーバをライブラリに頼らず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をあることから想像して、アニメ等の動画、音楽データ…その他ごにょごにょした非常に重いファイルが多数あることでしょう。
それらをアクセス制限やトラフィック制限なしで不特定多数相手に公開してしまうと、
著作権法違反でしょっぴかれたり、マンション内のトラフィックを吸い尽くしてマンションから叩き出されたりする可能性がありますので、くれぐれも用法用量を守って正しくお使いください。
投稿2017/11/11 12:09
編集2017/11/12 01:55総合スコア21398
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
?自宅のWebサーバでないといけない理由がよく分からないのですが?
別に、仮想マシン上に、Webサーバーを構築すれば良いのでは?
若しくは、そもそもマンションの固定回線を使用せず、WiMAXなどを契約して、サーバーと有線接続すれば良いのではないでしょうか。
なお、調べた所、技術的には出来るとの事ですが、とても大きなセキュリティホールとなり、最悪の場合、他人の情報流出およびマンションオーナーから訴訟されたり、法律に抵触する場合もあります・・・とだけ記述しておきます。
投稿2017/11/10 14:32
編集2017/11/10 14:55総合スコア86
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/11 11:13 編集
2017/11/11 11:13
2017/11/11 11:21
2017/11/11 11:32
2017/11/11 11:35
2017/11/11 11:52