ฉันสามารถแก้ไขไฟล์โฮสต์ของ iPad ได้หรือไม่


87

ฉันสงสัยว่าสิ่งนี้เป็นไปได้โดยไม่ต้องแหกคุกอย่างกว้างขวาง แต่เป็นไปได้หรือไม่ที่จะแก้ไขไฟล์โฮสต์ของ iPad (หรืออุปกรณ์ iOS)


1
ไม่ใช่โดยไม่ต้องแหกคุก เมื่อเจลเบรคแล้วจะเหมือนกับระบบ Unix / BSD อื่น ๆ ฉันถือว่าฉันไม่เคยทำมาก่อน
Jasarien

1
ลองนึกดูว่าแอปใดสามารถเปลี่ยนการเชื่อมโยงระหว่างชื่อโฮสต์และ IP ที่ถูกต้องได้
Jano

2
@jano สันนิษฐานว่าตอนนี้มีปัญหากับแอพใน Mac App Store แล้ว OSX ได้รับการจัดการโดยต้องใช้รหัสผ่านก่อนที่คุณจะสามารถแก้ไขไฟล์โฮสต์ได้และน่าจะเป็นไปตามขั้นตอนการตรวจสอบแอปของ Apple
Danyal Aytekin

3
@Jano: Microsoft Windows อนุญาตตอนนี้และทำให้เกิดปัญหา 0 คุณต้องมีสิทธิ์ผู้ดูแลระบบ และมีเหตุผลที่ถูกต้องในการต้องการแก้ไขไฟล์โฮสต์ (ทั้งหมดเกี่ยวข้องกับการเข้าถึงสิ่งต่างๆโดยไม่มีเซิร์ฟเวอร์ DNS หรืออื่น ๆ ที่เกี่ยวข้องกับปัญหา VPN)
Josh Mouch

คำตอบ:


46

ไม่แอปสามารถแก้ไขไฟล์ภายในไดเร็กทอรีเอกสารภายในแซนด์บ็อกซ์ของตนเองเท่านั้น เพื่อความปลอดภัยและง่ายต่อการติดตั้ง / ถอนการติดตั้ง ดังนั้นคุณสามารถทำได้บนอุปกรณ์ที่เจลเบรคเท่านั้น


1
เฉพาะในแซนด์บ็อกซ์ แต่ไม่ใช่เฉพาะในไดเร็กทอรีเอกสาร (ดูคู่มือการเขียนโปรแกรมแอปพลิเคชัน iOS> รันไทม์แอปพลิเคชัน> ระบบไฟล์)
Jano

56

คำตอบก่อนหน้านี้ถูกต้อง แต่หากผลที่คุณต้องการคือการเปลี่ยนเส้นทางการรับส่งข้อมูล HTTP สำหรับโดเมนไปยัง IP อื่นมีวิธี

เนื่องจากในทางเทคนิคแล้วฉันไม่ได้ตอบคำถามของคุณฉันจึงถามและตอบคำถามที่นี่:

ฉันจะเปลี่ยนเส้นทางคำขอ HTTP ที่สร้างจาก iPad ได้อย่างไร


47

ไม่คุณไม่สามารถเปลี่ยนไฟล์โฮสต์ของ iPad (โดยไม่ต้องเจลเบรค) แต่สามารถแก้ปัญหาได้

นี่คือสถานการณ์ของฉัน:

  • Mac OS X พร้อม IP 192.168.2.1ใช้งานเว็บแอป
  • iPad อุปกรณ์ที่คุณต้องการทดสอบเว็บแอป
  • Charles (สำหรับ Mac) เปิดใช้งานพร็อกซี HTTP สำหรับ iPad ของคุณ

ฉันกำลังจะทดสอบเว็บแอปที่ทำงานใน Mac ผ่าน iPad แต่ฉันไม่สามารถเข้าถึงได้โดยตรง

