เป้าหมาย: ssh raspi
ควรทำงานภายใน LAN และบนอินเทอร์เน็ตสาธารณะ
ในการทำเช่นนี้คุณต้องตรวจสอบให้แน่ใจว่าชื่อนั้นได้รับการแก้ไขเป็น IP ภายในบน LAN และ IP สาธารณะจากภายนอก
raspi.yourdomain.com
ครั้งแรกที่คุณควรจะได้รับชื่อโดเมนเช่น ตรวจสอบhttp://freedns.afraid.org/สำหรับโดเมนฟรีสำหรับใช้งานอดิเรก ชี้โดเมนด้วย IP สาธารณะของคุณ
สำหรับ LAN ฉันแนะนำให้ใช้ DNSMasq เฟิร์มแวร์ DD-WRT ที่เปิดอยู่นั้นรวมเข้ากับ DNSMasq อย่างแน่นหนาเพื่อใช้กับ DHCP และ DNS คุณต้องบอกโดเมนการค้นหาของคุณ ("yourdomain.com") และจะกำหนดชื่อ DNS โดยอัตโนมัติตามชื่อที่ลูกค้าร้องขอ เพื่อให้งานนี้ raspi ของ / etc / raspi
ชื่อโฮสต์ควรอ่าน
เมื่อตั้งค่านี้แล้ว raspi.yourdomain.com ควรแก้ไขเป็น IP ในระบบ LAN ของคุณ (เพียงตรวจสอบให้แน่ใจว่าคุณใช้ DNS ท้องถิ่นในทุกเครื่องของคุณ)
ตอนนี้คุณอาจไม่ต้องการเปิดเผยพอร์ต 22 สู่อินเทอร์เน็ตสาธารณะเพราะคุณจะได้รับการจราจรที่น่าเบื่อมากมาย ดังนั้นคุณอาจให้เราเตอร์ของคุณเปิดเผย raspi: 22 เหมือนกับพอร์ตอื่น ๆ พูด 1234 หากต้องการใช้พอร์ตเดียวกันบนเครือข่ายสาธารณะและภายในคุณสามารถเพิ่มกฎการเปลี่ยนเส้นทางพอร์ตไปยัง raspi บน Linux:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1234 -j REDIRECT --to-port 22
sudo sh -c 'iptables-save > /etc/iptables/iptables.rules'
(เปลี่ยน eth0 เป็นชื่อของอินเทอร์เฟซเครือข่ายของคุณตามที่แสดงโดยip link
หรือifconfig
และ 1234 เป็นพอร์ตสาธารณะของคุณ)
ตอนนี้คุณสามารถทำได้ssh -p 1234 raspi.yourdomain.com
จากทั้งสาธารณะและ LAN
คุณสามารถเพิ่มรายการใน ~ / .ssh / config บนเครื่องไคลเอนต์ของคุณเพื่อย่อให้เหลือเพียงssh raspi
, ดังที่ @DopeGhoti พูดถึง
หากคุณต้องการแสดงพอร์ต SSH ของเครื่องเพิ่มเติมใน IP สาธารณะเดียวกันเพียงทำซ้ำกระบวนการด้วยชื่อ DNS อื่นและพอร์ตสาธารณะ ไชโย!