บทนำ
ฉันมีซอฟต์แวร์ทับทิมที่ใช้เครือข่ายระหว่างการดำเนินการ
เมื่อเร็ว ๆ นี้ฉันได้รับข้อเสนอแนะจากผู้ใช้ที่ทำงานเบื้องหลังไฟร์วอลล์และใช้ SOCKS ซอฟต์แวร์นี้ใช้ไม่ได้กับเขา
ดังนั้นฉันจึงต้องจำลองสถานการณ์นี้เพื่อตรวจสอบว่าส่วนใดของซอฟต์แวร์ของฉันไม่เคารพ HTTP_PROXY
ตัวแปรสภาพแวดล้อม
สิ่งที่ฉันได้ลอง
ฉันพยายามจำลองไฟร์วอลล์นี้ด้วย iptables
(ภายในนักเทียบท่า):
apt-รับการปรับปรุง -y
apt-get ติดตั้ง iptables
ส่งออก SOCKS5_PROXY_HOST=xxx.xxx.xxx.xxx[1]
ส่งออก SOCKS5_PROXY_PORT=ppp
iptables -A INPUT -s $SOCKS5_PROXY_HOST -j ยอมรับ
iptables -A OUTPUT -d $SOCKS5_PROXY_HOST -j ยอมรับ
iptables -P อินพุตลดลง
iptables -P เอาต์พุตลดลง
env HTTP_PROXY=$SOCKS5_PROXY_HOST:$SOCKS5_PROXY_PORT ทับทิม my_script.rb
ปัญหา
ด้วยเหตุผลบางประการ วิธีนี้ใช้ไม่ได้ผลและฉันได้รับ:
ยกเลิกการเชื่อมต่อพร็อกซีแล้ว
หรือ
ไม่สามารถเชื่อมต่อกับพอร์ต xxx.xxx.xxx.xxx pppp: การเชื่อมต่อหมดเวลา
หมายเหตุ:
- [1] ฉันใช้ที่อยู่ IP (ไม่ใช่ชื่อโดเมน) สำหรับ
ถุงเท้า
หนังสือมอบฉันทะ
- [2] ฉันเคยใช้พร็อกซี SOCKS สาธารณะแบบสุ่มที่แตกต่างกันก่อนสมัคร
iptable
กฎที่พวกเขาสามารถเข้าถึงได้ทั้งหมด
- [3] เคารพ Ruby Open-URI API
HTTP_PROXY
ตัวแปรสภาพแวดล้อม https://ruby-doc.org/stdlib-2.6.3/libdoc/open-uri/rdoc/OpenURI.htmlแต่รหัสของบุคคลที่สามบางตัวอาจไม่มี
คำถาม
- นั่นเป็นวิธีที่ยอมรับได้หรือไม่: พยายาม "จำลอง" ไฟร์วอลล์ด้วย
iptables
?
- สิ่งที่ปัญหานี้อาจปรากฏขึ้นคือ SOCKS เฉพาะหรือการกำหนดค่าที่ไม่ถูกต้องใน my
iptables
?
- อาจมีแนวทางที่ดีกว่าในการบรรลุเป้าหมายเดียวกัน: ทดสอบซอฟต์แวร์ให้ทำงานผ่านพร็อกซี SOCKS เท่านั้น โดยไม่มีการเชื่อมต่อ 'โดยตรง'