วิธีแก้ปัญหานี้ใช้ได้กับฉัน:

  • ประการแรกตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์และ iPad ของคุณอยู่ในเครือข่ายท้องถิ่นเดียวกัน
  • จากนั้นตั้งค่าพร็อกซีชาร์ลส์ในเมนู "พร็อกซี> การตั้งค่าพร็อกซี ..." เติมในPort(ส่วนใหญ่8888) Enable transparent HTTP proxyingและสลับ

ใส่คำอธิบายภาพที่นี่


  • ตั้งค่าพร็อกซีใน iPad

ใส่คำอธิบายภาพที่นี่

ตอนนี้คุณสามารถเยี่ยมชมเว็บแอปใน iPad ได้แล้ว

แน่นอนคุณสามารถใช้เครื่องมือพร็อกซีอื่น ๆ เช่นSquidหรือVarnishใน Linux หรือfiddlerใน Wondows


1
ไม่ตอบคำถาม ... แต่นี่เป็นวิธีแก้ปัญหาที่ยอดเยี่ยมใช้งานง่ายสลับได้ง่ายสำหรับวัตถุประสงค์ที่คนส่วนใหญ่ต้องการแก้ไขไฟล์โฮสต์สำหรับ.
Matt Kenefick

ทางออกที่ยอดเยี่ยม! ทำความสะอาดและใช้งานง่าย ฉันใช้ linux เป็นระบบปฏิบัติการสำหรับเวิร์กสเตชันของฉันดังนั้นฉันจึงใช้ tinyproxy และพร็อกซีก็ใช้งานได้ดีกับ iPhone ของฉัน ขอบคุณ!
Edenshaw

มันใช้ไม่ได้กับ iOS เวอร์ชันใหม่กว่าเนื่องจากปัญหาด้านความปลอดภัยอาจจะง่ายกว่าด้วยตัวกรองNodeJsโมดูล
vanduc1102

1
"ตอนนี้คุณสามารถเยี่ยมชมเว็บแอปของคุณใน iPad ได้แล้ว" - แต่อย่างไร หากแอปของฉันใช้งานได้เฉพาะบน "myapp.dev.domain.com" Ipad จะแก้ไขชื่ออย่างไร นี่คือที่มาของไฟล์โฮสต์และฉันสงสัยว่าประเด็นของคำถาม
Greg Woods

@GregWoods ฉันมีการกำหนดค่าที่คล้ายกันและสิ่งนี้ใช้ได้กับฉันโดยไปที่ 'myapp.env.domain.com' แต่หลังจากลองไม่กี่ครั้ง
RenaissanceProgrammer

6

วิธีที่ง่ายที่สุดคือเรียกใช้โปรแกรมจำลอง iPad โดยใช้ XCode จากนั้นเพิ่มรายการในไฟล์โฮสต์ (/ etc / hosts) บนระบบโฮสต์เพื่อชี้ไปที่ไซต์ทดสอบของคุณ


6
คำถามเกี่ยวกับอุปกรณ์ไม่ใช่เครื่องจำลอง
Janak Nirmal

5
@JanakNirmal ยังคงเป็นคำตอบที่เป็นประโยชน์
Simon

6

ฉันต้องการฟังก์ชั่นเดียวกันและการเจลเบรคก็ไม่จำเป็น ทางออกหนึ่งคือการโฮสต์เซิร์ฟเวอร์ DNS ด้วยตัวคุณเอง ( MaraDNS ) ของไปที่การตั้งค่า wifi ของคุณใน ipad / โทรศัพท์และเพิ่มเซิร์ฟเวอร์ DNS ที่คุณกำหนดเองที่นั่น

กระบวนการทั้งหมดใช้เวลาฉันเพียง 10 นาทีและได้ผล!

1) ดาวน์โหลด MaraDNS

2) เรียกใช้ mkSecretTxt.exeในฐานะผู้ดูแลระบบ

3) แก้ไขmararcไฟล์ของฉันคือ:

ipv4_bind_addresses = "put your public IP Here"
timestamp_type = 2
random_seed_file = "secret.txt"

csv2 = {}
csv2["Simple.Example.com."] = "example.configuration"

