🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Squid

Squidは、TCP/IPネットワークでのユーザーとサーバの通信を中継するオープンソースのプロキシサーバソフト。リバースプロキシやキャッシュサーバとして使用することも可能です。

プロキシ

プロキシは、二つ以上の相互接続されているプログラム又はデバイスの間に存在する中間サーバを指します。プロキシは、接続者の「代理」としてインターネット接続を行い、接続元にレスポンスを返します。また、その機能を実現するソフトウェアの意味合いもあります。

Q&A

1回答

4011閲覧

pacファイルを使用せずに、通信を振り分けたい

raraw

総合スコア0

Squid

Squidは、TCP/IPネットワークでのユーザーとサーバの通信を中継するオープンソースのプロキシサーバソフト。リバースプロキシやキャッシュサーバとして使用することも可能です。

プロキシ

プロキシは、二つ以上の相互接続されているプログラム又はデバイスの間に存在する中間サーバを指します。プロキシは、接続者の「代理」としてインターネット接続を行い、接続元にレスポンスを返します。また、その機能を実現するソフトウェアの意味合いもあります。

0グッド

0クリップ

投稿2021/02/03 09:42

編集2021/02/04 10:38

前提・実現したいこと

■前提
ipadのアプリでプロキシ設定が自動(pac)だとアプリサーバ(web上)からの応答がありません。
手動(IP指定)だと応答があります。
手動(IP指定)にするとプロキシサーバ(squid)が全通信をインターネット側に投げるため、
ローカルのサーバにアクセスできなくなります。

■実現したいこと
pacファイルで通信の振り分けができないので、その他の手法で振り分けを実現したい。
squidの機能でローカルのipだったら、ローカルに投げることはできないでしょうか?
もしくは、squidにアクセスする前にパケットの中身を見て通信を振り分けるソフトはないでしょうか?

■詳細
ネットワークは以下になります。
ipad→プロキシサーバ(プロキシ、pac、ルータ(172セグメントのGW))→ブロードバンドルータ→アプリサーバ
※iPadはローカルにあるので、単体ではインターネットに接続できません(ダイレクトではつながらない)。また、ローカルにあるDNSサーバは、上位DNSに転送していないため、
ipadにアプリサーバのipを伝えてルーティングといったことはできない状況です。

ipad:172.16.0.5
プロキシサーバ:172.16.0.25,192.168.1.25
ブロードバンドルータ:192.168.1.1
アプリサーバ:インターネット上

pac使用時:アプリサーバからipadへの疎通NG、ipadのインターネットOK、ローカルサーバアクセスOK
手動プロキシ指定時:アプリサーバからipadへの疎通OK、ipadのインターネットOK、ローカルサーバアクセスNG
プロキシ未使用時:アプリサーバからipadへの疎通NG、、ipadのインターネットNG、ローカルサーバアクセスOK

手動プロキシだとローカルの他のセグメントにあるサーバにアクセスできないため、
pacを使用せずに他のサーバにもアクセスする構成にしたいです。

発生している問題・エラーメッセージ

エラーメッセージa

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

以下、訂正回答。

iOSのsafariでは例外設定が出来ないようでした。
申し訳ありません。

新たな案ですが、pacにて
ローカルとして、アクセスさせたいアドレスを
DIRECT指定されてはいかがでしょうか?

if (isInNet(host,"192.168.0.0","255.255.255.0")) return "DIRECT";

以下、旧回答。

実現したいこととずれているようでしたら
すみません。

iPadということで、Safariにも、
プロキシの例外設定があると思うのですが、
そちらで回避出来ないでしょうか?

[参考]
https://www.tablet-time-recorder.net/blog/network/1025

「プロキシ設定を使用しないホストとドメイン」
の部分です。

[補足]
参考ページには、safari以外のブラウザでの設定方法も
いくつか例があります。

投稿2021/02/03 09:54

編集2021/02/03 11:17
WhiteTempest

総合スコア404

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

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

CHERRY

2021/02/03 10:41 編集

(横からですが...) iOS の PROXY 設定に「例外ホストの設定」はなかったと思います。
WhiteTempest

