เครื่องที่เกี่ยวข้อง: (ลูกค้า) A - B - C (ออก)
A / B คือ cygwin ssh / sshd, C คือ linux
สิ่งที่ฉันต้องการ:
http (s) และปริมาณการใช้ถุงเท้าถูกส่งผ่าน B, C
ปลายทางคือIP ใด ๆดังนั้น -L เพียงอย่างเดียวไม่ทำงานA - B, B - C จะต้องมีการเข้ารหัส (ดังนั้นฉันพยายามใช้ ssh)
สิ่งที่ฉันทำตั้งค่า:
พร็อกซีเซิร์ฟเวอร์ (3proxy) ทำงานที่ C: http (s) ที่ 3998, socks5 ที่ 3999
ฉันทดสอบพร็อกซีเซิร์ฟเวอร์ ทำงานได้ทั้ง 127.0.0.1 และ IP ภายนอกคำสั่ง 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: การทำงานใช้ 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 อย่างไรเพื่อให้มันทำงานแปลก ๆ