เพิ่มไฟล์ชื่อ " example.configuration" ลงในโฟลเดอร์เดียวกันกับที่run_maradns.batอยู่

4) แก้ไขไฟล์ example.configuration ของคุณ:

Simple.Example.com. 10.10.13.13 ~

5) ปิดการใช้งานไฟร์วอลล์ทั้งหมด (ความสะดวก)

6) เรียกใช้ไฟล์ "run_maradns.bat "

7) ไม่ควรมีข้อผิดพลาด

8) เพิ่มเซิร์ฟเวอร์ DNS ของคุณในรายการดังที่แสดงไว้ที่นี่: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9) ได้ผล!


1
ทุกคำตอบที่นี่ถือว่า OP ต้องการดักจับการรับส่งข้อมูล HTTP ในขณะที่นี่เป็นคำตอบที่แท้จริงเพียงคำตอบเดียวที่มุ่งเน้นไปที่การแก้ไขความละเอียด DNS (เป็นการแก้ไขไฟล์โฮสต์)
Filipe Pina

5

ได้คุณสามารถแก้ไขไฟล์โฮสต์ของ iPad ได้ แต่คุณต้องเจลเบรค เมื่อคุณทำเสร็จแล้วให้ดาวน์โหลด Cydia (ตลาดแอป) และรับ iFile ไฟล์โฮสต์อยู่ภายใน "/ etc / hosts"


4

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


3

วิธีแก้ปัญหาที่ฉันใช้เพื่อวัตถุประสงค์ในการพัฒนา:

  1. สร้างพร็อกซีเซิร์ฟเวอร์ของคุณเอง (ทางเลือกหนึ่งคือ Squid บน Linux)
  2. ตั้งค่าไฟล์โฮสต์ของคุณด้วยโดเมนของคุณ
  3. ตั้งค่าพร็อกซีเซิร์ฟเวอร์บน IPAD / IPHONE และคุณสามารถใช้กับโฮสต์ของคุณได้

วิธีง่ายๆที่ดี!
Adam Freeman

3

ฉันรู้ว่ามีการโพสต์สิ่งนี้มาระยะหนึ่งแล้ว แต่ด้วย iOS 7.1 มีการเปลี่ยนแปลงบางอย่าง

จนถึงตอนนี้หากคุณกำลังพัฒนาแอพคุณต้องมีใบรับรอง SSL ที่ถูกต้องที่ Apple รู้จักมิฉะนั้นคุณจะได้รับข้อความแสดงข้อผิดพลาดบน iDevice ของคุณ ไม่มีใบรับรองที่ลงนามด้วยตนเองอีกต่อไป ดูรายการที่นี่:

http://support.apple.com/kb/ht5012

นอกจากนี้หากคุณอยู่ที่นี่หมายความว่าคุณกำลังพยายามให้ iDevice แก้ไขชื่อ (ไปยังเซิร์ฟเวอร์ https ของคุณ) ในสภาพแวดล้อมการทดสอบหรือการพัฒนา

แทนที่จะใช้ Squid ซึ่งเป็นแอปพลิเคชั่นที่ยอดเยี่ยมคุณสามารถเรียกใช้เซิร์ฟเวอร์ DNS พื้นฐานเช่น dnsmasq มันจะใช้ไฟล์โฮสต์ของคุณเป็นบรรทัดแรกของการแก้ปัญหาชื่อดังนั้นโดยพื้นฐานแล้วคุณสามารถหลอก iDevice ของคุณได้ที่นั่นโดยบอกว่า www.blah.com คือ 192.168.10.10

ไฟล์คอนฟิกูเรชันนั้นเรียบง่ายเพียง 3 ถึง 4 บรรทัดและคุณยังสามารถกำหนดค่าเซิร์ฟเวอร์ DHCP ภายในได้หากต้องการ

นี่คือของฉัน:

ฟังที่อยู่ = 192.168.10.35

โดเมนที่จำเป็น

ปลอมเอกชน