2021/02/03 11:09

CHERRYさん ご指摘ありがとうございます。 ご指摘の通りっぽいです。。。 Macのsafariで出来て、 iOSで出来ないなんて。。。
raraw

2021/02/03 13:04

ご回答ありがとうございます。 質問の情報が不足しておりました。すみません。 PACファイルを使用するとアプリサーバ(web上)からの応答(※1)はありませんが、 ブラウザでインターネットは可能です。 ※1 iPadからアプリサーバには通信OKですが、アプリサーバからiPadへは通信NG pacを最小構成でためしましたが、事象改善せずです。 function FindProxyForURL(url, host){return "PROXY プロキシIP:ポート";} その為、pacの記述ミスではなく、他に原因があるのですが中々解決に至らず、 PACを使用しない回避策を検討している次第です。
WhiteTempest

2021/02/03 13:19

こちらは、プロキシーサーバーを使うパターンのコードのため、 事象改善にはつながらないと思います。 function FindProxyForURL(url, host){return "PROXY プロキシIP:ポート";} 改善確認をおこなうのであれば、以下であるべきかと。 function FindProxyForURL(url, host){return "DIRECT";}
WhiteTempest

2021/02/03 13:27

もし、ネットワークにあまりお詳しくないようであれば、 iPad、アプリサーバ、プロキシサーバ、ルータ、あたりのネットワーク構成(LANのIP含む)を追記いただいた方が、 適切な回答が出来ると思います。 また、pac使用時、手動プロキシ指定時、プロキシ未使用時にて 各々どのような挙動になり、 目的としてどうなりたいか、 を明確にされた方が良いと思います。
raraw

2021/02/03 21:40

最小構成は、pacが原因なのか切り分けした際に使用しました。 iPadはイントラなので単体では、インターネットに接続できません(ダイレクトではつながらない)。 ネットワークは以下になります。 ipad→プロキシサーバ(プロキシ、pac、ルータ(172セグメントのGW))→ブロードバンドルータ→アプリサーバ ipad:172.16.0.5 プロキシサーバ:172.16.0.25,192.168.1.25 ブロードバンドルータ:192.168.1.1 アプリサーバ:インターネット上 pac使用時:アプリサーバからipadへの疎通NG、ipadのインターネットNG 手動プロキシ指定時:アプリサーバからipadへの疎通OK、ipadのインターネットOK プロキシ未使用時:アプリサーバからipadへの疎通NG、、ipadのインターネットNG 手動プロキシだとローカルの他のセグメントにあるサーバにアクセスできないため、 pacを使用せずに他のサーバにもアクセスする構成にしたいです。
raraw

2021/02/03 21:43

ローカルにあるDNSサーバは、上位DNSに転送していないため、 ipadにアプリサーバのipを伝えてルーティングというのはできません。
WhiteTempest

2021/02/03 23:04

rarawさん 正確な情報ありがとうございます。 できれば、質問の欄を更新する形で、 更新お願いします。 ※他の質問者様の目につきにくいため。
WhiteTempest

2021/02/03 23:23

すみません。 下記のご意見を見ると、説明いただいていた状況と異なり, pac構成時とプロキシ未使用時が同じとなっています。 (結局どちらもWANに出れていない) 単にpacの構成を間違って、 プロキシサーバへの通信が出来ていないのではないですか? --- pac使用時:アプリサーバからipadへの疎通NG、ipadのインターネットNG 手動プロキシ指定時:アプリサーバからipadへの疎通OK、ipadのインターネットOK プロキシ未使用時:アプリサーバからipadへの疎通NG、、ipadのインターネットNG
raraw

2021/02/04 10:40 編集

ご回答ありがとうございます。 記載ミスでした。すみません。 正しくは、以下です。 pac使用時:アプリサーバからipadへの疎通NG、ipadのインターネットOK、ipadのローカルサーバアクセスOK 手動プロキシ指定時:アプリサーバからipadへの疎通OK、ipadのインターネットOK、ipadのローカルサーバアクセスNG プロキシ未使用時:アプリサーバからipadへの疎通NG、、ipadのインターネットNG、ipadのローカルサーバアクセスOK
WhiteTempest

