特定のデータセンタへの接続を禁止する。

とあるMetaTrader4 業者のデモサーバは、8台のデータセンタから構成されているようなのですが、なぜか、そのうちの HK(香港?) というデータセンタに繋がると、Tick が更新されない等の現象が起きます。(今は解決しているようです..。)
こんな時は、素直に業者を変えたほうが良い...と思いますが、HK だけがトラブルの原因だとしたら、HK への接続のみを禁止するという対策も考えられます。


しかし、残念ながら、MT4 本体には特定のデータセンタを利用しないようにする設定する機能はありません。

↑HKに繋がる緑の接続だけ切ることはできない。

↑ネットワークの途中で、接続させないように切ってしまえばOK。


これを実現するには、特定のサーバへの接続を拒否できるファイヤーウォールソフトや、ルーターを設定できれば楽なのですが、それが無理な場合は、squid というプロキシサーバを利用できます。

(squidイカ らしいです..)



以下、例によって、大雑把に説明しますので、詳細なやり方はご自身で探Qください。^^;


(1) squid をダウンロードします。
http://www.acmeconsulting.it/SquidNT/ の2.7STABLE 8 Standard で良いです。


(2) C:\squid 以下に解凍します。
設定ファイルが C:\squid を前提としているので、そのままの場所に設置するのが楽です。

(3) etc 内の squid.conf.default,mime.conf.defalut をコピーして、squid.conf,mime.conf とします。

(4) 所定の位置に http_access allow localhost を追記します。

↑これを書かないとローカルPCからプロキシが利用できないのです。



(5) 所定の位置に HK のIPアドレスと、そこへのアクセスを拒否する設定を2行追記します。
acl HK dst 202.67.237.27/32
http_access2 deny HK

データセンタのIPを知るには、CurrPortsが楽です。
追加で他のIPを登録するなら、HK の部分を書き換えて2行セットで追加してください。


(6) 管理者権限のあるコマンドプロンプトから、 squid -i と squid -z を実行します。
この辺りは、こちらを参考にしてください。

squid -i は サービスのインストールです。アンインストールする時は squid -r を実行します。
Vista で管理者権限のあるコマンドプロンプトは、アクセサリ->コマンドプロンプトを右クリックして、管理者として実行..で開きます。

(7) サービスの管理画面で開始を押して、squid を実行します。

squid が proxy として正常動作しているかどうか?は、ブラウザのプロキシサーバ設定で動作確認することが可能です。


(8) MetaTrader4 のプロキシ設定で、localhost:3128 を指定します。

(9) この状態で Datacenter HK を選択すると、Proxy によって接続が拒否されます。
MT4が自動で接続先を変更してゆく際にも、HKは拒否されて別のサーバに繋がります。

HTTP Proxy: HTTP/1.0 403 Forbidden (localhost:3128) なんてメッセージが出るのを初めて見ました。^^;


こんな感じで、特定のデータセンタ接続をブロックできるので、そういう問題でお困りの人はこれで対処してみてください。


もっと簡単に設定できるソフトをご存知の人はご一報ください。><