การเชื่อมต่ออุปกรณ์ใน 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.