ヘアピンNAT非対応のルータのために、‘ets/hosts’ファイルを書き換える

俗にいうヘアピンNATに対応していないルータのため、LAN内に配置されたサーバマシンへグローバルIP(あるいはドメイン名)でアクセスできない環境となっています。
(まあ、電話で言えば自分にかけてるようなものですから、ループバックを受け付けないというのもそれなりの理ではあるのですが…)

考えられる対処策としては、

  • 外部のプロキシサーバを経由してアクセスする
  • 内部アクセス専用のDNSサーバをたてる
  • hostsファイルを編集してドメイン名でLAN上のマシンにルーティングする

こんなものでしょうか。

外部のプロキシサーバということでは速度的なハンディキャップが大きそうです。DNSサーバも敷居が高そうです。hostsファイルの書き換えが一番早道のようなので、これで行くことにしました。

移動用のマシンを使っていない間は手作業でhostsファイルの書き換えをしていたのですが、MacBookを持ち歩くようになると外と中で使い分ける必要が生じ、その都度書き換えなければいけないという面倒な自体となり、
探せばhostsファイルマネージャーともいうべきツールがあるのでしょうが、ここはAppleScriptで書いてみることにしました。

■Exchange_Locale.app

Exlocale128・機能
図のように、内部ネットワークと出先(外部)で、「hosts」ファイルを書き換えます。
「hosts」ファイルの設定データは、次の図のように、Exchange_Locale.appのバンドルパッケージの中の「Resources」フォルダの中に、‘hosts_In.txt’、‘hosts_Out.txt’の名前で用意しています。この2つのファイルを環境に合わせてエディタで編集してください。
(テキストエンコーディングはUTF-8、行末コードはLFです)
Exchange_Locale.app自体は、この2つのデータファイルの内容に従って「hosts」ファイルを書き換えているだけです。

2013-07-23 8.23.53

2013-07-23 8.24.53

■使い方
任意の場所に置いてダブルクリックの起動でOKです。スクリプトメニューフォルダに置くのもいいでしょう。
最初の起動時に、管理者権限のユーザパスワードを入力してください。
起動後、「内部」「出先」いずれかのボタンをクリックしてください。‘Exchange_Locale.app/Contents/Resources/’内部の‘hosts_In.txt’、‘hosts_Out.txt’のデータに従って、‘etc/hosts’ファイルを書き換えます。
念のために、元の「hosts」ファイルは「hosts~org」という名前で(一度だけ)バックアップされます。

■ダウンロード
http://amstudio.sytes.net/amweb/Exchange_Locale.iso.zip
※Exchange_Locale.appの著作権は放棄いたしませんが、対価は不要です。自己責任で、自由にお使いください。
インターネット上のリンクは、作者への事前/事後の承諾は不要ですので、自由にリンクして下さい。
基本的に、再配布・転載は認めません。

■保証
動作に関する保証はいたしません。また、使用によって生じたと思われるいかなる損害に対しても、作者は一切責任を負い ません。使用は御自身の責任において行なってください。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中