การเชื่อมต่ออุปกรณ์ใน LAN ของฉันจากอินเทอร์เน็ต


18

ฉันมีอุปกรณ์ฝังตัวที่ฉันสามารถตั้งโปรแกรมผ่าน Ethernet IP เมื่อเชื่อมต่อกับเราเตอร์เดียวกันกับพีซีดังนี้:

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

เป็นไปได้หรือไม่ที่จะส่งทราฟฟิกทั้งหมดผ่านอินเทอร์เน็ตและยังสามารถตั้งโปรแกรมได้ หากต้องการทำให้ชัดเจนขึ้นมีลักษณะดังนี้:

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


6
"Ethernet IP" หรือไม่ นั่นไม่ใช่แค่ ... เครือข่ายที่เหมือน LAN ทั่วไปใช่ไหม
grawity

“ การเขียนโปรแกรมผ่านอีเธอร์เน็ต IP” - นั่นหมายความว่าอย่างไรมันจะช่วยได้ถ้าคุณสามารถระบุอุปกรณ์และ IDE ที่คุณกำลังพูดถึงได้ฉันถือว่า IDE เชื่อมต่อกับอุปกรณ์บนที่อยู่ IP ที่กำหนดและพอร์ต TCP เพื่อรับคำสั่ง?
slhck

@grawity ใช่มันเป็นเครือข่ายปกติเช่นเดียวกับที่ slhck ฉันใช้รหัสys IDE และอุปกรณ์ที่มีรหัสของ Runtime อยู่!
เครื่องยนต์

3
คำตอบที่ชัดเจนคือ IPv6 แน่นอน
Michael Hampton

1
@grawity Ethernet / IP เป็นโปรโตคอลระบบอัตโนมัติทางอุตสาหกรรมเพื่อไม่ให้สับสนกับ IP ผ่าน Ethernet :(
richardb

คำตอบ:


50

วิธีที่ง่าย (และไม่ปลอดภัย)

สิ่งที่คุณกำลังมองหาที่เรียกว่าการส่งต่อพอร์ต[ 1 ] [ 2 ]

ตัวอย่างเช่นให้เราสมมติสิ่งต่อไปนี้:

  • อุปกรณ์ที่ตั้งโปรแกรมได้ของคุณทำงานบนพอร์ต22และมี IP192.168.1.5

  • IP สาธารณะของคุณคือ 122.176.11.55

จากนั้นคุณสามารถไปสู่การตั้งค่าเราเตอร์ของคุณและส่งต่อพอร์ต WAN (สำหรับเช่น8022) 192.168.1.5:22เพื่อ

ตอนนี้คุณสามารถเข้าถึงอุปกรณ์จากระยะไกลได้จากทุกที่ผ่านทางอินเทอร์เน็ตโดยเข้าถึง122.176.11.55:8022แทน192.168.1.5:22IDE ของคุณ

โปรดจำไว้ว่าถ้าคุณมี IP แบบคง IP สาธารณะของคุณสามารถเปลี่ยนแปลงได้ตลอดเวลาซึ่งในกรณีนี้คุณควรตรวจสอบการให้บริการแบบไดนามิกของ DNS

หมายเหตุ : หากอุปกรณ์ของคุณมีวิธีการรับรองความถูกต้องบางคนที่มีเจตนาประสงค์ร้ายจะพบการเข้าถึงผ่านทางเว็บที่เปิดอยู่ ดูด้านล่างสำหรับทางเลือกที่ปลอดภัย

วิธีที่ปลอดภัย (และไม่ซับซ้อนมากขึ้นโดยสุจริต)

ออกจากเครื่องคอมพิวเตอร์ (หรือปี่ราสเบอร์รี่หรือคล้ายกัน) ที่เชื่อมต่อกับเครือข่ายของคุณและการเข้าถึงที่ระยะไกลแทนผ่านที่ปลอดภัยบางอย่างเช่น SSH แล้วโปรแกรมอุปกรณ์ของคุณผ่านมันผ่าน LAN
สิ่งนี้ยังมีข้อได้เปรียบเพิ่มเติมในการทำงานแม้ว่าอุปกรณ์ของคุณจะไม่ใช้ TCP หรือ UDP :)

