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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

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

Webサーバー

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

ネットワーク

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

Q&A

解決済

3回答

609閲覧

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

ne-on

総合スコア13

Linux

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

Webサーバー

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

ネットワーク

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

0グッド

2クリップ

投稿2017/11/10 11:52

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

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

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

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

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

「自宅サーバの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 10:25

編集2017/11/11 12:26
tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

samudra

2017/11/11 11:13 編集

横から失礼いたします。 「自宅サーバのHDDにある多量のデータをインターネットに公開する方法」ではなく、 質問者様は、「シンプルなWebサーバではない」と言われているように、「自宅Webサーバをインターネットに公開する方法」をお探しなのではないでしょうか。 文脈からすると、なおかつ「Webサーバに紐ついているのがHDDにある多量のデータ」があるのではないでしょうか。 なお、グローバルアドレスが割り当てられていないとの事ですので、マンションの契約形態が、プライベートVLANで構築されている物と推定されます。 であるならば、1で言われているVPNを張ろうにも、特殊なVPNの張り方をしないと出来ないが正解となろうかと思いますが・・・ ※とても大きなセキュリティホールを作成する事になるので、質問者さんのマンションでは出来ないが正解かと思いますが・・・ ごぞんじかと思いますが、プライベートVLANとは↓ http://www.infraexpert.com/study/vlanz12.html
tanat

2017/11/11 11:13

> 自宅のWebサーバに多量のデータが入った外部HDDをマウントしているためシンプルなWebサーバではないためです。 との事なので、「外部HDDの中身(おそらく、ローカルでの作業等で常時更新される)をインターネットに公開したい」というのが要件と判断し回答しました。 > なお、グローバルアドレスが割り当てられていないとの事ですので、マンションの契約形態が、プライベートVLANで構築されている物と推定されます。 であるならば、1で言われているVPNを張ろうにも、特殊なVPNの張り方をしないと出来ないが正解となろうかと思いますが・・・ プライベートVLANを超えられるかどうかはVPNの仕様とネットワークの設定次第なので、(無料でやろうとすると構築自体は割と大変)と表現しました。 最終的にはケースバイケースになりますがNATトラバーサルに対応する設定を行えば、自宅サーバがVPNクライアントになる事は多くのケースで可能だと思いますが如何でしょうか(これはVPN構築において特に特殊なケースとは思いません)? また、SoftEatherの様なVPN over HTTPSなVPNであれば、ネットワークでVPN関連のプロトコルを防がれていても透過可能です。
samudra

2017/11/11 11:21

>SoftEatherの様なVPN over HTTPSなVPNであれば、ネットワークでVPN関連のプロトコルを防がれていても透過可能です。 通常のマンション住まいの方(自宅)に、これをお勧めされるのでしょうか? ですので、企業であればと表現しております。 ※SoftEatherのページに、マンション等の場合はと、かなりキツク、注意書きが書いてありますが・・・
samudra

2017/11/11 11:32

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

2017/11/11 11:35

> 通常のマンション住まいの方(自宅)に、これをお勧めされるのでしょうか? すみません、何故 「通常のマンション住まいの方(自宅)」に「技術的にめんどくさくてケースによっては実現できないかもしれない可能性」を提示してはいけないかが理解できません。 teratailは「思考するエンジニアのためのQAサイト」なので、上記のような回答が不適切だとは思えませんが。。。
tanat

2017/11/11 11:52

> 他人に迷惑がかからない、個人でも可能な、常識的な範囲での回答を期待いたします。 質問者さんは、企業の人ではないので・・・ 申し訳ありませんが、teratailの利用に際して回答に対するスタンスを他の回答者様と擦り合わせる必要を感じませんので、スタンスについての回答は控えさせていただきますね。 (最終的にはケースバイケースですが)Softetherについては、少なくとも私が過去にいくつかの集合住宅で使ってみた経験では通常のVPNよりは「かなり」ハードルが低いので一度お試しになってみて下さい。 * https://www.interlink.or.jp/service/myip/ の様な有料サービスを使うと敷居はもっと下がります。
guest

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
miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

投稿2017/11/10 14:32

編集2017/11/10 14:55
samudra

総合スコア86

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ne-on

2017/11/10 15:23

自宅のWebサーバに多量のデータが入った外部HDDをマウントしているためシンプルなWebサーバではないためです。 WiMax契約はお金がかかるためできればコストを削減したいため仮想マシンを活用してます。仮想マシンは月500円です。
samudra

2017/11/10 15:31

であるならば、方法はないという結論となります。 企業であるならば、ネットワーク管理者、リスク管理者の許可の元、設定する事となります。 やられたい事と、実コストが乖離している様に思われます。
samudra

2017/11/10 15:36

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

2017/11/10 16:00 編集

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

2017/11/12 02:17 編集

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

2017/11/12 02:16

miyabi-sunさんがおっしゃられている様に、重いデータが何なのか?それによって、最悪しょっ引かれます。 ですので、そのデータの素性を明らかにして記述しない限り、そもそも回答すること自体が、犯罪を助長している事になりますので、きちんとした回答は得られないかと思います。
samudra

2017/11/12 02:26

例えば、私自身も経験ありますが、自身が所属しているバンド等の録音、録画等のデータを練習の為にセキュアな環境で、メンバーに公開したいなどであれば、きちんとレンタルサーバー会社に許可をとれば、特に問題ありません。 が、先の、coreserverで120GBもの容量でも足りない・・・それって何のデータ?・・・って事です。 例え、企業のDBサーバーであっても、120GBのDBサーバーって、結構な容量です。 通常は、データ圧縮かけて別ファイルサーバーに保存したり、規定年数過ぎたデータは削除したりしますので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問