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

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

ただいまの
回答率

90.49%

  • Ruby

    7893questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • proxy

    125questions

    proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

  • Server

    124questions

  • Squid

    16questions

プロキシサーバー構築 Ruby/Squid

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 273
退会済みユーザー

退会済みユーザー

プロキシサーバーの構築を検討しています。
目的は接続先WEBサーバーに、接続元(自宅PC)のIPアドレスを公開したくないためです。
そこで間にプロキシサーバーを挟み、プロキシサーバーのIPアドレスへ変更することを考えています。

Ruby(またはSquid)を使ってプロキシサーバーを作ろうかと思っていますが、
作成時にPORTとIPアドレスを設定する必要があるみたいです。

PORTは任意だと理解ましたが、一般的にこのIPアドレスは何をもって決定すれば良いのでしょうか?
VPS等をレンタルし、そのIPアドレスをプロキシサーバーへ設定すれば良いのでしょうか?

その場合、もしサーバー等をレンタルしないで、自宅PCでプロキシサーバーを構築した場合には、
結局プロキシサーバーのIPアドレスは自宅IPアドレスと同じになるので、
接続元(自宅PC)のIPアドレスを接続先へ公開していることになりませんでしょうか?

宜しくお願いいたします。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • easymachine

    2018/04/13 16:08

    Rubyであれば利用しているライブラリの名前などを教えてください。また、Ruby/Squidに関わらず、IPアドレスを設定しようとしている設定項目を記載してください。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2018/04/13 18:43

    WEBrickというのを使い、BindAddress =>の指定が必要とのことです。宜しくお願いします。

    キャンセル

回答 1

checkベストアンサー

+1

WEBrickの:BindAddressの説明は、「Local address for the server to bind to」となっていますね。
http://ruby-doc.org/stdlib-2.0.0/libdoc/webrick/rdoc/WEBrick/HTTPServer.html

Proxyサーバとして利用するならば、HTTPクライアントがProxyサーバとして指定するIPアドレスを指定すればOKです。
または、0.0.0.0と指定してあげれば、どのIPアドレス宛でも受け付けれてくれます。

もしサーバー等をレンタルしないで、自宅PCでプロキシサーバーを構築した場合には、
結局プロキシサーバーのIPアドレスは自宅IPアドレスと同じになるので、
接続元(自宅PC)のIPアドレスを接続先へ公開していることになりませんでしょうか?

