ssh tunnel - bind: ไม่สามารถกำหนดที่อยู่ที่ร้องขอได้


26

กำลังพยายามสร้าง ssh tunnel (-D) ssh - กล่อง Linux ไปยังกล่อง Linux (ทั้ง centos):

sshd ทำงานบนรีโมตฝั่งโอเค

จากเครื่องท้องถิ่นเราทำได้ / ดูสิ่งนี้:

ssh -D 1080 user@8.8.8.8.
user@8.8.8.8's password: 
bind: Cannot assign requested address

(ที่ 8.8.8.8 เป็น IP ของเซิร์ฟเวอร์ของฉันจริง ๆ และ 'ผู้ใช้' เป็นชื่อผู้ใช้จริงของฉัน)

ฉันลงชื่อเข้าใช้ทางไกลในหน้าต่างเทอร์มินัลนี้ ฉันสามารถตรวจสอบว่าพอร์ตท้องถิ่นไม่ได้ใช้งานก่อนคำสั่งนี้และจากนั้นใช้โดยกระบวนการ ssh หลังจากคำสั่งผ่าน:

netstat -lnp | grep 1080

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

ในด้านระยะไกลฉันมี "PermitTunnel ใช่" ใน sshd_config ของฉัน (แม้ว่า 'ใช่' ควรเป็นค่าเริ่มต้นอยู่แล้ว)

ความคิดหรือเบาะแส?

นี่คือ debug-output ที่เกี่ยวข้อง

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *

....

debug1: Authentication succeeded (password).
debug1: Local connections to LOCALHOST:1080 forwarded to remote address socks:0
debug1: Local forwarding listening on 127.0.0.1 port 1080.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on ::1 port 1080.
bind: Cannot assign requested address
debug1: channel 1: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.utf8

เงื่อนงำอื่น ๆ : ถ้าฉันเรียกใช้ Virtual Box บนไคลเอนต์ที่ใช้ Windows ให้เปิดอุโมงค์ที่มีผงสำหรับอุดรูในกล่องนั้นอุโมงค์นั้นไปยังเซิร์ฟเวอร์ระยะไกลเดียวกันทำงานได้

Stranger Still "ถ้าฉันใช้ Putty (สำหรับ linux) ทำงานโดยตรงบน Linux Client มันก็ไม่ทำงานแม้ว่าการตั้งค่าจะซ้ำกับการตั้งค่า putty ที่แน่นอนซึ่งทำงานใน Putty ที่ทำงานบน Windows ใน Virtual Box บนกล่องเดียวกัน เครื่องไคลเอนต์มีอะไรบางอย่างที่น่ากลัว ... ยังคงพยายามทดลองเพื่อหาว่ามันคืออะไร


ถ้าคุณลองและบังคับให้ใช้ ipv4 (เช่นเดียวกับการทดสอบการแก้ไขปัญหาเบื้องต้น) เช่น ssh -4 -D 1080 user@8.8.8.8
Fred Clausen

คุณลองหมายเลขพอร์ตที่สูงกว่านี้ได้ไหม 4000?
jwbensley

ขอบคุณสำหรับอินพุต ฉันได้มันมาทำงานกับ: ssh -4 -D 8081 user@8.8.8.8
JosephK

คำตอบ:


41

ปิดลูปที่นี่ คำตอบในกรณีนี้คือบังคับให้ไคลเอ็นต์ ssh ใช้ ipv4 เช่น

ssh -4 -D 8081 user@8.8.8.8

ดังนั้นฉันจะคิดยกเว้นว่าฉันสามารถเลือก 'force ip4' ใน putty (ทำงานบน Linux) โดยไม่ประสบความสำเร็จ นอกจากนี้ IPV6 ถูกปิดการใช้งานในเครื่องนี้ดังนั้นในทางทฤษฎีจึงไม่ควรเล่น ผลลัพธ์ที่ไม่สอดคล้องกันอย่างสมบูรณ์ฉันยังคงลองใช้วิธีเรียงสับเปลี่ยนที่แตกต่างกันของสิ่งนี้ทำให้ฉันเกาหัวของฉัน ไม่ว่าในกรณีใดคำตอบของคุณช่วยให้ฉันทำงานได้และอาจมีบางสิ่งที่แปลกเกี่ยวกับ CentOS หรือเคอร์เนลเคอร์เนลรุ่นนี้
JosephK

ช็อตยาว แต่อาจปิดความละเอียด DNS SSH บนเซิร์ฟเวอร์ "UseDNS no" ใน sshd_config อาจแก้ไขได้ บางทีการแก้ปัญหา DNS แปลก ๆ บางอย่างกำลังเกิดขึ้นบนเซิร์ฟเวอร์ซึ่งก่อให้เกิดปัญหาการเชื่อมโยง
Fred Clausen

1
ขอบคุณมาก -4 เป็นวิธีแก้ปัญหาสำหรับ Ubuntu 11.04
ซานเดอร์

ฉันเริ่มมีปัญหานี้หลังจากอัปเกรดเป็น Ubuntu 13.04 และนี่คือการแก้ไข
Nick

1
แทนที่จะต้องระบุ -4 ทุกครั้งสมมติว่าการเชื่อมต่อ ssh ทั้งหมดจะต้องทำด้วย IPv4 เท่านั้นเพิ่ม "AddressFamily inet" ลงในไฟล์ ssh_config ของคุณ - ต่อผู้ใช้ใน $ {HOME} /. ssh / ssh_config หรือระบบที่กว้างสำหรับ ผู้ใช้ทั้งหมดใน / etc / ssh / ssh_config
JG Miller
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.