コマンドラインからBack To My Mac DNSまたはルーティング情報を使用することはできますか?


8

私はMacにSSHで接続したいことが多く、iCloudを利用してIP / DNSルーティング情報を調べたいと思っています。これは、ダイナミックDNSサービスにサインアップし、iCloudに加えて各Macで構成することなく実行できますか?

私の自宅の常時Macのホスト名が「maui」であり、Snow Leopardを実行していると仮定しましょう。ホームネットワークに接続されているラップトップを使用しているときに、次のことができssh maui.localます。それができるssh maui.whatever.icloud.comか、何でもうまくいくといいのですが。私のアカウントのどのマシンに到達する必要があるかを知らせるには、「マウイ」と私のiCloud名が必要だと思います。

これがAPIまたはコマンドラインを介して可能かどうか誰かが知っていますか?私は公開開発者情報を何度か閲覧しましたが、有望なものは何もありません。ポインタやコード例は大歓迎です。

PS 私はこの質問のためだけにMobileMeに本当に興味があるので、無料のDNSアカウントを提案しないでください。私はそれらが機能することを知っていますが、これらのMacに他の何かまたは別のアカウント/外部依存関係をインストールしないようにしています。


クールなアイデア、+ 1と私はあなたが答えを得ると思います。
ConstantineK、

プライバシーのリスクがあるため、Appleがユーザーにこれを公開したくないことはわかりますが、このためのAPIを用意しておくとよいでしょう。
bmike

1
参照:OS X 10.7 Lionの同じ問題(少し異なります)。apple.stackexchange.com/questions/53719/...
drfrogsplat

回答:


9

これは、10.7で少し変更されている、あなたは、これがでテストしてほぼ完全にIPv6を使用することに注意してくださいしたいと思うping6し、traceroute6デバッグ事に。

これはを介し@computername.mobilemename.members.mac.comて行われるのmembers.btmm.icloud.comではなく、を介して行われるようになり、のように単純ではなくなりましたmobilemename

ステップ1:iCloud BTMMドメインを見つける

これらのコマンドのいずれかでBTMMドメインが提供されます。

# dns-sd -E
# mDNS -E

出力の形式は少し異なりますが、数値IDが後に続くので、のようになり12345678.members.btmm.icloud.comます。

ステップ2:コンピューターを一覧表示する

これらのツールを使用して、そのドメインをサービス(sshサーバーなど)で参照できます。

# dns-sd -B _ssh 12345678.members.btmm.icloud.com

または、ホスト名がわかっている場合は、として直接アクセスしますcomputer-name.12345678.members.btmm.icloud.com。(コンピューター名のスペースは、このドメインではハイフンになります)。

このホスト名は、実際にはBTMMコンピューター間の暗号化されたネットワークトンネルの終端であるIPv6アドレスに解決されるため、同じアカウントでBTMM用にセットアップされているコンピューターからのアクセスできます。

特定のホストのIPv6アドレスを表示するには、次のように入力します。

# dns-sd -G v6 computer-name.12345678.members.btmm.icloud.com

そしてそれは次のようなものを出力します:

17:37:47.504  Add     2  0 computer-name.12345678.members.btmm.icloud.com. FD11:993E:64AE:4DEA:011F:FBD1:F444:11A1%<0>  152

ステップ3:接続

# ssh username@computer-name.12345678.members.btmm.icloud.com

注意

その数が変わるかどうかわからないので、後である時点でステップ1を繰り返す必要があるかどうかはわかりません...


鮮やかさ!Lionに合うように質問を編集するか、別の質問をするかは、私には決まっていません。新しい質問にリンクして、ライオンの質問に「回答」できるようにします。この回答はとても役に立ちます。
bmike


3

私はBack To My Macを支えるいくつかの記事を読み、おそらく一部の人々はsshを介して効果的に接続しています。このMacworldの投稿に含まれているディスカッションをチェックしてください。

スレッドでの最高の投稿は次のとおりです。

別のユーザー名で接続するには、次の形式を使用します。

ssh user.name@hostname.username.members.mac.com。

これを定期的に行い、sshとscpで常にユーザー名を使用する必要をなくしたい場合は、次のような内容の〜/ .ssh / configというファイルを作成します。

ホストhostname.username.members.mac.com。ユーザーuser.name

ホストhost2.some.domain.com。ユーザーusername2ポート2222 LocalForward 3389 internal-pc:3389