ご認識の通りです。
接続元のグローバルアドレスを秘匿する目的であれば、自宅PCと自宅に立てたProxyサーバではグローバルアドレスは変わりませんので、目的は

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/04/14 00:29

    回答ありがとうございます。

    HTTPクライアントがProxyサーバとして指定するIPアドレスを指定すればOKです。
    >自分が保有しているサーバー等のIPアドレスではなく、好きなIPアドレスを指定してよいのでしょうか?そうすると私が勝手に他人のIPアドレスを使い、Proxyサーバを立てれるということになりませんでしょうか。

    または、0.0.0.0と指定してあげれば、どのIPアドレス宛でも受け付けれてくれます。
    >0.0.0.0と指定した場合には、接続先へ伝わるIPアドレスは何になるのでしょうか?
    プロキシサーバへ接続する、自宅PCのIPアドレスが接続先へ伝わるのでしょうか?
    接続元(自宅PC) <-> プロキシサーバ <-> 接続先

    キャンセル

  • 2018/04/16 12:44

    もちろん、サーバのIPアドレスです。
    そうでなければ、クライアントからのリクエスト自体がサーバに届きませんので・・。
    ただし、サーバのIPアドレスの中でもProxyサーバとしてリクエストを受け付けるIPアドレスです。

    たとえばProxyサーバでIPアドレスを変換する場合、少なくともProxyサーバは2つのIPアドレスを持っているはずですので、そのうちのクライアントからのリクエストを受け付ける側のIPアドレスを指定するということです。

    > 0.0.0.0と指定した場合には、接続先へ伝わるIPアドレスは何になるのでしょうか?

    接続先へ伝わるIPアドレスはここで指定するものとは関係ありません。
    そのProxyサーバがどのIPアドレスでサーバ側に出て行くかは、ネットワーク構成とルーティングの設定によるかと思います。

    こちらの記事が理解を深めるのに役立つかもしれません。
    https://teratail.com/questions/66327

    後は、実際に検証してみる事をお勧めします。
    自分がどのIPアドレスでアクセスしてきているかを確認できるサイトがありますので、Proxyを経由して目的が果たせているかを確認しましょう。
    また、匿名性という意味では、IPアドレスだけでなく環境変数なども関連してきますので、どのようなレベルで接続元を隠すべきか検討しても良いかと思います。

    キャンセル

  • 2018/04/16 12:44

    もちろん、サーバのIPアドレスです。
    そうでなければ、クライアントからのリクエスト自体がサーバに届きませんので・・。
    ただし、サーバのIPアドレスの中でもProxyサーバとしてリクエストを受け付けるIPアドレスです。

    たとえばProxyサーバでIPアドレスを変換する場合、少なくともProxyサーバは2つのIPアドレスを持っているはずですので、そのうちのクライアントからのリクエストを受け付ける側のIPアドレスを指定するということです。

    > 0.0.0.0と指定した場合には、接続先へ伝わるIPアドレスは何になるのでしょうか?

    接続先へ伝わるIPアドレスはここで指定するものとは関係ありません。
    そのProxyサーバがどのIPアドレスでサーバ側に出て行くかは、ネットワーク構成とルーティングの設定によるかと思います。

    こちらの記事が理解を深めるのに役立つかもしれません。
    https://teratail.com/questions/66327

    後は、実際に検証してみる事をお勧めします。
    自分がどのIPアドレスでアクセスしてきているかを確認できるサイトがありますので、Proxyを経由して目的が果たせているかを確認しましょう。
    また、匿名性という意味では、IPアドレスだけでなく環境変数なども関連してきますので、どのようなレベルで接続元を隠すべきか検討しても良いかと思います。

    キャンセル

  • 2018/04/17 13:25

    丁寧に説明していただきありがとうございます。
    理解できました!また何かありましたら宜しくお願いします。

    キャンセル

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

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

関連した質問

  • 解決済

    RubyでWebサーバーを作りたい

    RubyでWebサーバーを作ることができると聞いたことがあるのですが、本当でしょうか? どうすれば作れるのか、知っている方いましたら教えていただけませんでしょうか? 宜しくお願いし

  • 受付中

    Cloud9上でのRubyで作成したWebアプリがローカルで動作しない

    [Cloud9](c9.io)で作成したRubyでかかれたWebアプリがあるのですが、 このままだとインターネット接続がない場合は利用ができないので、ローカルで動かそうとしました。

  • 解決済

    Rails API認証方式について

    クライアントからAPIを呼び出す際の認証方式について教えてください。 管理画面からdeviseでログインして、クライアント(JS)からRailsで実装したAPIを呼び出しデータを

  • 解決済

    railsでbundle installができない

    起きている現象 windows7にruby on railsの環境を構築しようと考え一通りの必要なことをしたのですが、bundle installができずアプリケーションづくりが

  • 解決済

    rails s→http://localhost:3000でアクセスできない。

    rails初心者です。仮想環境を構築しrails sを実行すると下記のように表示されます。(ssh接続済み) => Booting Puma => Rails 5.1.1 a

  • 解決済

    Net::HTTP.startの引数にhttpをつけるとエラーになる理由

    前提・実現したいこと yahooのトップページのhtmlを取得しようと思いコードを書いてみました 発生している問題・エラーメッセージ Net::HTTP.start('www.

  • 解決済

    railsの環境開発について

    railsの環境開発について何ですけど、今自分はvagrantを用いて作成しています。しかし、まいかい立ち上げたりするのが面倒になってきました。 そこで最近bundler?を用いれ

  • 解決済

    Rubyで作るクローラーについて

    前提・実現したいこと はじめまして。 Rubyで「キーワードを検索したら、Googleの検索結果上位10サイトの記事タイトルと見出しをテキストで出力できる」というツールを作っていま

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

  • Ruby

    7893questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • proxy

    125questions

    proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

  • Server

    124questions

  • Squid

    16questions