วิธีการใช้ถุงเท้าพร็อกซี่สำหรับคำสั่งใน Terminal เช่น youtube-dl


37

ฉันเชื่อมต่อกับเซิร์ฟเวอร์ ssh ระยะไกลโดยใช้คำสั่งนี้:

ssh -D 12345 bob@myserver.com

สิ่งนี้สร้างพร็อกซีถุงเท้าที่ฉันสามารถใช้กับ Firefox เพื่อเลี่ยงการเซ็นเซอร์ในประเทศของฉัน อย่างไรก็ตามฉันไม่สามารถใช้ประโยชน์จากมันได้ในบรรทัดคำสั่ง

สมมติว่าประเทศของฉันบล็อกการเข้าถึง youtube ฉันจะใช้การเชื่อมต่อ ssh เพื่อเรียกใช้คำสั่งเช่น:

youtube-dl "youtube.com/watch?v=3XjwiV-6_CA"

โดยไม่ถูกบล็อคจากรัฐบาล? ฉันจะตั้งค่าพร็อกซีถุงเท้าสำหรับคำสั่งเทอร์มินัลทั้งหมดได้อย่างไร


1
ฉันพบวิธีแก้ปัญหาชั่วคราว ฉันใช้ tsocks เมื่อติดตั้งแล้วเมื่อมีการสร้างการเชื่อมต่อ ssh ฉันจะเปิดแอปพลิเคชันที่ฉันต้องการด้วย tsocks ดังต่อไปนี้: tsocks gnome-terminal
user1098135

1
tsocks youtube-dl ...- tsocks เป็นแอปพลิเคชันที่ชาญฉลาดซึ่งมีอยู่ทั่วไปในที่เก็บข้อมูลซึ่งใช้LD_PRELOADในการบังคับให้แอปพลิเคชันกำหนดเส้นทางการรับส่งข้อมูลผ่านการเชื่อมต่อ SOCKS ที่กำหนด (ระบุว่าอยู่ใน~/.tsocks.conf)
Zaz

คำตอบ:


17

Youtube-dl ไม่รองรับพร็อกซี SOCKS มีคำขอคุณลักษณะพร้อมลิงก์ไปยังข้อเสนอการทำงานสองสามข้อ

Youtube-dl รองรับ HTTP พร็อกซี่ออกจากกล่อง myserver.comที่จะได้รับประโยชน์จากการสนับสนุนนี้คุณจะต้องเรียกใช้พร็อกซี่บน สวยมากพร็อกซี่ที่มีน้ำหนักเบาใด ๆ ที่จะทำเช่นtinyproxy พร็อกซีต้องการฟังการเชื่อมต่อท้องถิ่น ( Listen 127.0.0.1ในtinyproxy.conf) เท่านั้น หากพร็อกซี HTTP กำลังฟังพอร์ต 8035 ( Port 8035) ให้เรียกใช้คำสั่ง ssh ต่อไปนี้:

ssh -L 8035:localhost:8035 bob@myserver.com

และตั้งค่าตัวแปรสภาพแวดล้อมhttp_proxyและhttps_proxy:

export http_proxy=http://localhost:8035/ https_proxy=http://localhost:8035/
youtube-dl youtube.com/watch?V=3XjwiV-6_CA

หากพวกเขากำลังจะใช้ SSH แล้วทำไมพวกเขาต้องการ Tinyproxy หรือกลับกัน? ฉันใช้อุโมงค์ SSH และใช้งานได้ดี
Umair A.

@Neutralizer SSH ถ่ายทอดเฉพาะจากเครื่องท้องถิ่นไปยังเครื่องพร็อกซี่ มีบางอย่างบนเครื่องพร็อกซีที่ต้องถอดรหัสคำขอ HTTP และหาที่อยู่ IP ของเครื่องเซิร์ฟเวอร์ หากไคลเอนต์รองรับ SOCKS แล้ว SSH สามารถทำงานได้ แต่ youtube-dl ไม่รองรับ SOCKS หากคุณใช้พร็อกซีสำหรับเซิร์ฟเวอร์ที่ระบุคุณอาจใช้ SSH เพียงอย่างเดียวและบอกให้ส่งต่อไปยังเซิร์ฟเวอร์นั้นโดยตรง แต่จะใช้งานได้ก็ต่อเมื่อคำขอทั้งหมดจำเป็นต้องส่งต่อไปยังที่อยู่ IP และพอร์ตเดียวกัน
Gilles 'SO- หยุดความชั่วร้าย'