น่าเบื่อนิดหน่อยใช่ แต่ปลอดภัย


10
นอกจากนี้ยังช่วยในการจดบันทึกว่าถ้า OP ตั้งค่าการส่งต่อแบบเปิดเพื่อทำสิ่งนี้ทุกคนในโลกทั้งโลกสามารถเปลี่ยนรหัสได้ เว้นแต่จะมีรูปแบบการตรวจสอบความถูกต้องบางส่วนเช่นกันไม่ช้าก็เร็วผู้รายงานพอร์ตจะค้นหาพอร์ตและแฮ็กเกอร์จะพยายามเจาะเข้านั่นคือการรับประกัน
LPChip

@ LPChip แน่นอน! ฉันควรจะพูดถึงเรื่องนั้นไม่ดี
rahuldottech สนับสนุนโมนิกา

นอกจากนี้ที่ดี :) ฉันจะให้ +1 กับคุณ แต่ฉันให้ earler แล้วเพราะถึงแม้จะไม่มีคำเตือนก็เป็นคำตอบที่ดีอยู่แล้ว :)
LPChip

2
@FreeMan ในภายหลังอาจใช้เวลาหลายวันก่อนที่ bot bot จะมาพร้อมขึ้นอยู่กับพอร์ตที่คุณใช้ แต่ไม่ช้าก็เร็วในแง่ที่ว่าถ้าคุณโชคร้าย
LPChip

1
@ IsmaelMiguel แน่นอนคุณควรทำเรื่องความปลอดภัยขั้นพื้นฐานให้ชัดเจน ฉันไม่มีทางรู้ว่าสิ่งที่พวกเขาอยู่ในกรณีเฉพาะนี้
rahuldottech สนับสนุน Monica

11

คำตอบที่ถูกต้องข้อเดียวคือ "VPN"

เพียงแค่ใช้ IPv6 จะ "ทำงาน" (สมมติว่าเราเตอร์ไม่ได้กำหนดค่าไฟร์วอลล์จากอุปกรณ์และ ISP, อุปกรณ์และแล็ปท็อปรองรับ IPv6 ทั้งหมด) แต่มันเป็นความคิดที่แย่มากสำหรับการส่งต่อพอร์ตด้วยเหตุผลเดียวกัน

นอกเหนือจากการส่งเสริมจากการโฆษณาชวนเชื่อ IPv6 ที่รู้จักกันดีคุณไม่ได้ทำ เคยต้องการใด ๆ ของอุปกรณ์บนระบบ LAN ของคุณเป็นที่ไม่ซ้ำกันสามารถระบุตัวตนหรือเข้าถึงได้แม้จะมาจากอินเทอร์เน็ต ไม่นั่นไม่ใช่สิ่งที่ดี

