รีเซ็ตการเชื่อมต่อเมื่อพยายามอุโมงค์ http / ถุงเท้าโดย multi-hop ssh


1

เครื่องที่เกี่ยวข้อง: (ลูกค้า) A - B - C (ออก)
A / B คือ cygwin ssh / sshd, C คือ linux

สิ่งที่ฉันต้องการ:

  1. http (s) และปริมาณการใช้ถุงเท้าถูกส่งผ่าน B, C
    ปลายทางคือIP ใด ๆดังนั้น -L เพียงอย่างเดียวไม่ทำงาน

  2. A - B, B - C จะต้องมีการเข้ารหัส (ดังนั้นฉันพยายามใช้ ssh)

สิ่งที่ฉันทำตั้งค่า:

  1. พร็อกซีเซิร์ฟเวอร์ (3proxy) ทำงานที่ C: http (s) ที่ 3998, socks5 ที่ 3999
    ฉันทดสอบพร็อกซีเซิร์ฟเวอร์ ทำงานได้ทั้ง 127.0.0.1 และ IP ภายนอก

  2. คำสั่ง ssh บน A: (ฉันต้องการส่งต่อโลคัล: 3998 ถึง C: 3998, ท้องถิ่น: 3999 ถึง C: 3999)
    ssh -At -L 3998: B: 6998 userB @ B ssh -At -L 6998: C: 3998 userC @C
    ssh -At -L 3999: B: 6999 userB @ B ssh -At -L 6999: C: 3999 userC @ C
    ฉันได้ทดสอบการลงชื่อเข้าใช้แบบ multi-hop: การทำงาน

  3. ใช้ 127.0.0.1:3998 เป็น http (s) proxy ใช้ 127.0.0.1:3999 เป็นพร็อกซีถุงเท้า

ปัญหา:
Firefox ไม่ทำงานกับ http หรือถุงเท้าอย่างใดอย่างหนึ่งบ่นว่าการเชื่อมต่อถูกรีเซ็ต
(cygwin) wget ไม่ทำงานกับ http

ข้อความแสดงข้อผิดพลาดเช่น "ช่อง 8: เปิดล้มเหลว: การเชื่อมต่อล้มเหลว: การเชื่อมต่อถูกปฏิเสธ" แสดงขึ้นบนคอนโซล ssh ของ C

รายละเอียดด้วย -vvv:

on A:
   $ export http_proxy=http://127.0.0.1:3998; wget www.bing.com
   --2014-04-13 08:54:14--  http://www.bing.com/
   Connecting to 127.0.0.1:3998... connected.
   Proxy request sent, awaiting response... Read error (Connection reset by peer) in        headers.
   Retrying.

on C:
   root@C:~# debug1: Connection to port 3998 forwarding to B port 6998 requested.
   debug2: fd 9 setting TCP_NODELAY
   debug3: fd 9 is O_NONBLOCK
   debug3: fd 9 is O_NONBLOCK
   debug1: channel 3: new [direct-tcpip]
   channel 3: open failed: connect failed: Connection refused
   debug2: channel 3: zombie
   debug2: channel 3: garbage collecting
   debug1: channel 3: free: direct-tcpip: listening port 3998 for B port 6998, connect
    from 127.0.0.1 port 65460 to 127.0.0.1 port 3998, nchannels 4
   debug3: channel 3: status: The following connections are open:
     #2 client-session (t4 r0 i0/0 o0/0 fd 6/7 cc -1)

ฉันยังพยายามส่งต่อใน C เพียงอย่างเดียว:

(one tty) ssh -vvv -L 127.0.0.1:1234:127.0.0.1:3998 root@127.0.0.1
(another tty) export http_proxy=http://127.0.0.1:3998; wget www.bing.com

มันใช้งานได้และฉันยังสับสนว่าทำไมมันไม่ทำงานในการตั้งค่าของฉัน

================================================== ===============================
ถ้าฉันใช้คำสั่งนี้แล้วมันใช้งานได้!

ssh -At -L 3998:127.0.0.1:6998 userB@B ssh -At -L 6998:127.0.0.1:3998 userC@C

แต่สิ่งเหล่านี้ใช้ไม่ได้

ssh -At -L 3998:ip_of_B:6998 userB@B ssh -At -L 6998:ip_of_C:3998 userC@C
ssh -At -L 3998:ip_of_B:6998 userB@B ssh -At -L 6998:127.0.0.1:3998 userC@C

มีคนช่วยอธิบายให้ฉันได้ไหม

ฉันไม่รู้ว่า openssh ใช้ -L อย่างไรเพื่อให้มันทำงานแปลก ๆ

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