สำหรับการดีบั๊กมันเป็นการดีที่จะรันคำสั่ง ssh ด้วย-vและข้ามเซสชั่นแบบโต้ตอบที่หนึ่งยังสามารถเพิ่ม-Nได้
fikovnik


48
ssh -D 8080 name@myserver.com
export http_proxy=socks5://127.0.0.1:8080 https_proxy=socks5://127.0.0.1:8080
youtube-dl "youtube.com/watch?V=3XjwiV-6_CA"

เรียบง่ายและเหมาะกับฉัน
Kevin Tong

5
เพิ่ม-Nเพื่อข้ามเซสชัน ssh แบบอินเทอร์แอคทีฟ
fikovnik

5

youtube-dl ทำงานได้ดีกับ proxychains บน Ubuntu ตรวจสอบให้แน่ใจอุโมงค์ของคุณผ่านทางบรรทัดคำสั่ง

ssh -D 8081 ubuntu@yourSSHserver

ติดตั้ง proxychains ถัดไปบน localhost ของคุณไม่ใช่เซิร์ฟเวอร์ ssh ที่เชื่อมต่อ

sudo apt-get install proxychains

แก้ไขไฟล์กำหนดค่า proxychains ของคุณ

sudo nano /etc/proxychains.conf

แก้ไขหมายเลขพอร์ตในบรรทัดสุดท้าย

socks4  127.0.0.1 8081

หมายเหตุ: ฉันกำลังใช้ proxychains บนพอร์ต 8081

จากนั้นเพียงเพิ่ม proxychains ไปที่จุดเริ่มต้นของคำสั่งเมื่อใช้ youtube-dl

proxychains ./youtube-dl http://thesite.com/yourvideo.hmtl 

proxychains เป็นเครื่องมือที่ยอดเยี่ยม
2 8

2

คุณสามารถใช้แทน ,

เป็นเซิร์ฟเวอร์ SOCKS และ / หรือไคลเอนต์ที่สามารถฟังเป็น HTTP พร็อกซี

ดาวน์โหลดเวอร์ชันล่าสุดของผู้รับมอบสิทธิ์และแตกไฟล์

เรียกใช้คำสั่ง ssh ของคุณก่อน:

ssh -D 9150 me@myserver.com

จากนั้นให้เรียกใช้ไฟล์ตัวแทนไบนารีด้วยตัวเลือกเหล่านี้เพื่อให้มีพร็อกซี HTTP เป็นไคลเอนต์ SOCKS:

$ ./dg9_9_13 -P8080 SERVER=http SOCKS=127.0.0.1:9150 ADMIN="local@localhost.com"

จากนั้นรันyoutube-dlพร้อม--proxyตัวเลือกเพื่อเชื่อมต่อกับ HTTP พร็อกซีที่รับฟัง:

$ youtube-dl -v --proxy "http://127.0.0.1:8080" https://www.youtube.com/watch?v=VID

1

ตั้งแต่youtube-dlเวอร์ชั่น 2016.05.10คุณสามารถใช้--proxyเพื่อระบุ SOCKS proxy เช่น

youtube-dl --proxy "socks5://127.0.0.1/" -v 9bZkp7q19f0

--proxy URLใช้พร็อกซี HTTP / HTTPS / SOCKS ที่ระบุ หากต้องการเปิดใช้งานพร็อกซี SOCKS ทดลองให้ระบุรูปแบบที่เหมาะสม socks5://127.0.0.1:1080/เช่น


0

หากวิดีโอ Youtube เป็นสิ่งที่คุณต้องการคุณอาจลองccliveซึ่งจะสนับสนุนพร็อกซี่ และสามารถทำเว็บไซต์สตรีมมิ่งอื่น ๆ ได้เช่นกัน

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