เป็นไปได้หรือไม่ที่จะใช้ Back To Mac DNS หรือข้อมูลการกำหนดเส้นทางจากบรรทัดคำสั่ง


8

ฉันมักจะต้องการ ssh กับ Mac และชอบที่จะใช้ประโยชน์จาก iCloud เพื่อค้นหาข้อมูลการกำหนดเส้นทาง IP / DNS สามารถทำได้โดยไม่ต้องสมัครใช้บริการ DNS แบบไดนามิกและกำหนดค่าบน Mac แต่ละเครื่องนอกเหนือจาก iCloud หรือไม่

สมมติว่า Mac ของฉันที่ใช้งานตลอดเวลาที่ชื่อโฮสต์ของบ้านคือ "maui" และมันใช้ Snow Leopard ssh maui.localเมื่อฉันแล็ปท็อปของฉันเชื่อมต่อกับเครือข่ายภายในบ้านฉันสามารถ แน่นอนว่ามันจะเป็นเรื่องดีที่จะสามารถssh maui.whatever.icloud.comหรืออะไรก็ตามที่ใช้ได้ ฉันเดาว่าฉันจะต้องมี "maui" และชื่อ iCloud ของฉันเพื่อแจ้งให้ทราบว่าเครื่องใดภายใต้บัญชีของฉันที่ต้องเข้าถึง

ไม่มีใครรู้ว่าสิ่งนี้เป็นไปได้ผ่าน API หรือบรรทัดคำสั่ง? ฉันได้ดูข้อมูลผู้พัฒนาสาธารณะหลายครั้ง แต่ไม่เห็นสิ่งใดที่มีแนวโน้ม พอยน์เตอร์หรือตัวอย่างโค้ดใด ๆ ยินดีต้อนรับ

PS โปรดอย่าแนะนำบัญชี DNS ฟรีเนื่องจากฉันสนใจ MobileMe สำหรับคำถามนี้โดยเฉพาะ ฉันรู้ว่ามันใช้งานได้ แต่ฉันต้องการหลีกเลี่ยงการติดตั้งสิ่งอื่นใดหรือการพึ่งพาบัญชี / ภายนอกอื่น ๆ บน Macs เหล่านี้


ไอเดียเจ๋ง +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.commobilemename

ขั้นตอนที่ 1: ค้นหาโดเมน iCloud BTMM ของคุณ

คำสั่งเหล่านี้จะให้โดเมน BTMM ของคุณ:

# dns-sd -E
# mDNS -E

เอาท์พุทมีรูปแบบที่แตกต่างกันเล็กน้อย 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 ชื่อผู้ใช้

โฮสต์ host2.some.domain.com ชื่อผู้ใช้ชื่อผู้ใช้ 2 พอร์ต 2222 LocalForward 3389 internal-pc: 3389

โฮสต์ที่สองในไฟล์นี้รวมถึงการใช้พอร์ตอื่นที่ไม่ใช่ 22 และอนุญาตให้เข้าถึงคอมพิวเตอร์ Windows ที่เรียกว่าพีซีภายในที่มี Remote Desktop โดยเชื่อมต่อกับ localhost ด้วย Remote Desktop Client

เห็นได้ชัดว่าตอนนี้ Apple ได้เปลี่ยน. mac เป็น MobileMe ดังนั้นฉันไม่รู้ว่าที่ได้เปลี่ยนเป็น. me.com และตรงไปตรงมาฉันไม่มีบัญชี MobileMe เพื่อทดสอบ

แก้ไข: โพสต์ที่น่าสนใจอื่นที่คุณอาจต้องการลองอยู่ที่ด้านล่าง veery

ปรากฎว่ามันง่ายยิ่งขึ้น! : P

เพียงแค่เปิดเทอร์มินัลไปที่ Shell> การเชื่อมต่อระยะไกลใหม่ ...

จากนั้นเลือก ssh และคุณมีรายการ BackToMyMac Computer ของคุณ (หากระบบปฏิบัติการเห็น)

พิมพ์ชื่อผู้ใช้ของคุณและคลิกเชื่อมต่อ

voila คุณยังสามารถเห็นสตริงการเชื่อมต่อที่ใช้ และคุณยังสามารถใช้ ftp / sftp ... จากกล่องโต้ตอบนี้ไปยัง Mac ระยะไกลของคุณ

วิธีที่ง่ายกว่าการพิมพ์คำสั่ง shell บางคำแนะนำในคำแนะนำเดิม


น่าเศร้าที่นี่ไม่ได้ผลสำหรับฉัน ฉันสามารถใช้เครื่องมือค้นหาและการแชร์หน้าจอได้อย่างสมบูรณ์แบบดังนั้นฉันจึงรู้ว่าบัญชีและเครื่องกำลังทำงานอยู่ แคปซูลเวลาล่าสุดที่มีเฟิร์มแวร์ล่าสุดเป็นเราเตอร์สำหรับแม็คทั้งสอง มีใครมีงานนี้ให้พวกเขาในสองสัปดาห์ที่ผ่านมา?
bmike

