MacをOS X Yosemiteにアップデートしたら、今まで正常に動作していたVPNが繋がらなくなりました。
ところが、iMacの方は繋がらなくなったものの、MacBookAirでは繋がります。VPN設定は同じ。なのになぜかiMacの方だけダメ。ファイアウォールを切ってみたり再起動してみたりしても繋がりません。
色々情報を探してたら、ネットでこんな情報を発見。
http://arstechnica.com/civis/viewtopic.php?f=19&t=1258743
要するに、YosemiteのL2TPクライアントにバグがあり、固定IPの場合接続できなくなる、というもの。上記リンク先ではWi-fiの時に再現を確認したとの情報ですが、Ethernet(ケーブル)接続においても同様かもしれないと思ったら・・・やはりそうでした。IPの設定が「手入力」になっていると、L2TPを利用したVPNに接続できません。MacBookAirだけ繋がっていたのは、IPアドレスがDHCP利用に設定されていたからです。
iMacで「手入力」にしていたのはIPアドレスを固定するためですが、これだとVPNに繋がらないし、どうしようか・・・と思っていたら、Macには
「DHCPサーバを使用(アドレスは手入力)」
という設定があるんですね。これに設定すると、IPアドレスのみて入力で固定することができ、デフォルトゲートウェイあネットマスクなどの他の設定はDHCPで取得することになります。この設定を行うことで、VPNに接続することができました。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうぞ。
2014年10月21日火曜日
2014年3月27日木曜日
Macの端末内Vimで挿入モード時カーソル形状切り替え
Macで端末を起動してリモートにSSH接続し、Vimでソースコードを編集するって使い方を普段良くするんですけれども、以前からの不満の1つが挿入モードの時のカーソル形状を切り替えできないことでした。
MacVimであれば、ノーマルモードのカール形状はブロックで、挿入モードの時はカーソル形状が垂直バーとなります。これにより現在が挿入モードかどうかすぐ分かりますし、文字が挿入される位置も見やすくなります。
で、端末上で起動するVimにしても、実はカーソル形状の切り替えができるらしいことが調べてわかったんですが、いかんせんMacのOS X標準で用意されている"ターミナル.app"は、カーソル形状の切り替えに対応していないようです。しかしながら、"iTerm2"という端末アプリが対応しているらしいとのこと。
ということで、標準の"ターミナル.app"から"iTerm2"へ乗り換えるとともに、カーソル形状をモードによって切り替える設定をしました。
下記からダウンロードして解凍し、出てきたアプリを直接「アプリケーション」フォルダにドラッグ&ドロップしてください。
http://www.iterm2.com/#/section/home
設定は好みですが、プロファイルの以下の部分は重要と思われますので書いておきます。
「Text」タブ
Treat ambiguous-width characters as double width にチェック → これにチェックを入れておかないと、□や◯といった記号の混じった文章がおかしくなります。
「Window」タブ
Disable session-initiated window resizing のチェックを外す → ウィンドウサイズを変更した時に追随させるにはチェックを外します。
「Terminal」タブ
Save lines to scrollback in alternate screen mode のチェックを外す → Vim起動中にウィンドウサイズを変更した場合に、Vim終了後の端末ヒストリーがおかしくならないようにするにはチェックを外す必要があります。
Report Terminal Type: "xterm-256color"に設定 → デフォルトだと"xterm"ですが、カラー表示が一部不完全になるので、この設定に変更します。
「Key」タブ
ターミナル上でMac側のショートカットキーが効かなくなる場合がありますので、ここで設定して回避します。僕の場合、日本語/英数の入力切り替えに使うキーを効くようにするために次のように設定しました。
Ctrl+Shift+J → Do not Remap Modifiers
Ctrl+Shift+: → Do not Remap Modifiers
さて、カーソル形状をモードによって切り替えるには、下記の設定を.vimrcに記述してVimを再起動します。
最初のt_SIとt_EIの設定では、エスケープシーケンスを用いてカーソル形状を設定しています。
また、ttimeoutlenはエスケープシーケンスをその時間内に入力すれば認識するという意味で、逆に言えばその時間まで待って初めてエスケープシーケンスの効果を認識するということになります。この時間が認識できるくらい長いと挿入モードを抜けた際にカーソル形状がすぐにもどらない、なんて事が起きます。エスケープシーケンスは手入力しないことがほとんどだと思うので、10msecに設定しています。(0でもいいという情報もみかけましたが念のため10msecにしてます。)
さらに、なぜか挿入モードを抜けた時にカーソルが次の操作をするまで見えなくなるという現象がたまに発生したので、上記設定をしたら治りました。なぜ治るのかの理由は不明ですが、追求しても仕方ないのでよしとします。(分かる人いたら教えてください。)
ちなみに、iTerm2は標準でマウスイベントに対応してまして、mouse=aと.vimrcに書いておけばホイールスクロールできますし、マウスドラッグがビジュアルモード選択になります。なおMac側でコピペしたい時にはOptionキーを押しながらドラッグするとできます。
これで快適にVimで操作できるでしょう。楽しいVimライフを!
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうぞ。
MacVimであれば、ノーマルモードのカール形状はブロックで、挿入モードの時はカーソル形状が垂直バーとなります。これにより現在が挿入モードかどうかすぐ分かりますし、文字が挿入される位置も見やすくなります。
で、端末上で起動するVimにしても、実はカーソル形状の切り替えができるらしいことが調べてわかったんですが、いかんせんMacのOS X標準で用意されている"ターミナル.app"は、カーソル形状の切り替えに対応していないようです。しかしながら、"iTerm2"という端末アプリが対応しているらしいとのこと。
ということで、標準の"ターミナル.app"から"iTerm2"へ乗り換えるとともに、カーソル形状をモードによって切り替える設定をしました。
iTerm2のインストールと設定
下記からダウンロードして解凍し、出てきたアプリを直接「アプリケーション」フォルダにドラッグ&ドロップしてください。
http://www.iterm2.com/#/section/home
設定は好みですが、プロファイルの以下の部分は重要と思われますので書いておきます。
「Text」タブ
Treat ambiguous-width characters as double width にチェック → これにチェックを入れておかないと、□や◯といった記号の混じった文章がおかしくなります。
「Window」タブ
Disable session-initiated window resizing のチェックを外す → ウィンドウサイズを変更した時に追随させるにはチェックを外します。
「Terminal」タブ
Save lines to scrollback in alternate screen mode のチェックを外す → Vim起動中にウィンドウサイズを変更した場合に、Vim終了後の端末ヒストリーがおかしくならないようにするにはチェックを外す必要があります。
Report Terminal Type: "xterm-256color"に設定 → デフォルトだと"xterm"ですが、カラー表示が一部不完全になるので、この設定に変更します。
「Key」タブ
ターミナル上でMac側のショートカットキーが効かなくなる場合がありますので、ここで設定して回避します。僕の場合、日本語/英数の入力切り替えに使うキーを効くようにするために次のように設定しました。
Ctrl+Shift+J → Do not Remap Modifiers
Ctrl+Shift+: → Do not Remap Modifiers
Vimの設定
さて、カーソル形状をモードによって切り替えるには、下記の設定を.vimrcに記述してVimを再起動します。
" 挿入モードでカーソル形状を変更する let &t_SI.="\e[6 q" let &t_EI.="\e[2 q" " カーソル形状がすぐに元に戻らないのでタイムアウト時間を調整 set ttimeoutlen=10 " 挿入モードを抜けた時にカーソルが見えなくなる現象対策(なぜかこれで治る) inoremap <ESC> <ESC>
最初のt_SIとt_EIの設定では、エスケープシーケンスを用いてカーソル形状を設定しています。
また、ttimeoutlenはエスケープシーケンスをその時間内に入力すれば認識するという意味で、逆に言えばその時間まで待って初めてエスケープシーケンスの効果を認識するということになります。この時間が認識できるくらい長いと挿入モードを抜けた際にカーソル形状がすぐにもどらない、なんて事が起きます。エスケープシーケンスは手入力しないことがほとんどだと思うので、10msecに設定しています。(0でもいいという情報もみかけましたが念のため10msecにしてます。)
さらに、なぜか挿入モードを抜けた時にカーソルが次の操作をするまで見えなくなるという現象がたまに発生したので、上記設定をしたら治りました。なぜ治るのかの理由は不明ですが、追求しても仕方ないのでよしとします。(分かる人いたら教えてください。)
ちなみに、iTerm2は標準でマウスイベントに対応してまして、mouse=aと.vimrcに書いておけばホイールスクロールできますし、マウスドラッグがビジュアルモード選択になります。なおMac側でコピペしたい時にはOptionキーを押しながらドラッグするとできます。
これで快適にVimで操作できるでしょう。楽しいVimライフを!
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうぞ。
2014年3月26日水曜日
Macのターミナル上のvimでマウスホイールスクロール
僕もvim愛用者の一人ですけれども、MacBookではMacVimとターミナル上のvimの両方を使い分けております。また、sshでリモート接続してターミナル上でvimを使うこともしばしばあります。そこで前から、ターミナル上でvimを使う時もマウスホイールでスクロールできたら便利だと思っておりまして、方法を調べてみました。
要点としては、
の3点です。
SIMBLは、MacのCocoaアプリケーションの動作をカスタマイズできる機能拡張です。このSIMBLの上にさらに用途別のプラグインをインストールすることで様々なカスタマイズができます。EasySIMBLは、本家SIMBLを改良して、ドラッグアンドドロップで簡単にプラグインをインストールできるようにしたものです。ダウンロード先はこちら↓
https://github.com/norio-nomura/EasySIMBL/
Macのターミナルがマウスイベントを送信できるようにするSIMBLプラグインです。先ほど上で述べたEasySIMBLを使ってインストールします。ダウンロード先はこちら↓
https://bitheap.org/mouseterm/
ダウンロードして解凍インストーラが出てきますが、このインストーラは使わずに、直接拡張子が「.bundle」のファイルをEasySIMBLの画面にドラッグアンドドロップしてください。
MouseTermをインストールすると、ターミナルの「シェル」メニューに「Send Mouse Events」が出現し、チェックのON/OFFで切り替えができるようになります。普段はONにしておき、Mac内の別のアプリにターミナル上の文字をコピペしたいときなどはOFFにするとよいでしょう。
.vimrcに次の記述を追加します。
なお、僕の環境ではttymouseは元々xterm2になっていたので2行目の設定は不要でした。
これで、ターミナル上のvimでもマウスが効くようになります。マウスホイールでのスクロールに加えて、クリックした部分へのカーソル移動、ドラッグによるビジュアルモード選択もできるようになります。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうぞ。
要点としては、
- EasySIMBLをインストールする
- MouseTermをインストールする
- vimの設定でマウスを有効にする
の3点です。
EasySIMBLをインストールする
SIMBLは、MacのCocoaアプリケーションの動作をカスタマイズできる機能拡張です。このSIMBLの上にさらに用途別のプラグインをインストールすることで様々なカスタマイズができます。EasySIMBLは、本家SIMBLを改良して、ドラッグアンドドロップで簡単にプラグインをインストールできるようにしたものです。ダウンロード先はこちら↓
https://github.com/norio-nomura/EasySIMBL/
MouseTermをインストールする
Macのターミナルがマウスイベントを送信できるようにするSIMBLプラグインです。先ほど上で述べたEasySIMBLを使ってインストールします。ダウンロード先はこちら↓
https://bitheap.org/mouseterm/
ダウンロードして解凍インストーラが出てきますが、このインストーラは使わずに、直接拡張子が「.bundle」のファイルをEasySIMBLの画面にドラッグアンドドロップしてください。
MouseTermをインストールすると、ターミナルの「シェル」メニューに「Send Mouse Events」が出現し、チェックのON/OFFで切り替えができるようになります。普段はONにしておき、Mac内の別のアプリにターミナル上の文字をコピペしたいときなどはOFFにするとよいでしょう。
vimの設定でマウスを有効にする
.vimrcに次の記述を追加します。
set mouse=a set ttymouse=xterm2
なお、僕の環境ではttymouseは元々xterm2になっていたので2行目の設定は不要でした。
これで、ターミナル上のvimでもマウスが効くようになります。マウスホイールでのスクロールに加えて、クリックした部分へのカーソル移動、ドラッグによるビジュアルモード選択もできるようになります。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうぞ。
2014年2月17日月曜日
SlimBlade TrackBall 向け KeyRemap4MacBook の設定
最近のMac OS X はトラックパッドのジェスチャが相当便利に出来ていて、トラックボールの使い手としては、トラックパッドのジェスチャみたいに色々できたらな〜なんて考えてしまう。
僕は SlimBlade TrackBall を使っていて、4ボタン構成のこれをフル活用すれば、トラックパッドのジェスチャ並みに完全とは行かなくても結構便利に色々な機能を使えるようになるに違いないと考えて、いろいろ試行錯誤した結果かなり便利になった。
ということで、今回は以下のことを実現する方法について書こうと思う。
まずは、TrackBallWorksを下記のように設定する。
右上を「中央ドラッグ」にしているところがポイントだ。これが組み合わせで活きる。また、TrackBallWorksで同時押しの設定もできるが、タイムラグが結構気になるレベルで発生するのでここでは設定せず、後述するTrackBallWorksで設定する。
次は言わずと知れたKeyRemap4MacBookを設定する。入れてない人はインストールしよう。設定画面の「Misc & Uninstall」タブにある「Open private.xml」ボタンをクリックし、表示されたファイル(private.xml)を次のように編集する。
保存したら、設定画面の「Change Key」タブに戻り、「ReloadXML」ボタンをクリックする。その後、設定画面で次のものにチェックを入れる。
TrackBallWorksで右上ボタンを中央ドラッグにした設定と、KeyRemap4MacBookの中央クリック時にマウスカーソルの動きをホイールスクロールに変える設定が合わさって、あたかも右上ボタンが押されるたびにボールでスクロールするモードのON/OFFが切り替わるように動作するわけだ。
SlimBlade TrackBall はボールを水平方向にひねることでホイール回転を行えるのだが、スクロールをボールで行うよう設定したので、ホイール回転を別動作に割り当てることができる。
余談だが、ボールをひねる動作は1本指でボールの周囲をなぞるようにすることで簡単にできる。しかしスクロール目的のように頻繁に何度も繰り返すと意外と疲れるのだ。だからホイール1目盛り動かせば済むような機能を割り当てている。これなら指の動きもほんのわずかで負担もかからない。
ちなみにスクロールの向きを反転させているのは、より頻繁に使う下方向へのスクロールを指を曲げる方向に合わせるため。指を伸ばす動作よりも指を曲げる方向の方が疲れにくいからだ。同様に、ボールの右ひねりは指を曲げる方向で操作できるので、Application Windowsよりも使用頻度の高いMission Controlを割り当てている。
なお、ブラウザの操作関連(戻る/進む/更新など)はマウスジェスチャで。各ブラウザのプラグインで設定しよう。
さて、これでかなり快適になるはず。MacにSlimBlade TrackBallをつないで使っている方の参考になれば幸いだ。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
僕は SlimBlade TrackBall を使っていて、4ボタン構成のこれをフル活用すれば、トラックパッドのジェスチャ並みに完全とは行かなくても結構便利に色々な機能を使えるようになるに違いないと考えて、いろいろ試行錯誤した結果かなり便利になった。
ということで、今回は以下のことを実現する方法について書こうと思う。
- 左右クリック同時押し → ドラッグロック&解除
- 右上ボタン →「ボールでスクロールするモード」切り替え
- 左上ボタン → Launchpad
- ボールを右ひねり回転(ホイール下) → Mission Control
- ボールを左ひねり回転(ホイール上)→ Application Windows
- 左上ボタンと左クリック同時押し → Dashboard
- 左上ボタンと右クリック同時押し → デスクトップを表示
まずは、TrackBallWorksを下記のように設定する。
- 右下ボタン→右クリック
- 左上ボタン→ボタン4
- 右上ボタン→中央ドラッグ
- 同時押しは設定しない
右上を「中央ドラッグ」にしているところがポイントだ。これが組み合わせで活きる。また、TrackBallWorksで同時押しの設定もできるが、タイムラグが結構気になるレベルで発生するのでここでは設定せず、後述するTrackBallWorksで設定する。
次は言わずと知れたKeyRemap4MacBookを設定する。入れてない人はインストールしよう。設定画面の「Misc & Uninstall」タブにある「Open private.xml」ボタンをクリックし、表示されたファイル(private.xml)を次のように編集する。
<?xml version="1.0"?>
<root>
<item>
<name>Private</name>
<item>
<name>Cange MouseButton4</name>
<appendix>MouseButton4 to Launchpad</appendix>
<appendix>(Simultaneous)MouseButton4 and LeftClick to Dashboard</appendix>
<appendix>(Simultaneous)MouseButton4 and RightClick to Show Desktop</appendix>
<identifier>private.cange_mouse_button4</identifier>
<autogen>
__PointingButtonToKey__
PointingButton::BUTTON4,
KeyCode::LAUNCHPAD
</autogen>
<autogen>
__SimultaneousKeyPresses__
PointingButton::BUTTON4, PointingButton::LEFT,
KeyCode::DASHBOARD
</autogen>
<autogen>
__SimultaneousKeyPresses__
PointingButton::BUTTON4, PointingButton::RIGHT,
KeyCode::MISSION_CONTROL, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND
</autogen>
</item>
<item>
<name>Cange ScrollWheel</name>
<appendix>ScrollWheel Up to Application Expose</appendix>
<appendix>ScrollWheel Down to Mission Control</appendix>
<identifier>private.cange_scrollwheel</identifier>
<autogen>
__ScrollWheelToKey__ ScrollWheel::UP,
KeyCode::MISSION_CONTROL, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL
</autogen>
<autogen>
__ScrollWheelToKey__ ScrollWheel::DOWN,
KeyCode::MISSION_CONTROL
</autogen>
</item>
<item>
<name>Drag and Drop via Simultaneous LeftClick & RightClick</name>
<appendix>(Simultaneous) LeftClick & RightClick to Start Drag</appendix>
<appendix>(Simultaneous) LeftClick & RightClick to Drop</appendix>
<identifier>private.drag_drop_simultanious_left_right_click</identifier>
<autogen>
__SimultaneousKeyPresses__
PointingButton::LEFT, PointingButton::RIGHT,
KeyCode::VK_MOUSEKEY_LOCK_BUTTON_LEFT
</autogen>
</item>
</item>
</root>
保存したら、設定画面の「Change Key」タブに戻り、「ReloadXML」ボタンをクリックする。その後、設定画面で次のものにチェックを入れる。
- Private配下の3つの設定全部
- Pointing Device
- Reverse scrolling direction
- Reverse Vertical & Horizontal Scrolling
- CursorMove to ScrollWheel
- MiddleClick+CursorMove to ScrollWheel
- CursorMove to ScrollWheel Option
- Reverse Vertical Scrolling
- Reverse Horizontal Scrolling
- Enable dynamic scrollwheel diraction fixation (Horizontal/Vertical)
- Disable Momentum Scroll
TrackBallWorksで右上ボタンを中央ドラッグにした設定と、KeyRemap4MacBookの中央クリック時にマウスカーソルの動きをホイールスクロールに変える設定が合わさって、あたかも右上ボタンが押されるたびにボールでスクロールするモードのON/OFFが切り替わるように動作するわけだ。
SlimBlade TrackBall はボールを水平方向にひねることでホイール回転を行えるのだが、スクロールをボールで行うよう設定したので、ホイール回転を別動作に割り当てることができる。
余談だが、ボールをひねる動作は1本指でボールの周囲をなぞるようにすることで簡単にできる。しかしスクロール目的のように頻繁に何度も繰り返すと意外と疲れるのだ。だからホイール1目盛り動かせば済むような機能を割り当てている。これなら指の動きもほんのわずかで負担もかからない。
ちなみにスクロールの向きを反転させているのは、より頻繁に使う下方向へのスクロールを指を曲げる方向に合わせるため。指を伸ばす動作よりも指を曲げる方向の方が疲れにくいからだ。同様に、ボールの右ひねりは指を曲げる方向で操作できるので、Application Windowsよりも使用頻度の高いMission Controlを割り当てている。
なお、ブラウザの操作関連(戻る/進む/更新など)はマウスジェスチャで。各ブラウザのプラグインで設定しよう。
さて、これでかなり快適になるはず。MacにSlimBlade TrackBallをつないで使っている方の参考になれば幸いだ。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
2014年2月7日金曜日
Mac OS XでVPN接続が切れたら自動的に再接続する
先日構築したSoftEther VPNによるVPN環境で、遠隔地のMacでVPNを接続しておいたはずが、いつの間にか接続が切れているという問題が度々発生していた。
OS XのL2TPクライアントにKeep-Aliveの機能はついてないみたいだし、かと言ってSSHみたいに接続先のターミナル上で定期的になにか出すというわけにもいかない。
じゃあ、接続を切れないようにするんじゃなくて、切れたら再接続するようにできればいいんじゃないか、と思って探したらあった。
Mac OS X起動時にVPNで自動接続&途切れても再接続するように設定できる : ライフハッカー[日本版]
なるほど。しかし上記リンク先のコードはなぜかインデントが全角空白になってて面倒だと思うので、直したコードを以下に貼っとく。なお"VPN Service Name"の部分は接続したいVPN接続設定の名前に置き換えること(「システム環境設定」の「ネットワーク」に表示されている名前)。あと接続有無の監視間隔が120秒だったのを60秒に変更してある。
AppleScriptエディタを開いて上記コードを貼り付け、メニューの「ファイル>保存...」を選択する。ダイアログで
あとは保存したアプリケーションを実行すれば接続が開始され、60秒間隔で接続の有無を監視してもし接続が切れていたら自動的に再接続してくれる。
実際先日構築したVPN環境で試したら、接続が切れた時にちゃんと再接続してくれていたことが確認できた。これでVPNが落ちてないか心配せずに済む。
ちなみに、起動時に自動的にVPNに接続させるには、「システム環境設定>ユーザとグループ」でユーザを選び「ログイン項目」に追加しておけばいい。さらに実行中にDockにアイコンを出さない方法も上のリンク先に書いてあるので必要なら参照のこと。僕の場合、実行されているのが明示的にわかったほうがいいと思ったのでアイコン消す設定はしてない。
Apple Script も極めれば色々自動化できそうで面白そうだな。また機会があったら調べてみよう。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
OS XのL2TPクライアントにKeep-Aliveの機能はついてないみたいだし、かと言ってSSHみたいに接続先のターミナル上で定期的になにか出すというわけにもいかない。
じゃあ、接続を切れないようにするんじゃなくて、切れたら再接続するようにできればいいんじゃないか、と思って探したらあった。
Mac OS X起動時にVPNで自動接続&途切れても再接続するように設定できる : ライフハッカー[日本版]
なるほど。しかし上記リンク先のコードはなぜかインデントが全角空白になってて面倒だと思うので、直したコードを以下に貼っとく。なお"VPN Service Name"の部分は接続したいVPN接続設定の名前に置き換えること(「システム環境設定」の「ネットワーク」に表示されている名前)。あと接続有無の監視間隔が120秒だったのを60秒に変更してある。
on idle
tell application "System Events"
tell current location of network preferences
set myConnection to the service "VPN Service Name"
if myConnection is not null then
if current configuration of myConnection is not connected then
connect myConnection
end if
end if
end tell
return 60
end tell
end idle
AppleScriptエディタを開いて上記コードを貼り付け、メニューの「ファイル>保存...」を選択する。ダイアログで
- ファイルフォーマットは「アプリケーション」を選択
- オプションの「ハンドラの実行後に終了しない」にチェック
あとは保存したアプリケーションを実行すれば接続が開始され、60秒間隔で接続の有無を監視してもし接続が切れていたら自動的に再接続してくれる。
実際先日構築したVPN環境で試したら、接続が切れた時にちゃんと再接続してくれていたことが確認できた。これでVPNが落ちてないか心配せずに済む。
ちなみに、起動時に自動的にVPNに接続させるには、「システム環境設定>ユーザとグループ」でユーザを選び「ログイン項目」に追加しておけばいい。さらに実行中にDockにアイコンを出さない方法も上のリンク先に書いてあるので必要なら参照のこと。僕の場合、実行されているのが明示的にわかったほうがいいと思ったのでアイコン消す設定はしてない。
Apple Script も極めれば色々自動化できそうで面白そうだな。また機会があったら調べてみよう。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
2014年2月5日水曜日
Mac OS X で TUN/TAP 仮想ネットワークデバイス
仮想ネットワークデバイスを Mac OS X で試してみたくて調べてた。TUN/TAP は共に仮想ネットワークデバイスの仕組みで、名前自体は知ってたけれど違いがよく分かってなかったので改めて調べてみると、
TAP : データリンク層を操作する仮想デバイス
TUN : ネットワーク層を操作する仮想デバイス
ていうことらしい。TAPはソフトウェアルータ、TUNはソフトウェアブリッジに使える、っていう理解でいいのかな。
Mac OS X 用の TUN/TAP ドライバは下記からダウンロードできる。
http://tuntaposx.sourceforge.net/
インストールは特に難しいことはなくて、インストーラの指示に従えば完了する。
インストールが完了しても、システム設定画面などに変化はない。ただ、/dev を見てみると、tun0〜tun9 と tap0〜tap9 のデバイスが新たに作られているのが分かる。
ごく簡単な使い方の例としてはこんなスクリプトを見つけた。
http://lakm.us/logit/2013/01/handy-tap-interface-mac-osx/
上記リンク先からちょっと引用しよう。
これを setup-tap1.py として保存したら、
て感じでバックグラウンドで実行する。
すると ifconfig で tap1 が出現するようになるので、IP アドレスの設定なども可能。
と、この辺まで調べたあたりで、TUN/TAP 仮想ネットワークデバイスとは別の方法を検討し始めたので今回はここまで。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
TAP : データリンク層を操作する仮想デバイス
TUN : ネットワーク層を操作する仮想デバイス
ていうことらしい。TAPはソフトウェアルータ、TUNはソフトウェアブリッジに使える、っていう理解でいいのかな。
Mac OS X 用の TUN/TAP ドライバは下記からダウンロードできる。
http://tuntaposx.sourceforge.net/
インストールは特に難しいことはなくて、インストーラの指示に従えば完了する。
インストールが完了しても、システム設定画面などに変化はない。ただ、/dev を見てみると、tun0〜tun9 と tap0〜tap9 のデバイスが新たに作られているのが分かる。
ごく簡単な使い方の例としてはこんなスクリプトを見つけた。
http://lakm.us/logit/2013/01/handy-tap-interface-mac-osx/
上記リンク先からちょっと引用しよう。
#!/usr/bin/python import os while 1: try: file_path = '/dev/tap1' dev_file = os.open(file_path, os.O_RDWR) interface = 'tap1' while 1: pass except: print "tap interface is closing" exit() break
これを setup-tap1.py として保存したら、
[root]# ./setup-tap1.py &
て感じでバックグラウンドで実行する。
すると ifconfig で tap1 が出現するようになるので、IP アドレスの設定なども可能。
と、この辺まで調べたあたりで、TUN/TAP 仮想ネットワークデバイスとは別の方法を検討し始めたので今回はここまで。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。
登録:
投稿 (Atom)


