iPad proxy 例外設定について

moodleを使ってiPadを活用したいと思い、学内のサーバー(CentOS7)を立ち上げ、moodleをインストールしました。

moodle自体は問題なくインストールできたのですが、moodleに接続するにはproxy設定を無効にしなければなりません。

インターネットと同時に使用したいので、proxyの例外設定をしたいのですが、上手く稼働できません。


CentOS7(192.168.254.10)の/var/www/html以下にproxy.pacを置きました。

proxyサーバーは192.168.254.1:8080です。


proxy.pacの内容


function FindProxyForURL(url,host) {

if( isInNet(host, "192.168.254.10" ,"255.255.255.0)

|| isInNet(host, "127.0.0.0" ,"255.0.0.0"))

return "DIRECT";

}


iPadのWi-Fi設定のHTTPプロクシに192.168.254.10/proxy.pacと入れ、

iPadのsafariで192.168.254.10/proxy.pacにアクセスすると、proxy.pacの内容を見ることができます。moodleにもアクセス可能です。

しかし、インターネットには接続できません。


ちなみに

function FindProxyForURL(url, host)

{

if (isPlainHostName(host)) {

return "DIRECT";

}

return "PROXY 192.168.254.1:8080";

}

と書き換えても、proxy.pacが見えてインターネットには接続できませんでした。

どこが問題なのかわからず困っています。よろしくお願いします。

iPad (4th gen) Wi-Fi, iOS 8.4.1

投稿日 2015/10/07 00:50

返信
返信: 33

2015/10/14 10:20 ch25 への返信

思ったのですが、一度原点に戻って問題の切り分けをしてみてはいかがでしょう。

具体的には、ローカル用とインターネット用に別々のpacファイルを作成し、それぞれが正しく動けば pacの読み込みはできているということで、その後は proxy.pac の記述のみを考えれば良いことになります。

例えば

proxy1.pac:ローカル用 - moodleにはアクセスできるがインターネットは使えない。

function FindProxyForURL(url,host) {

return "DIRECT";

}

proxy2.pac:インターネット用 - インターネットは使えるが moodleにはアクセスできない。

function FindProxyForURL(url,host) {

return "PROXY 192.168.254.1:8080";

}

とか。

2015/10/15 09:07 ch25 への返信

 ch25さん、おはようございます。


 公式のフォーラムなのでしょうか、類似の質問がございました。

  Japanese: proxyの設定について

  https://moodle.org/mod/forum/discuss.php?d=316899


 上記リンク先での質問者さんの書き方だと、Moodleに接続するためにはプロキシを通してはダメなのか(通すべきでないのか)、それとも、できれば通したくなかっただけなのか、よくわからないですね。


 もしも本当に支障がないのでしたら、今までどおり、プロキシを通して接続されるのが簡単でいいですね。

2015/10/15 16:49 ToMi への返信

みなさん、おはようございます。


今朝、確認しましたが前提は変わりありません。

手動でプロキシを設定するとインターネットにはつながりますが、サーバーにはアクセスできませんでした。

昨日通り、proxy2.pacを使用すると、両方ともアクセスできます。

機内モードのオンオフも試してみましたが、変わりありませんでした。


何か重要な情報をお伝えできていないのかもしれませんが、それが何かわからず申し訳なく思います。


参考になるかどうかわかりませんが・・・

学外にproxyサーバー(192.168.254.1ではない)があり、それを通してインターネットにつながっているのですが、学内は2つのセグメントに分かれています。学生用(192.168.254.)のセグメントの上位に学内のproxyサーバーがあるようです。というか、学生用の端末はproxy設定の欄に192.168.254.1を入れるようになっているので、そうなのかなと思っています。この学内のプロクシサーバーが問題になるのでしょうか。

2015/10/17 08:20 ch25 への返信

 ch25さん、おはようございます。

 その後、進展はございましたか?

ch25 さんによる書き込み:


学外にproxyサーバー(192.168.254.1ではない)があり、それを通してインターネットにつながっているのですが、学内は2つのセグメントに分かれています。学生用(192.168.254.)のセグメントの上位に学内のproxyサーバーがあるようです。というか、学生用の端末はproxy設定の欄に192.168.254.1を入れるようになっているので、そうなのかなと思っています。この学内のプロクシサーバーが問題になるのでしょうか。

 今回の事例とは関係はなさそうですが、プロキシを通すとエラーになる事例がありました。

 下記事例で話題になっている「リバースプロキシ」は、通常のプロキシとは役割が違うそうです(Wikipediaなどでわかりやすく解説されていますね)。

  Japanese: リバースプロキシで、URLの書き直しが上手くいかない

  https://moodle.org/mod/forum/discuss.php?d=216233

   ├ Reverse proxy frontend - Moodle Docs

   │ https://docs.moodle.org/22/en/Reverse_proxy_frontend

   └ Japanese: feedbackパッケージと、Moodle mobileについて

    https://moodle.org/mod/forum/discuss.php?d=159085

 これが原因だとすると、ちょっとややこしくて難しいですが、今回は関係はなさそう…

 関係があるとしたら、学内外のプロキシを設定なさった方とご相談になったり、もしかしたら、業者さんに依頼するなどの必要も出てくるのかもしれません。



 それはそうと、プロキシ情報を、iPadの「HTTPプロキシ」>「手動」で、「サーバ」欄と「ポート」欄に設定した場合と、iPadの「HTTPプロキシ」>「自動」で、「URL」欄に前者と同じ効果(プロキシを必ず通るように)の記述をしたproxy.pacのURLを設定した場合とで、挙動が異なるというのは不思議です。


 ご質問への直接的な回答は私のスキルではできないのですが、(リバースではない)プロキシを通してアクセスできるか簡易にテストするくらいはできるかなということで、Moodleのインストール手順の残りも行って、Moodleにログインできる状態にしました。

 プロキシサーバの設定にもよるのかと思いますが、私の環境(CentOS7上でMoodle-2.9.2とプロキシ(Squid)を動作させた)では、今のところ、次のいずれの場合でもエラーは起こりませんでした。

  ・iPadの「HTTPプロキシ」>「手動」で、「サーバ」欄と「ポート」欄に設定した場合

  ・iPadの「HTTPプロキシ」>「自動」で、「URL」欄に前者と同じ効果(プロキシを必ず通るように)の記述をしたproxy.pacのURLを設定した場合


 proxy.pacでプロキシサーバを必ず通るように設定していてもMoodleの動作に支障がないのであれば、それでも良いのかなとも思いますが、もしご不安なのでしたら、はに さんのご紹介になったスクリプトが動作するように調整できるといいですね。

 ちなみに、proxy.pacを編集するときですが、私は端末でsuしてrootになってから、viではなくgeditで開いて編集していました(はに さんのスクリプトをコピペすると、空行が入ったため、その空行をなくして、「”」の不足などを訂正しました )。


 あまりお役に立つ返信ではありませんが、調べた範囲で返信させていただきました。



 ところで、Moodleに管理者権限でログインして、管理ブロックの「サイト管理」>「サーバ」>「PHP情報」を選択すると、表示結果の「Configuration」>「Apache Environment」の中の、「REMOTE_ADDR」で、Moodleサーバに直接接続している端末のIPアドレスが分かりますね。ここがきっとプロキシサーバのIPアドレスになっているのではないでしょうか。

 また、プロキシサーバの設定で接続元を秘匿しない設定になっていると、同じく「Apache Environment」の中の、「HTTP_X_FORWARDED_FOR」で、プロキシサーバに接続依頼を出した端末のIPアドレスもわかるようです。

  ※Squidですと、squid.confに以下の指定がない場合

request_header_access X-Forwarded-For deny all

forwarded_for off

【参考】

CentOS6 - Squid - インストール/設定 : Server World

http://www.server-world.info/query?os=CentOS_6&p=squid

 Moodleに管理者権限でログインして、管理ブロックの「サイト管理」>「レポート」>「ログ」で、「これらのログを取得する」ボタンを押すと、活動内容が一覧で表示され、その一覧の右端にある「IPアドレス」欄で、接続元IPアドレスが確認できますが、プロキシサーバを通していても、接続元が秘匿されていない場合には上述の「HTTP_X_FORWARDED_FOR」のIPアドレスが表示されました。

2015/10/18 06:41 ch25 への返信

学生用(192.168.254.)のセグメントの上位に学内のproxyサーバーがあるようです

というか、学生用の端末はproxy設定の欄に192.168.254.1を入れるようになっているので、そうなのかなと思っています。

本件、学校のネットワーク設計業者と事前相談無しに進めているように見受けられますが、

既に端末のプロキシ設定を導入時のものより変更されている(あるいは変更しようとしている)点も含め、

後々に大きな問題となることが懸念されますが、その辺りは大丈夫でしょうか。


技術的な観点から言いますと、

PACファイルを修正することで、求めている環境ができているとのことですので、もう十分かとは存じますが、

原因追求のためには、三毛猫大好きさんの仰るとおり、次はプロキシサーバの設定やログの確認が必要になるでしょう。

2015/10/19 06:26 三毛猫大好き への返信

三毛猫大好きさん、こんばんは

書き込みが遅くなって申し訳ありません。


様々な検証をしてくださり、本当に感謝しています。


リーバースプロキシですか・・・名前は聞いたことがあるのですが、中身についてはよく理解できていないので、これから勉強することとして・・・


今日の作業について報告させていただきます。


手元にwindows10タブレットがあったので、試しにproxy1.pacとproxy2.pacで設定してみたら、スクリプト通りの動きをしてくれました。

そこで、proxy3.pacとして


function FindProxyForURL(url,host) {

if( isInNet(host, "192.168.254.10" ,"255.255.255.0)

|| isInNet(host, "127.0.0.0" ,"255.0.0.0"))

return "DIRECT";

else

return "PROXY 192.168.254.1:8080";

}

を設定したら、インターネットにもサーバーにも接続することができました。


そこで次に、MacBook Airでも検証してみました。proxy3.pacは機能しているようですが、インターネットに接続するのがものすごく遅いです。実用レベルではありませんでした。

特にsafariは遅く、chromeのほうがまだましでした。

それでも、今までスクリプト通りにいかなかったので、動いてくれているのが救いです。

明日、iPadで検証する予定です。

2015/10/20 09:48 ch25 への返信

 ch25さん、おはようございます。


 ch25さんのご環境では、プロキシ情報を、iPadの「HTTPプロキシ」>「手動」で、「サーバ」欄と「ポート」欄に設定した場合にはMoodleサーバとつながらないのに、ch25さんの 2015/10/15 21:44 のご返信では iPadの「HTTPプロキシ」>「自動」で、「URL」欄に前者と同じ効果(プロキシを必ず通るように)の記述をしたproxy.pacのURLを設定した場合には、インターネットにもMoodleサーバにもつながるとのご報告をいただいていました。

 ずっと、不思議でしたが、それとたぶん同じ症状が一昨日から私の環境でも確認できました。現在私のiPadでは、上記後者のproxy.pacを読み込ませているのに、Moodleの「PHP情報」で「REMOTE_ADDR」がiPadのアドレスになっています。インターネットにもつながります(ルータの設定でiPadから直接インターネットにつながらないように設定しているのに)。Moodleサーバとの通信ではプロキシを介さないで通信しているようです。

 何かをきっかけに私の環境での挙動が変わってしまったようです。元の挙動に戻す方法は今のところわかりませんでした(iPadを復元しても現在の挙動のままでした)。

 直接通信が可能であれば、このような挙動になる場合もあるのでしょうかね。


 思い返せば、ch25さんは以前、2015/10/16 8:49 のご返信の中で、

学外にproxyサーバー(192.168.254.1ではない)があり、それを通してインターネットにつながっているのですが、学内は2つのセグメントに分かれています。学生用(192.168.254.)のセグメントの上位に学内のproxyサーバーがあるようです。というか、学生用の端末はproxy設定の欄に192.168.254.1を入れるようになっているので、そうなのかなと思っています。この学内のプロクシサーバーが問題になるのでしょうか。

とお話しでした。

 学生用セグメントのプロキシサーバAを通すと学生用セグメントにあるMoodleサーバと通信できなくなるのは、ch25さんのお考えのとおり、学内の上位のセグメントにあるプロキシサーバBに接続依頼を引き渡してしまい、プロキシサーバBからは(または、その上位のプロキシサーバからは)、セグメントが違うためMoodleサーバが見えないということなのでしょうね。


 ところで、ご質問の趣旨からは外れてしまいますが、プロキシサーバには、宛先によっては直接通信をさせる設定が可能なようです。

  【参考】

   水銀室 Squidで多段プロキシーを設定する —CentOS最短構築支援-

   http://hp.vector.co.jp/authors/VA022911/tec/centos/squid2.htm


 proxy.pacで難航しておられるご様子もございますので、ご事情もお有りになるとは思いますが、学内外のプロキシサーバを設定なさった方のご協力が得られるのでしたら、学生用セグメントのプロキシサーバの設定変更が行えれば、簡単そうですよね。proxy.pacだと環境に依存して挙動が変わったりするかもしれませんが、プロキシサーバに設定してしまえば、そういうこともないのではないでしょうか。

2015/10/22 07:52 ch25 への返信

 ご質問の趣旨から外れ、また、既に考慮のうえ運用中なのかとも思われますが、2点だけ…


 データのバックアップは大丈夫ですか。

  バックアップおよびリストアFAQ - MoodleDocs

  https://docs.moodle.org/2x/ja/バックアップおよびリストアFAQ

   ※2006年のもので、しかも校正待ちのままですが…

  Moodleの自動バックアップとリストア - Open Source Software Forum

  http://www.totsusangyo.com/netcommons/?page_id=29

   ※CentOS7でMoodleの標準機能を使わずにスクリプトでバックアップを取る例です


 ユーザID/パスワードだけですが、Moodleの標準機能で、簡単にSSLで保護できるのですね。

  Japanese: MoodleサイトのSSL認証

  https://moodle.org/mod/forum/discuss.php?d=152956


 iPadが有効活用されるといいですね。

2015/10/23 07:05 30ice への返信

30iceさん


ご指摘ありがとうございます。

既存のネットワークの中で、実験的にサーバーを立ち上げiPadの活用方法を探っている段階なので、大丈夫かと思います。

ネットワークを構築した業者には、今回の件も相談していますが、あまり熱心に対応してくれません。「Linuxはちょっと・・・」といってましたので、多分外注して面倒くさいのでしょう。

今回の件が解決し方向性が決まれば、きちんと相談して進めたいと思います。

ありがとうございます。

2015/10/24 06:32 三毛猫大好き への返信

三毛猫大好きさん こんばんは


結論から言いますと、解決しました。いや、したと思います。


みなさんのご指導のもと、proxy.pacのスクリプトを見直しつつ進めてきました。

その中で、proxy1.pac、proxy2.pac、proxy3.pacと切り分けて考えていくというToMiさんの指摘が参考になりました。

というのも、windowsタブレットで検証している時に、あることに気づきました。

proxy3.pacに設定した時のchromeの左下の部分に「プロキシ スクリプト内のホストを解決しています」というメッセージが出ていて、かなり時間がかかってインターネットに接続できたので、これはひょっとしてDNSで引っかかっているのかなと思いました。

2015/10/24 06:35 ch25 への返信

続きです。



どこかのサイトで「isInNet関数はDNSサーバーに接続する」とありましたので、shExpMatch関数を使うとインターネット(通常の速さで)にもmoodleサーバーにも接続できるようになりました。


DNSとかキャッシュとか名前はしっていますが、仕組みについてはまだまだ理解できていないので、もっと勉強していきたいと思います。


昨日は個人の端末でのことなので、週明けにAppleConfiguratorで設定したiPadで検証する予定です。

2015/10/27 06:13 三毛猫大好き への返信

みなさん こんばんは。


昨日より、appleconfiguratorで監視したiPadにproxy.pacを設定したプロファイルを入れ、iPadのproxy例外設定ができるようになりました。

インターネットにもmoodleサーバーにも接続できています。


初め、プロファイルが更新されずに慌てましたが、一度古いプロファイルをオフにしてから新たにオンにすると、新しいプロファイルが適応されました。


これから、moodleやpiwigoなどの活用が出来るように勉強していきます。


本当に有難うございました。


追伸

解決したproxy.pacの内容を載せたかったのですが、何故かエラーが出て書き込めませんでした。すいません。

2015/10/27 08:32 ch25 への返信

 ch25さん、こんばんは。

昨日より、appleconfiguratorで監視したiPadにproxy.pacを設定したプロファイルを入れ、iPadのproxy例外設定ができるようになりました。

インターネットにもmoodleサーバーにも接続できています。


初め、プロファイルが更新されずに慌てましたが、一度古いプロファイルをオフにしてから新たにオンにすると、新しいプロファイルが適応されました。


これから、moodleやpiwigoなどの活用が出来るように勉強していきます。


本当に有難うございました。

 大変お疲れさまでした。

 今回のご質問に返信させていただけたことは、私自身にとって有意義な経験でした(勉強にもなりました)。

 こちらこそ、ありがとうございました。

追伸

解決したproxy.pacの内容を載せたかったのですが、何故かエラーが出て書き込めませんでした。すいません。

 私は大抵テキストエディットでフォーマットを標準テキストにして下書きを入力してから投稿するのですが、過去に入力内容に問題があったらしいケースで、どうしても エラーになったことを2回ほど経験しました。


 一度目では、次のエディタに入力内容をコピペしたところ、ある行の末尾に赤背景で強調された文字があったのを削除し、差し替えたところ、無事に投稿できました。

 【参考】

  mi - テキストエディタ

  http://www.mimikaki.net


 二度目は、こちらのトピックでの投稿で、http:に続けて//を入力し、それを「」で括ったときだったと思います。投稿内容中のURLを自動でリンクとして認識してくれますが、不適切なリンクということでエラーになったのかなと想像しています(テストできないので違う原因だったかもしれません)。


 同じように、何かの文字や文字の組み合わせがエラーになってしまうこともあるのかもしれませんね。


 ch25さんは、2015/10/24 22:35 のご返信の中で、

どこかのサイトで「isInNet関数はDNSサーバーに接続する」とありましたので、shExpMatch関数を使うとインターネット(通常の速さで)にもmoodleサーバーにも接続できるようになりました。

とご報告でした。後から参照される方々にもポイントは伝わりそうですね。

2015/10/10 17:21 三毛猫大好き への返信

三毛猫大好きさんへ

いろいろとアドバイスいただき、大変感謝しております。


mime-typeは/etc/mime.typeにも書いてみましたが、症状は変わりませんでした。

なんとなく、クライアントからproxy.pacが読めていない、理解できていないような気がします。

safariからは見えていますので・・・


連休明けに、ubuntuでやってみます。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

iPad proxy 例外設定について

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。