ร้อนแรง! เคล็ดลับสุดท้ายคือมัน ping และโฮสต์ไม่ทำงาน แต่ ssh ทำ เคล็ดลับเทอร์มินัลนั้นยอดเยี่ยม
bmike

หวาน! ดีใจที่ได้ช่วยเหลือ
ConstantineK

3

คุณสามารถ ssh ไปยังเครื่องที่เปิดใช้งาน "Bac to my Mac" เช่นนี้:

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

1
คุณต้องบอกให้ใช้พอร์ตปริยายหรือไม่?
ConstantineK

ping โฮสต์และ ssh ไปยังสามชื่อคอมพิวเตอร์แยกกันด้วย mobilemename สามรายการที่ล้มเหลว ฉันได้รับ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ทั้งสามทำงานกลับไปที่การแชร์หน้าจอ Mac ของฉันก่อนและหลังการ ping ความพยายามของโฮสต์และ ssh ล้มเหลว IP เซิร์ฟเวอร์ DNS ใดที่คุณใช้เพื่อให้ใช้งานได้
bmike

แม้ว่าโฮสต์และปิงจะไม่ทำงาน - ssh เริ่มทำงานให้ฉัน ฉันจะเล่นและทำเครื่องหมายคำตอบเมื่อฉันคิดว่าดีกว่า
bmike

และไม่ - ฉันไม่จำเป็นต้องโทรออกหมายเลขพอร์ตสำหรับsftpหรือssh - แต่มันไม่เจ็บมากที่จะมีพวกเขา ;-)
bmike

hostไม่ทำงานเนื่องจากใช้ตัวแก้ไข DNS ไม่ใช่ตัวแก้ไขระบบ pingไม่ทำงานเพราะ BTTM ใช้ IPv6 ลองping6แทนแล้วคุณจะเห็นมันตอบสนอง
bahamat

2

นั่นเป็นเพราะที่อยู่ IP สำหรับการแก้ไขเป็นรุ่นที่ 6

หากคุณใช้ ping6 หรือ traceroute6 คุณสามารถติดต่อโฮสต์ของคุณได้เช่นกัน


นั่นเจ๋งจริงๆ ขอบคุณมากที่เพิ่มสิ่งนี้ คุณรังเกียจไหมถ้าฉันเพิ่มข้อมูลของคุณลงในคำตอบข้างต้นเมื่อฉันมีโอกาสเห็นว่ามันเหมาะกับฉันหรือไม่? +2 ถึง @pst
bmike

2

ขอบคุณมากที่ทั้งเตาแก๊สและโกปป์ซึ่งทั้งคู่มีวิธีแก้ปัญหาที่ใช้การได้ ปัญหาหลักคือ MobileMe Back To My ใช้การกำหนดที่อยู่ IPv6 ถ้ามีและอาจเป็นแบบเฉพาะดังนั้นฉันไม่คิดว่าจะใช้ ping6 หรือ traceroute6 และ ssh นั้นฉลาดพอที่จะแก้ไขทั้ง IPv4 หรือ IPv6

ssh -p 22 username@computername.mobilemename.members.mac.com. ทำงานได้อย่างน่าเชื่อถือมากสำหรับฉันในการทดสอบวันนี้

ตั้งแต่นี้สะดุดฉันขึ้นขณะที่ผมกำลังคาดหวังpingและhostและnslookupไปทำงานฉันคิดฉันจะใส่ขึ้นเป็นบทสรุปที่ดีของสิ่งที่ทำงานสำหรับฉัน (พร้อมรูปภาพ! - ฉันชอบรูปภาพ)

เพื่อสรุปsftp, ssh, ping6และtraceroute6ควรจะทำงานกับโครงการตั้งชื่อนี้

built-in terminal (และiTerm ) ของAppleนั้นยอดเยี่ยมเพื่อให้แน่ใจว่าชื่อผู้ใช้และชื่อย่อระยะไกลของคุณถูกต้อง ชื่อนี้เป็นชื่อโฮสต์แบบย่อ (ที่hostnameพิมพ์ออกมา) และไม่จำเป็นว่า Finder Finder ชื่อที่ใช้ร่วมกันอีกต่อไปจะแสดงสำหรับ Mac ระยะไกล)

ชื่อโฮสต์แบบสั้น

นี่คือสิ่งที่เทอร์มินัลแสดงเมื่อพบว่าเครื่อง Back To My ของฉันทำงาน รายการเมนูใหม่การเชื่อมต่อระยะไกล ...และทางลัดคือShift+ +Command Kมันแสดงให้เห็นว่าชื่อเครื่องมือค้นหา"Mikey's Mac"อาจแตกต่างจากชื่อโฮสต์ย่อmi อย่างไร

ป้อนคำอธิบายรูปภาพที่นี่


1
คำตอบที่ครอบคลุมที่ดีพร้อมกับบทคัดกรอง +1
ConstantineK

เตามีหนึ่ง b: p
ConstantineK
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.