ฉันพยายามเข้าใจความแตกต่างระหว่าง ssh -L ถึง -D มีอะไรอีกนอกจากถุงเท้า -D เท่านั้นหรือไม่
ขอบคุณ!
ฉันพยายามเข้าใจความแตกต่างระหว่าง ssh -L ถึง -D มีอะไรอีกนอกจากถุงเท้า -D เท่านั้นหรือไม่
ขอบคุณ!
คำตอบ:
ssh -L
เปิดพอร์ตท้องถิ่น ทุกสิ่งที่คุณส่งไปยังพอร์ตนั้นจะถูกใส่ผ่านการเชื่อมต่อ ssh และออกจากเซิร์ฟเวอร์ หากคุณทำเช่นssh -L 4444:google.com:80
ถ้าเปิดhttp://localhost:4444
เบราว์เซอร์คุณจะเห็นหน้าเว็บของ google
ssh -D
เปิดพอร์ตท้องถิ่น -L
แต่ก็ไม่ได้มีปลายทางที่เฉพาะเจาะจงเช่นเดียวกับ มันแสร้งว่าเป็นพร็อกซี SOCKS แทน หากคุณเปิดเช่นssh -D 7777
เมื่อคุณบอกให้เบราว์เซอร์ของคุณใช้localhost:7777
เป็นพร็อกซี SOCKS ทุกอย่างที่เบราว์เซอร์ของคุณร้องขอจะต้องผ่านอุโมงค์ ssh ไปยังอินเทอร์เน็ตสาธารณะเหมือนกับว่าคุณกำลังเรียกดูจากเซิร์ฟเวอร์ ssh แทนจากคอมพิวเตอร์
The bind_address of “localhost” indicates that the listening port be bound for local use only, while an empty address or ‘*’ indicates that the port should be available from all interfaces.
ssh -L 4444:google.com:80
ไม่ทำงานสำหรับฉันมันต้องมีพารามิเตอร์อื่นสำหรับการเข้าสู่ระบบเช่น user@example.com
ใน SSH -D
ระบุการส่งต่อพอร์ตระดับแอปพลิเคชัน "แบบไดนามิก" ในเครื่อง
SSH -D [bind_address:]port
ระบุการส่งต่อพอร์ตระดับแอปพลิเคชัน "แบบไดนามิก" ในเครื่อง สิ่งนี้ทำงานได้โดยการจัดสรรซ็อกเก็ตเพื่อฟังพอร์ตในด้านโลคัลหรือเลือกผูกกับ bind_address ที่ระบุ เมื่อใดก็ตามที่มีการเชื่อมต่อกับพอร์ตนี้การเชื่อมต่อจะถูกส่งต่อผ่านช่องทางที่ปลอดภัยและจากนั้นจะใช้โปรโตคอลแอปพลิเคชันเพื่อกำหนดตำแหน่งที่จะเชื่อมต่อจากเครื่องระยะไกล ปัจจุบันรองรับโปรโตคอล SOCKS4 และ SOCKS5 และ ssh จะทำหน้าที่เป็นเซิร์ฟเวอร์ SOCKS เฉพาะ root เท่านั้นที่สามารถส่งต่อพอร์ตที่มีสิทธิพิเศษได้ การส่งต่อพอร์ตแบบไดนามิกสามารถระบุได้ในไฟล์กำหนดค่า
สามารถระบุที่อยู่ IPv6 ด้วยไวยากรณ์ทางเลือก: [bind_address /] พอร์ตหรือล้อมรอบที่อยู่ในวงเล็บเหลี่ยม
มีเพียง superuser เท่านั้นที่สามารถส่งต่อพอร์ตพิเศษ โดยค่าเริ่มต้นพอร์ตท้องถิ่นถูกผูกไว้ตามการตั้งค่า GatewayPorts อย่างไรก็ตาม bind_address อย่างชัดเจนอาจถูกใช้เพื่อผูกการเชื่อมต่อกับที่อยู่เฉพาะ bind_address ของ“ localhost” บ่งชี้ว่าพอร์ตฟังถูกผูกไว้สำหรับการใช้งานในท้องถิ่นเท่านั้นในขณะที่ที่อยู่ที่ว่างเปล่าหรือ '*' บ่งชี้ว่าพอร์ตควรจะใช้ได้จากทุกอินเตอร์เฟส
นอกจากนี้ssh -L
ระบุว่าพอร์ตที่กำหนดในโฮสต์ (ไคลเอนต์) ท้องถิ่นจะถูกส่งต่อไปยังโฮสต์ที่กำหนดและพอร์ตในด้านระยะไกล
SSH -L [bind_address:]port:host:hostport
ระบุว่าพอร์ตที่กำหนดไว้บนโลคัล (ไคลเอ็นต์) โฮสต์จะถูกส่งต่อไปยังโฮสต์และพอร์ตที่กำหนดบนด้านรีโมต สิ่งนี้ทำงานได้โดยการจัดสรรซ็อกเก็ตเพื่อฟังพอร์ตในด้านโลคัลหรือเลือกผูกกับ bind_address ที่ระบุ เมื่อใดก็ตามที่มีการเชื่อมต่อกับพอร์ตนี้การเชื่อมต่อจะถูกส่งต่อผ่านช่องทางที่ปลอดภัยและทำการเชื่อมต่อกับโฮสต์พอร์ตพอร์ตโฮสต์จากเครื่องระยะไกล การส่งต่อพอร์ตยังสามารถระบุได้ในไฟล์กำหนดค่า สามารถระบุที่อยู่ IPv6 ด้วยไวยากรณ์ทางเลือก: [bind_address /] พอร์ต / โฮสต์ / โฮสต์พอร์ตหรือโดยการใส่ที่อยู่ในวงเล็บเหลี่ยม
มีเพียง superuser เท่านั้นที่สามารถส่งต่อพอร์ตพิเศษ โดยค่าเริ่มต้นพอร์ตท้องถิ่นถูกผูกไว้ตามการตั้งค่า GatewayPorts อย่างไรก็ตาม bind_address อย่างชัดเจนอาจถูกใช้เพื่อผูกการเชื่อมต่อกับที่อยู่เฉพาะ bind_address ของ“ localhost” บ่งชี้ว่าพอร์ตฟังถูกผูกไว้สำหรับการใช้งานในท้องถิ่นเท่านั้นในขณะที่ที่อยู่ที่ว่างเปล่าหรือ '*' บ่งชี้ว่าพอร์ตควรจะใช้ได้จากทุกอินเตอร์เฟส