การส่งต่อพอร์ตจะ "ทำงาน" กับ IPv4 แบบเก่าที่ดี แต่มันทำให้อุปกรณ์นี้เข้าถึงได้ไม่เฉพาะคุณ แต่สำหรับทุกคน ไม่มีใครรู้ดังนั้นจึงไม่มีปัญหาใช่มั้ย ในหลักการข้างต้นเป็นจริงสำหรับ VPN เช่นกัน แต่ก็ดีมากเท่าที่คุณจะทำได้หากคุณต้องการเข้าถึง สิ่งเดียวที่ปลอดภัยอย่างแท้จริงคือไม่มีการเชื่อมต่ออินเทอร์เน็ตเลยซึ่งไม่ใช่ตัวเลือกที่ใช้งานได้จริงด้วยเหตุผลที่ชัดเจน สิ่งที่ปลอดภัยที่สุดในการ "ไม่ใช้อินเทอร์เน็ต" คือ VPN ตรงหนึ่งพอร์ตบนอุปกรณ์หนึ่งตัว (ขึ้นอยู่กับพอร์ตมากถึงสามพอร์ต) และเปิดเผย VPN
มีเครื่องสแกนพอร์ตอัตโนมัติที่ทำงานตลอด 24 ชั่วโมงทุกวันและทำการสแกนที่อยู่ / พอร์ตแบบสุ่มโดยหวังว่าทุกสิ่งอาจตอบได้ดังนั้นโดยทั่วไปแล้วการมีอุปกรณ์ใด ๆที่จะตอบคำขอภายนอกออนไลน์นั้นไม่เหมาะสม หากอุปกรณ์มีการตั้งโปรแกรมเองอย่างมีความสุขตามสิ่งที่เกิดขึ้นผ่านทางเครือข่ายนั่นเป็นสูตรสำหรับการทำลาย
และไม่มีสิ่งอื่นใดส่งต่อพอร์ตไปยังอินเทอร์เน็ต

VPN ช่วยให้คุณ - แต่ไม่มีใครอื่น - เข้าถึงอุปกรณ์บน LAN ของคุณผ่านอินเทอร์เน็ตเช่นถ้าคุณอยู่บน LAN เดียวกัน (แม้ว่าจะช้าลงเล็กน้อย) มันป้องกันการเข้าถึงที่ไม่ได้รับอนุญาตให้ความลับและความถูกต้องของข้อมูล

เราเตอร์ที่ไม่มีอึทุกคนสนับสนุน VPN อย่างน้อยหนึ่งรสชาติออกจากกล่อง โชคไม่ดีขึ้นอยู่กับรุ่นของเราเตอร์ที่คุณใช้ซึ่งอาจเป็นรสชาติที่ไม่ดีของ VPN หรืออาจมีการจัดทำเอกสารไม่ดีเกี่ยวกับวิธีกำหนดค่าคอมพิวเตอร์ระยะไกล ถึงแม้จะมีความยุ่งยากที่เป็นไปได้ในการหาวิธีกำหนดค่า - ถ้าคุณไม่มีอะไรที่ดีกว่านั่นคือตัวเลือกที่ดีที่สุด!
กล่อง NAS ทั่วไปส่วนใหญ่สนับสนุนวิธีการ VPN สองหรือสามวิธีและทุกบัตรเครดิตขนาด 3 วัตต์ที่มีบัตรเครดิตขนาด 20 วัตต์สามารถเรียกใช้เซิร์ฟเวอร์ VPN ได้โดยไม่มีปัญหา แม้แต่โทรศัพท์มือถือสมัยใหม่หลายรุ่นก็สนับสนุน VPN โดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติมดังนั้นคุณสามารถเข้าถึงเครือข่ายในบ้านของคุณเมื่อคุณใช้อินเทอร์เน็ตบนมือถือของโทรศัพท์ของคุณ (ผ่านฮอตสปอตส่วนตัวหรือแม้กระทั่ง)

ตัวอย่างเช่น L2TP / IPSec อาจไม่ใช่ตัวเลือกที่ยอดเยี่ยมที่สุด แต่ก็ดี 99% และใช้เวลาหนึ่งนาทีในการติดตั้งบน Disk Station ของฉันและบนโทรศัพท์ Samsung ของฉัน อีกนาทีถ้าแล็ปท็อป Windows ของฉันใช้เช่นกัน (เป็นอิสระจากโทรศัพท์) ไม่จำเป็นต้องใช้ซอฟต์แวร์เพิ่มเติม
OpenVPN ใช้เวลาประมาณ 3-5 นาทีในการติดตั้งเพราะคุณจะต้องดาวน์โหลดติดตั้งซอฟต์แวร์ไคลเอนต์บนแล็ปท็อป แต่ในภาพใหญ่ขึ้นการตั้งค่า 5 นาทีนับเป็น "ศูนย์" เมื่อเทียบกับการไม่ปลอดภัยอย่างสมบูรณ์