2021/02/04 12:18

pacを最小構成(手動プロキシと同じ)にした場合、 手動プロキシ指定時と同じ挙動にならないのでしょうか?
WhiteTempest

2021/02/04 12:23

念のため、各設定時のsafari設定とpacの中身を共有いただけますか? また、追記情報は、回答への返信ではなく、 ご質問内容への"追記"としてください。
raraw

2021/02/04 12:34

2021/02/04 19:30の以前の情報は質問に追記したつもりなのですが、まだ何か足りないでしょうか?
WhiteTempest

2021/02/04 12:40

すみません。 追記いただいた内容に問題はありませんでした。 pacの指定方法ですが、urlの指定と、自動検出、どちらの方式にされていますか? もし自動検出の場合、正しく参照されていない場合もあります。
raraw

2021/02/04 12:45

pacの内容は以前にお伝えした、以下です。 function FindProxyForURL(url, host){return "PROXY 172.16.0.25:8080";} サーバからipadへの通信が上記でうまくいかないので、pacは使用不可だと判断しています。 safari設定とは、プロキシ関連の設定ということでしょうか? iosのプロキシはwi-fi設定の部分だけと思っていましたが、他にも関係しそうな設定があるのでしょうか?
raraw

2021/02/04 12:50

>pacの指定方法ですが、urlの指定と、自動検出、どちらの方式にされていますか? 自動にしています。記述は以下です。 http://172.16.0.25:8080/proxy.pac 自動検出とはWPADのことでしょうか?iosには、自動(URL)と手動(IPとポート)しかない認識です。
WhiteTempest

2021/02/04 13:28

自動検出はWPADのことですね。 iOSのwi-fi設定には無いのですね。。。 >サーバからipadへの通信が上記でうまくいかないので、 この部分ですが、アプリサーバからiPad向けの通信には プロキシサーバを経由しないはずなので、 手動だろうと、pac(自動)だろうと変化は無いはずです。 ※リバースプロキシも存在しているのであれば別 大変申し訳ありませんが、 pacでインターネットが出来ているけど、 アプリサーバからローカル(iPad)へ通信が来ないというのは、 聞いたことがないので、 現時点私では役不足そうです。 他にやれるとしたら、ルーターやアプリサーバーのパケットキャプチャをおこない、 どこで通信が行方不明になっているかを 調べるくらいでしょうか。 ルーターのパケットキャプチャはハード機器(パケットをミラーリングできるもの)が必要になるので難しいですが、 アプリサーバーが自社の持ち前であれば、 Wiresharkを導入し、pac時と手動時で、 アプリサーバー→ローカル(ipad)への通信において差分が無いかを見てみないとですね。 それで通信内容が同じであれば、いよいよお手上げですね。。。
raraw

2021/02/07 15:23

結局のところ、一番最初にWiresharkでキャプチャし、差異をアプリメーカーに投げてみましたが、 音沙汰なしです。 事象の解決ではなく、事象の回避を模索しているので、 pacを使用せずにローカルサーバだけiPadからダイレクトアクセスする方法があれば、 教えていただければと思います。
WhiteTempest

2021/02/08 03:57

私も振り分けであればpacでおこなっておりましたので、 iPad側だけでパケット振り分ける手法については、 存じ上げておりません。 ※windowsであればルーティングテーブル組んだりで、どうにか出来そうではありますが。 お力になれず申し訳ありません。
WhiteTempest

2021/02/08 04:06

すみません。 念のためひとつ確認させてください。 function FindProxyForURL(url, host){return "DIRECT";} はお試しいただいていたと思いますが、 その場合はプロキシ未使用時と同等の 動きをしていたと思うのですが、 認識相違無いでしょうか? ※ようは、以下のご返答の内容に準拠 プロキシ未使用時:アプリサーバからipadへの疎通NG、、ipadのインターネットNG、ipadのローカルサーバアクセスOK
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問