このファイルの2番目のホストには、22以外のポートを使用し、リモートデスクトップクライアントでlocalhostに接続することにより、リモートデスクトップでinternal-pcと呼ばれるWindowsコンピューターへのアクセスを許可します。

明らかにAppleは.macをMobileMeに切り替えたので、それが.me.comに切り替えられたかどうかはわかりません。正直なところ、それをテストするためのMobileMeアカウントも持っていません。

編集:あなたが試したいかもしれないもう一つの興味深い投稿は、veery底にあります

それはさらに簡単であることがわかりました!:P

ターミナルを開くだけで、シェル>新しいリモート接続に移動します...

次にsshを選択すると、BackToMyMacコンピューターがリストされます(OSが認識している場合)。

ユーザー名を入力して接続をクリックします。

ほら、使用されている接続文字列も確認できます。また、このダイアログからリモートMacにftp / sftp ...を使用することもできます。

元のヒントで提案されているようなシェルコマンドを入力するよりもはるかに簡単です。


残念ながら、これは私にはうまくいきません。ファインダーと画面共有を完全に使用できるので、アカウントとマシンが稼働していることがわかります。最新のファームウェアを搭載した最近のTime Capsulesは、両方のMacのルーターです。過去2週間に誰かがこの作業を行ったことがありますか?
bmike

ホットダン!最後のヒントはそれでした。pingとhostは機能しませんが、sshは機能します。その端末のヒントは素晴らしいです。
bmike

甘い!お役に立ててうれしいです。
ConstantineK、

3

次のように、「Bac to my Mac」が有効になっているマシンにSSHで接続できます。

ssh -p 22 username@computername.mobilemename.members.mac.com

1
デフォルトのポートを使用するように本当に指示する必要がありますか?
ConstantineK、

3つの異なるmobilemenameを持つ3つの別々のコンピューター名へのping、host、sshが失敗します。host yy.xx.members.mac.com not found: 3(NXDOMAIN)ホストの試行でエラーが発生しssh: Could not resolve hostname yy.xx.members.mac.com: nodename nor servname provided, or not known、ping、ホスト、およびsshの試行が失敗する前後に、3つすべてがMac画面共有に戻ります。これを機能させるためにどのDNSサーバーIPを使用していますか?
bmike

hostとpingが機能しませんが、sshが私のために機能し始めました。私は少し遊んで、どちらが良いかを考えたら答えをマークします。
bmike

そして、いいえ-私はsftpまたはsshのポート番号を呼び出す必要がないようです-しかし、それらを持っていることはそれほど害にはなりません;-)
bmike

hostシステムリゾルバではなくDNSリゾルバを使用しているため、機能しません。pingBTTMはIPv6を使用するため、機能しません。ping6代わりに試してみてください、それが反応するのを見るでしょう。
バハマート2012年

2

これは、解決用のIPアドレスがバージョン6であるためです。

ping6またはtraceroute6を使用すると、ホストにも到達できます。


それは本当にクールです。これを追加してくれてありがとう。うまくいったかどうか確認する機会がありましたら、上記の回答に情報を追加してもよろしいですか?+2から@pst
bmike

2

ホブghoppeの両方に有効な解決策を提供してくれたことに感謝します。主な問題は、MobileMe Back To My MacがIPv6アドレッシングを使用している場合であり、おそらくそれが排他的であるため、ping6やtraceroute6を使用するつもりはなく、sshはIPv4またはIPv6のいずれかを解決するのに十分賢いようです。

ssh -p 22 username@computername.mobilemename.members.mac.com. 今日のテストでは非常に信頼性の高い方法で動作します。

これは私が期待pinghostていたnslookupように動作し、動作するようになったので、私は何がうまくいったのかについての素晴らしい要約を載せると思います。(写真付き!-私は写真が本当に好きです)

要約するとsftpsshping6、およびtraceroute6この命名方式で動作するはずです。

Appleの組み込み端末(およびiTerm)は、ユーザー名とリモートの短縮名が正しいことを確認するのに最適です。名前は短いホスト名(hostname出力されるもの)であり、FinderがリモートMacに対して表示する共有名が長いとは限りません)。

短いホスト名

以下は、実行中のBack To My Macマシンを検出したときにターミナルが表示するものです。メニュー項目は[ 新しいリモート接続...]で、ショートカットはShift+ Command+ Kです。これは、ファインダー名「Mikey's Mac」が短いホスト名miとどのように異なるかを示しています。

ここに画像の説明を入力してください


1
スクリーニー+1による優れた包括的な回答
ConstantineK、

ホブには1つのb:pがあります
ConstantineK
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.