5
การซื้อบริการของบุคคลที่สามไม่ใช่คำตอบเดียว คุณสามารถได้รับผลกระทบเดียวกันกับ SSH หรือ RDP
jpaugh

4
และทั้งสองที่ถูกต้องเพียงคำตอบที่ VPN หรือ SSH อุโมงค์ ... บาง VPN โปรโตคอลไม่ได้ดีมากทั้งในการป้องกัน MITM ...
trognanders

5
SSH นั้นถูกกว่าสะดวกกว่าและติดตั้งง่ายกว่าและอาจเป็นตัวเลือกที่ดีกว่าในสถานการณ์นี้
rahuldottech รองรับ Monica

@jpaugh: VPN ไม่เกี่ยวข้องกับบริการของบุคคลที่สาม ในขณะที่ฉันพร้อมที่จะยอมรับว่า SSH สามารถทำงานได้ แต่ไม่มีที่ไหนใกล้เคียงกับ VPN เมื่อมันมาถึงความง่ายในการติดตั้งไม่มีการติดตั้งแบบพิเศษไม่ต้องห่วงความพร้อมใช้งานสากลและสุดท้าย แต่ไม่ท้ายสุดการใช้งานที่ราบรื่น . ตอนนี้เกี่ยวกับ RDP ... คุณล้อเล่นใช่ไหม? ไม่เพียง แต่จะเป็นการใช้งานที่เก่าแก่เท่านั้นซอฟต์แวร์ที่มีการใช้ประโยชน์มากที่สุดในโลก (หรืออย่างน้อยที่สุดใน 5 อันดับแรก) แต่ยังมีโปรโตคอลที่ไม่ปลอดภัยโดยเนื้อแท้โดยใช้ ciphers ที่ใช้งานได้ ถูกแทนที่เมื่อสิบปีก่อน
Damon

4
-1 เพียงสำหรับ "หนึ่งเดียวเท่านั้น" ในชื่อ SSH ที่มีการส่งต่อพอร์ตยังใช้ได้อย่างสมบูรณ์และอาจปลอดภัยกว่าเนื่องจากคุณไม่จำเป็นต้องให้การเข้าถึงระยะไกลไปยังเครือข่ายทั้งหมดของคุณเพียงแค่หนึ่งพอร์ตของอุปกรณ์เดียวและเป็นไปได้มากที่สุด มันง่ายที่จะกำหนดค่าและคุณไม่ต้องพึ่งพาการใช้งานซอฟต์แวร์แบบสุ่มของเราเตอร์ในคุณสมบัติที่ไม่ค่อยได้ใช้
Bill K

2

โฮสต์ VPN ทั้งในอุปกรณ์เราเตอร์ / เกตเวย์รักษาความปลอดภัยหรือกล่องอื่นที่มีพอร์ตส่งต่อไปยังกล่องนั้น เมื่อใดก็ตามที่คุณต้องการทำงานจากระยะไกลให้เชื่อมต่อกับ VPN และคุณจะเห็นอุปกรณ์ฝังตัวราวกับอยู่ในเครือข่ายท้องถิ่น มันอาจจะเป็นความคิดที่ดีที่จะวางอุปกรณ์ฝังตัวในเครือข่ายย่อยที่แยกการช่วยเหลือป้องกันการโจมตีบนเครือข่ายหลักของคุณถ้า VPN หรืออุปกรณ์ฝังตัวที่ถูกบุกรุก


1

