Tunnel yum traffic ผ่านเซิร์ฟเวอร์อื่นผ่าน ssh


10

ฉันกำลังใช้เดสก์ท็อป Fedora อยู่ด้านหลังพร็อกซีขององค์กรที่บล็อกyumการรับส่งข้อมูล (โดยเฉพาะ*.gzและ*.bz2) ฉันเข้าถึงเครื่อง RedHat แยกต่างหากผ่านทาง ssh ซึ่งสามารถดาวน์โหลดอะไรก็ได้ที่มันชอบ

เมื่อฉันทำyum updateและคำสั่ง yum อื่น ๆ : เป็นไปได้ไหมที่กำหนดเส้นทางการรับส่งข้อมูลไปยังเครื่อง RedHat เพื่อทำการดาวน์โหลดสำหรับฉัน ฉันไม่สามารถเข้าถึงรูทบนเครื่อง RedHat แต่ฉันสามารถเข้าสู่ระบบและใช้ wget เพื่อดาวน์โหลดไฟล์ ถ้าเป็นเช่นนั้นได้อย่างไร

คำตอบ:


21

โซลูชันของฉันคล้ายกับ @ slm แต่ฉันใช้ SOCKS แทนเพราะง่ายกว่าและไม่จำเป็นต้องติดตั้งพรอกซีบนเซิร์ฟเวอร์หรือไคลเอนต์

เรียกใช้คำสั่งทั้งหมดบนคอมพิวเตอร์ด้วย acccess ที่ จำกัด

ในการyum.confตั้งค่า proxy ดังนี้

proxy=socks5h://localhost:1080

จากประเภทอาคาร

ssh -D 1080 YOUR_USER@YOUR_SERVER_WITH_FULL_WEB_ACCESS

กด Enter และพิมพ์รหัสผ่านของคุณ

ตอนนี้ในเทอร์มินัลแยกต่างหาก (ไม่ใช่ ssh one) ชนิด

yum update

1
ฉันได้ลองใช้การตั้งค่าพร็อกซี socks5h ใน yum.conf แต่ yum บ่นว่าไม่ใช่ http, https หรือ ftp (ใช้ Centos6)
gnac

โซลูชันของฉันทำงานกับ Fedora 20 และ 21 Cent และ Fedora มีการแจกแจงแบบเดียวกันดังนั้นจึงแปลกเล็กน้อยที่มันไม่ทำงาน
jax

สวัสดี, คำสั่ง ssh ที่คุณกล่าวถึงควรรันบนคอมพิวเตอร์ที่มีการ จำกัด การเข้าถึงใช่ไหม? ถ้าใช่ฉันสงสัยว่าไฟร์วอลล์จะไม่บล็อกและทำให้เกิดข้อผิดพลาดเช่น "ssh: เชื่อมต่อกับโฮสต์ YOUR_SERVER_WITH_FULL_WEB_ACCESS พอร์ต 22: ไม่มีเส้นทางสู่โฮสต์" YOUR_SERVER_WITH_FULL_WEB_ACCESS เข้าถึงได้จากเครื่องที่ถูก จำกัด หรือไม่
Hei

@ ใช่ใช่ "YOUR_SERVER_WITH_FULL_WEB_ACCESS" จะต้องสามารถเข้าถึงได้จากเครื่องของคุณ ในกรณีของฉัน - อินเทอร์เน็ตของฉันถูก จำกัด ในพื้นที่
jax

4

คุณควรสามารถรับส่งข้อมูลของ YUM ผ่านการเชื่อมต่อ SSH ดังนี้:

  1. เพิ่ม/etc/yum.confในเซิร์ฟเวอร์ที่ได้รับการป้องกัน:

    proxy=http://127.0.0.1:8080
    
  2. จากเซิร์ฟเวอร์ที่มีการเข้าถึง ssh ขาเข้า / ขาออกปกติ:

    $ ssh -R 8080:ssh.server:8080 user@protected.server
    
  3. บนเซิร์ฟเวอร์ที่คุณต้องการเรียกใช้คำสั่ง YUM:

    $ yum update
    

อ้างอิง


ฉันต้องการคำอธิบายบางอย่าง (ฉันจะอ้างถึงเดสก์ท็อป Fedora ของฉันเป็นdesktopและเซิร์ฟเวอร์ RedHat ที่มีการเข้าถึงการดาวน์โหลดแบบเต็มserver) ดังนั้นผมคิดว่าผมจะต้องทำproxy=http://127.0.0.1:8080ของฉันdesktopเช่นนี้เป็นคอมพิวเตอร์ที่ต้องการการปรับปรุง yum และssh -R 8080:ssh.server:8080 user@protected.serverฉันdesktopยัง การserverกำหนดค่ามาที่นี่หรือไม่มี?
jax

2
คุณกำลังขาดหายไปขั้นตอนของการทำงานพร็อกซี HTTP ที่ฟังบนพอร์ต 8080 ssh.serverบน
Gilles 'หยุดชั่วร้าย'

@Gilles ฉันต้องการพร็อกซี่ในของฉันdesktopหรือserver? หากไม่มีเซิร์ฟเวอร์ฉันไม่สามารถติดตั้งได้เพราะฉันไม่มีสิทธิ์เข้าถึงราก
jax

@jax คุณต้องเรียกใช้พรอกซีบนเครื่องด้วยการเชื่อมต่ออินเทอร์เน็ต คุณไม่จำเป็นต้องเรียกใช้มันในฐานะรูท Tinyproxy ติดตั้งง่าย (มีหลายทางเลือก)
Gilles 'หยุดชั่วร้าย'

@Gilles ฉันพบที่อื่นที่คุณสามารถสร้างถุงเท้าพร็อกซีซึ่งเห็นได้ชัดว่ากำหนดเส้นทางการรับส่งข้อมูล TCP โดยอัตโนมัติ ssh -D 8888 user@serverบนเดสก์ท็อปจากนั้นคุณต้องแจ้งให้ yum ใช้เซิร์ฟเวอร์proxy=socks5h://localhost:8888นี้ ดังนั้นคุณจะเห็นปัญหาใด ๆ กับสิ่งนี้หรือไม่? มันหมายความว่าฉันไม่จำเป็นต้องติดตั้งอะไรบนเครื่องเซิร์ฟเวอร์ซึ่งเหมาะในกรณีของฉันเพราะเป็นเครื่องที่ใช้ร่วมกัน ฉันจะไม่สามารถทดสอบได้จนถึงวันจันทร์
jax
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.