ไม่มี -dhcp-interface = eth0

ท้องถิ่น = / localnet /

แน่นอนคุณต้องกำหนดค่าเครือข่ายบน iDevice ของคุณเพื่อใช้ DNS นั้น (ในกรณีของฉัน 192.168.10.35) หรือเพียงแค่เริ่มใช้ DHCP จากเซิร์ฟเวอร์นั้นหลังจากกำหนดค่าอย่างถูกต้อง

นอกจากนี้หาก dnsmasq ไม่สามารถแก้ไขชื่อภายในได้ก็จะใช้เซิร์ฟเวอร์ DNS ปกติของคุณ (เช่น 8.8.8.8) เพื่อแก้ไขให้คุณ เรียบง่ายสวยงามมากและแก้ปัญหาของฉันด้วยการติดตั้งแอพ iDevice ในบ้าน

ยังไงก็ตามแก้ปัญหาการแก้ชื่อหลาย ๆ อย่างกับ macs ทั่วไป (OS X) ด้วย

ตอนนี้ฉันพูดจาโผงผาง: แอปเปิ้ลเปื้อนเลือด การทำให้อุปกรณ์ปลอดภัยไม่ควรรวมถึงการแคสต์ระบบปฏิบัติการหรือนักพัฒนา


ขอบคุณคาร์ลอส การต่อสู้คือเราใช้ผลิตภัณฑ์ VPN มือถือของ Pulse Secure เพื่อทดสอบเซิร์ฟเวอร์ สิ่งเหล่านี้ไม่มีจำหน่ายภายนอก ดังนั้นหากเราต้องการทดสอบใบรับรองผลิตภัณฑ์ใหม่เราต้องใช้ iPad เพื่อไปที่เซิร์ฟเวอร์ทดสอบ (ที่ติดตั้งใบรับรอง PROD) แต่จะใช้ URL www.prod ...... com. จนถึงขณะนี้ไม่พบวิธีแก้ปัญหาสำหรับสถานการณ์นี้ : 0 (
codelapper

2

หากคุณมีอิสระในการเลือกชื่อโฮสต์คุณก็สามารถเพิ่มโฮสต์ของคุณไปยังบริการ dynanmic DNS เช่น dyndns.org จากนั้นคุณสามารถใช้กลไกการแก้ปัญหาปกติของ iPad เพื่อแก้ไขที่อยู่


2

คุณยังสามารถใช้ประโยชน์จากพร็อกซีเซิร์ฟเวอร์บน iPhone หรือ iPade ของคุณผ่านอินเทอร์เน็ตบนมือถือ (3G) โดยใช้ตัวสร้างพร็อกซี iPhone Mobile:

http://iphonesettings.net/mobileproxygenerator.php

เพียงป้อน apn ของผู้ให้บริการของคุณ (ด้วยชื่อผู้ใช้ / รหัสผ่าน apn หากจำเป็น) และพร็อกซีเซิร์ฟเวอร์ที่คุณต้องการดำเนินการแล้วแตะสร้าง


2
ผู้อ่านระวัง : เว็บไซต์ในคำตอบนี้ถูกระบุว่าเป็นมัลแวร์โดยโซลูชันไฟร์วอลล์อินเทอร์เน็ตขององค์กรจำนวนมาก การส่งการรับส่งข้อมูลทั้งหมดของคุณผ่านพร็อกซีเซิร์ฟเวอร์ที่ไม่น่าเชื่อถือคุณจะเปิดเผยข้อมูลที่ส่งทั้งหมด คุณจริงๆไว้วางใจiphonesettings.net?
ErikE

-2

คุณจำเป็นต้องเข้าถึง/private/etc/ดังนั้นไม่ คุณทำไม่ได้


@OmG คำถามคือ "เป็นไปได้หรือไม่" และความคิดเห็นของเขา / เธอตอบคำถามได้อย่างถูกต้อง หยุดคัดลอก / วางความคิดเห็นเพื่อเพิ่มชื่อเสียงของคุณเอง
Daniel Smith

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