ทำให้ Windows PC ที่ไม่มี IDE ลงใน Linux PC ในการกำหนดค่าความปลอดภัยที่สมเหตุสมผลด้วยการรัน sshd พอร์ตส่งต่อจากเราเตอร์ของคุณไปยังพอร์ต SSH บนเครื่อง Linux ใช้อุโมงค์ SSH เพื่อเชื่อมต่อกับอุปกรณ์ฝังตัว IP จากนั้นเมื่อเขียนโปรแกรมบนเครื่องระยะไกลของคุณด้วย IDE คุณจะเชื่อมต่อกับ localhost แทน LAN IP

การฟังอินเทอร์เน็ตด้วยบริการที่ชุบแข็งอย่าง SSH นั้นมีความปลอดภัยพอสมควร การฟังบนอินเทอร์เน็ตโดยตรงด้วยการพัฒนาอะไรก็ตามเป็นความคิดที่ไม่ดี SSH เป็นผู้รักษาประตู หากคุณตรวจสอบความถูกต้องของรหัสโฮสต์มันจะป้องกัน MITM อย่างแน่นอน มันใช้การเข้ารหัสที่ดี การตั้งค่าทันเนลไม่เกี่ยวข้องกับการเราต์หรือบริดจ์ แต่ดูเหมือนว่าคุณกำลังเชื่อมต่อโดยตรงจากเครื่อง SSHD นี่เป็นวิธีที่ง่ายกว่ามากในการติดตั้งอย่างถูกต้อง


คุณสามารถ ... เพียงแค่เรียกใช้เซิร์ฟเวอร์ SSH บน Windows คุณไม่จำเป็นต้องใช้ Linux ที่นี่
rahuldottech สนับสนุน Monica

"จากนั้นเมื่อตั้งโปรแกรมบนเครื่องระยะไกลของคุณด้วย IDE คุณจะเชื่อมต่อกับ localhost แทน LAN IP" บิตนี้ไม่สมเหตุสมผลสำหรับฉันทำอย่างละเอียด?
rahuldottech สนับสนุน Monica

@Hululdottech การส่งต่อพอร์ตของ SSH นั้นทำงานได้ที่ระดับ TCP บนเซิร์ฟเวอร์ sshd จะเปิดการเชื่อมต่อกับทรัพยากรบน LAN ท้องถิ่นและส่งต่อเนื้อหาของซ็อกเก็ตนั้นผ่าน SSH บนเครื่องรีโมตไคลเอ็นต์ ssh ฟังพอร์ต localhost เมื่อคุณเชื่อมต่อกับ localhost บนพอร์ตนั้นเป็นไคลเอ็นต์ SSH และเพียงเชื่อมต่อการเชื่อมต่อ tcp เข้าด้วยกัน ค่อนข้างแปลก แต่หลากหลายจริงๆเพราะไม่มีการกำหนดเส้นทาง IP!
trognanders

-1

ฉันเพิ่งเจอทางออกที่ดีกว่าสำหรับการเข้าถึงระยะไกลส่วนบุคคลเท่านั้น ก่อนอื่นเรามาพูดถึงขอบเขตของปัญหา มีสามประเด็นที่เข้ามาเล่น: nat, ที่อยู่ ip และความปลอดภัย ตัวอย่างเช่นในกรณีทั่วไปที่คุณต้องการเรียกใช้ ssh หรือเว็บเซิร์ฟเวอร์บนเครือข่ายในบ้านวิธีการดั้งเดิมคือการส่งต่อพอร์ตและไดนามิก DNS และแนวทางปฏิบัติที่ดีที่สุดสำหรับการรักษาความปลอดภัยมาตรฐานอุตสาหกรรม สิ่งนี้มีข้อเสียสำหรับกรณีของคุณเนื่องจากอุปกรณ์ของคุณไม่มีความปลอดภัยมาตรฐาน สิ่งนี้สามารถบรรเทาได้โดยใช้การส่งต่อพอร์ต ssh ซึ่งต่างจากการเปิดอุปกรณ์ของคุณไปยังอินเทอร์เน็ต

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


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