สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เคยต้องการที่จะปรับใช้ Raspberry Pi "ในสนาม" และยังสามารถเข้าถึงได้หรือไม่?
นี่เป็นวิธีง่ายๆ ในการเปิดใช้งานการเข้าถึง SSH ระยะไกลกับ Raspberry Pi 2 ของคุณ (และรุ่นอื่นๆ ด้วย) แม้ว่าจะมีวิธีแก้ปัญหาเกี่ยวกับ VPN หรือการกำหนดค่าการส่งต่อพอร์ตที่ไฟร์วอลล์ในเครื่อง แต่มักจะจัดการได้ยากสำหรับผู้ที่ไม่ใช่ผู้เชี่ยวชาญ
บริการรีเลย์รุ่นใหม่รวมถึง My-Devices.net, Pagekite.net และ Yaler.net พยายามแก้ไขปัญหานี้ ที่นี่เราใช้บริการส่งต่อของ Yaler (การเปิดเผยข้อมูล: ฉันเป็นผู้ก่อตั้ง) เพื่อให้การเข้าถึง SSH จากทุกที่ไปยัง Raspberry Pi 2
วัสดุ
- Raspberry Pi 2 (หรือรุ่นใดก็ได้) เช่น
- สาย USB, A/Micro B, e.g.
- การ์ด Micro SD 4 GB เช่น
- สายเคเบิลอีเธอร์เน็ต เช่น
ยังจำเป็น
- คอมพิวเตอร์ตั้งโต๊ะหรือโน้ตบุ๊ก
- เครือข่ายท้องถิ่นด้วย DHCP
(หมายเหตุ: ขั้นตอนที่ 3-5 ตามบทช่วยสอน CC BY-SA Yaler ขั้นตอนที่ 1 และ 2 ให้คุณเริ่มต้นจากศูนย์)
ขั้นตอนที่ 1: ติดตั้ง Raspbian
(หากคุณใช้งาน Raspbian แล้ว ให้ข้ามขั้นตอนนี้)
ดาวน์โหลดภาพ
ลองใช้ภาพ Raspbian Jessie (Lite) ที่มี sshd ทำงานเป็นค่าเริ่มต้น นั่นเป็นข้อดีสำหรับการตั้งค่า "หัวขาด" โดยไม่ต้องใช้จอแสดงผล เมาส์ หรือแป้นพิมพ์
- รับภาพ Raspbian ล่าสุดจาก https://www.raspberrypi.org/downloads/ หรือใช้ลิงก์โดยตรงนี้
- เปิดเครื่องรูด ZIP รูปภาพเพื่อรับไฟล์ภาพ IMG
เตรียมการ์ด SD บน Mac OSX
มีหลายวิธีในการเตรียมการ์ด SD บน Mac นี่คือสิ่งที่ฉันชอบ:
- รับเครื่องมือ PiFiller จาก https://ivanx.com/raspberrypi/ หรือใช้ลิงก์โดยตรงนี้
- เริ่ม PiFiller และเลือกไฟล์ภาพ IMG ที่ดาวน์โหลดด้านบน
เตรียมการ์ด SD บน Windows
- รับ Win32 Disk Imager จาก
- เริ่มเครื่องมือและเลือก IMG ที่ดาวน์โหลดด้านบน (ตรวจสอบไดรฟ์อีกครั้ง)
เตรียมการ์ด SD บน Linux
- ทำตามขั้นตอนใน
ใช้การ์ด SD
- ใส่การ์ด SD ลงใน Raspberry Pi 2
- เชื่อมต่อสายเคเบิลอีเธอร์เน็ตกับเครือข่ายท้องถิ่นของคุณ
- ต่อสาย USB เพื่อเปิดเครื่องและรอ…
เสร็จแล้ว. หลังจากนั้นไม่กี่นาที Raspbian ควรจะขึ้น
ขั้นตอนที่ 2: ค้นหา Raspberry Pi 2 ในเครือข่ายท้องถิ่นของคุณ
(หาก Raspberry Pi 2 มีจอแสดงผล เมาส์ และคีย์บอร์ด ให้ข้ามขั้นตอนนี้)
Raspi ของฉันอยู่ที่ไหน
เมื่อติดตั้ง Raspbian และ Raspberry Pi 2 เชื่อมต่อกับเครือข่ายท้องถิ่นแล้ว ควรรับที่อยู่ IP โดยอัตโนมัติด้วย DHCP และเริ่มทำงาน sshd ซึ่งจะรับฟังการเชื่อมต่อ SSH ขาเข้าบนพอร์ต 22 แต่ IP คืออะไร
มาดูกันเลย
วิธีหนึ่งในการค้นหาที่อยู่ IP ในเครื่องของ Raspberry Pi 2 (และอุปกรณ์อื่นๆ) คือการใช้เครื่องมือบรรทัดคำสั่ง nmap
- รับ nmap จาก
- หากต้องการรับที่อยู่ IP ในเครื่องคอมพิวเตอร์ของคุณ ให้เปิดเทอร์มินัลแล้วพิมพ์
$ ifconfig
ทำให้เกิดบางอย่างเช่น en0: flags= … 192.168.0.7 netmask …
- เริ่มการสืบค้น nmap สำหรับพอร์ต 22 โดยใช้คำนำหน้าที่อยู่ IP ในเครื่องของคุณเช่น
$ nmap 192.168.0.0-255 -p22
- ตรวจสอบผลลัพธ์ (หากมีหลาย IP มักจะสูงสุด)
รับรองว่าเป็นของคุณ
- รับการเข้าถึง SSH ในพื้นที่ไปยัง Raspberry Pi 2 ด้วย ssh โดยใช้ IP ในพื้นที่เช่น
$ ssh [email protected]
- ป้อนรหัสผ่านโดยค่าเริ่มต้นคือราสเบอร์รี่
- เปลี่ยนรหัสผ่านโดยพิมพ์
$ passwd
เสร็จแล้ว? Raspberry Pi 2 ของคุณพร้อมที่จะเชื่อมต่อกับบริการรีเลย์แล้ว
ขั้นตอนที่ 3: ติดตั้ง YalerTunnel Daemon
ภาพรวม
YalerTunnel daemon เป็นซอฟต์แวร์ขนาดเล็กที่เราจะใส่ลงใน Raspi ของคุณเพื่อเชื่อมต่อบริการในพื้นที่ที่ทำงานบนอุปกรณ์กับบริการส่งต่อในระบบคลาวด์ แบบนี้:
บริการรีเลย์ <- Firewall Local SSH Service
รับโดเมนรีเลย์
อุปกรณ์ทุกชิ้นที่เชื่อมต่อกับบริการรีเลย์ต้องมีโดเมนรีเลย์
- รับบัญชีทดลองใช้ฟรีพร้อมโดเมนรีเลย์ที่
(หรือหากต้องการโฮสต์รีเลย์ของคุณเองสำหรับการใช้งานที่ไม่ใช่เชิงพาณิชย์ โปรดดูที่
ติดตั้ง YalerTunnel
มาสร้าง YalerTunnel daemon จากซอร์สกัน
- เปิดเปลือกบน Raspberry Pi 2 ของคุณและอัปเดต apt-get with
$ sudo apt-get update
- ดาวน์โหลดและติดตั้ง libssl ด้วย
$ sudo apt-get ติดตั้ง libssl-dev
- สร้างไดเร็กทอรี yalertunnel
$ mkdir yalertunnel
$ cd yalertunnel
- ดาวน์โหลด แตกไฟล์ และสร้างแหล่งที่มาของ YalerTunnel
$ wget
$ tar xfzmv YalerTunnel2.src.tar.gz $./configure && make
เสร็จแล้ว? แล้วมาเริ่มเดมอนกัน
ขั้นตอนที่ 4: เริ่ม YalerTunnel Daemon
เปิดใช้งานการเข้าถึง SSH ผ่าน Yaler
$ sudo apt-get ติดตั้ง runit
- สร้างไดเร็กทอรีบริการ yalertunnel-ssh
$ sudo mkdir /etc/service/yalertunnel-ssh
$ cd /etc/service/yalertunnel-ssh
- ดาวน์โหลดสคริปต์เรียกใช้ yalertunnel และทำให้สามารถเรียกใช้งานได้
$ sudo wget https://s3.yaler.net/raspi/run-ssh -O run
$ sudo chmod a+x run
- ดาวน์โหลดสคริปต์เสร็จสิ้น yalertunnel และทำให้ปฏิบัติการได้
$ sudo wget
$ sudo chmod a+x เสร็จสิ้น
- เปิดสคริปต์การทำงานด้วย
$ sudo nano /etc/service/yalertunnel-ssh/run
- ตรวจสอบเส้นทาง (ค่าเริ่มต้น: /home/pi/yalertunnel) ตั้งค่าพอร์ตของบริการ SSH ในพื้นที่ (ค่าเริ่มต้น: 22) และตั้งค่าโดเมนรีเลย์ของคุณ
1 #!/bin/sh
⋮ 6 exec /home/pi/yalertunnel/yalertunnel proxy 127.0.0.1:22 ลอง.yaler.io:80 RELAY_DOMAIN &1 | คนตัดไม้ -t yalertunnel-ssh
บันทึกการเปลี่ยนแปลงด้วย CTRL-X จากนั้น Y แล้ว RETURN อย่าเปลี่ยน IP ในเครื่อง (ค่าเริ่มต้น: 127.0.0.1) เว้นแต่บริการ SSH จะทำงานบนอุปกรณ์แยกต่างหากในเครือข่ายเดียวกัน
- รีบูต Raspberry Pi 2 ของคุณเพื่อเรียกใช้สคริปต์
$ sudo รีบูต
เสร็จแล้ว. ตอนนี้เรามาดูวิธีเข้าถึง Raspi กัน
ขั้นตอนที่ 5: เข้าถึง Raspberry Pi 2 ด้วยไคลเอ็นต์ SSH
การใช้สีโป๊วบน Windows
- ทำตามขั้นตอน
การใช้ ssh บน Mac หรือ Linux
คำสั่ง ssh ไม่รองรับ "HTTP CONNECT" ต่างจาก Putty ดังนั้นเราจึงต้องการ YalerTunnel ที่ด้านนี้ของรีเลย์ด้วย นี่คือลักษณะที่ปรากฏ:
ไคลเอนต์ SSH -> YalerTunnel ในโหมดไคลเอนต์ -> (ไฟร์วอลล์) -> บริการรีเลย์
ติดตั้ง YalerTunnel บน Mac หรือ Linux
- ตรวจสอบให้แน่ใจว่าติดตั้ง JDK6 (หรือใหม่กว่า) แล้ว
- ตรวจสอบให้แน่ใจว่าตัวแปรสภาพแวดล้อม PATH ของคุณมีไดเร็กทอรี bin ของ JDK
- รับซอร์ส YalerTunnel Java จาก
- แตกไฟล์ ZIP เปิดเทอร์มินัลแล้วสร้าง YalerTunnel ด้วย
$ javac YalerTunnel.java
เข้าถึง Raspberry Pi 2 จากระยะไกลด้วย SSH
- บนคอมพิวเตอร์ไคลเอนต์ของคุณ ในการเริ่ม YalerTunnel ในโหมดไคลเอนต์ ให้พิมพ์
$ java YalerTunnel ไคลเอนต์ localhost:10022 try.yaler.io:80 RELAY_DOMAIN
- ในเทอร์มินัลที่สอง บนคอมพิวเตอร์ไคลเอนต์ เข้าถึงอุปกรณ์ของคุณผ่าน YalerTunnel ในเครื่องด้วย ssh
$ ssh pi@localhost -p 10022 -o ServerAliveInterval=5
เสร็จแล้ว. ตอนนี้คุณควรมีสิทธิ์เข้าถึง SSH สำหรับ Raspberry Pi 2 ของคุณ
การแก้ไขปัญหา
หากไม่มีการเชื่อมต่อ
- ตรวจสอบให้แน่ใจว่าคุณใช้โดเมนรีเลย์ที่ถูกต้อง
- หากต้องการดูว่าบริการ YalerTunnel ทำงานบนอุปกรณ์ของคุณหรือไม่ ให้พิมพ์
$ ps aux | grep [y]aler
แค่นั้นแหละ. ขอบคุณที่อ่านจนจบ หากคุณมีคำถาม โปรดติดต่อ