Tệp máy chủ có tồn tại trên iPhone không? Làm thế nào để thay đổi nó? [đóng cửa]


104

Tôi đang phát triển một ứng dụng truy vấn đến máy chủ. Trong máy Mac, tôi sử dụng tệp máy chủ để thay đổi dns để trỏ đến máy chủ cục bộ trong mạng cục bộ của mình.

Bây giờ tôi cần kiểm tra nó với iPhone của tôi, vấn đề là iPhone của tôi không nhận ra máy chủ đó do thiếu cấu hình cho dns.

Trên máy Mac hoặc Windows, tôi chỉ cần thêm: 192.168.0.20 http://www.google.comvào tệp máy chủ.

Bây giờ làm cách nào để cho iPhone của tôi biết URL http://www.google.com:?


Bẻ khóa iPhone của bạn, tải xuống iFile, điều hướng đến /etc/và mở tệp được gọi hoststrong trình xem văn bản. Bây giờ bạn có thể chỉnh sửa nó.

Phát triển cục bộ trên iPhone với OSX và Charles Web Proxy deployfx.com/2011/08/…
jfroom

1
OSX iOS Simulator và cập nhật tệp / etc / hosts của bạn.
dmarvasti

Ngoài ra: cài đặt Bonjour (sudo apt-get install avahi-daemon avahi-utils) và truy cập qua hostname.local trên iphone / ipad
Saša Tomislav Mataić

Tôi đã rất ngạc nhiên không thấy một câu trả lời như thế này, mà làm việc cho tôi: stackoverflow.com/a/41857012/470749
Ryan

Câu trả lời:


37

Điều này không trực tiếp trả lời câu hỏi của bạn, nhưng nó giải quyết vấn đề của bạn ...

Bạn có bộ định tuyến nào? Phần sụn bộ định tuyến của bạn có thể cho phép bạn thiết lập các bản ghi DNS cho mạng cục bộ của bạn. Đây là những gì tôi làm với phần mềm Tomato


cảm ơn, đây là những gì tôi đã làm để giải quyết vấn đề;)
Hoàng Phạm

Tôi cũng đã sử dụng cách tiếp cận này, ngoại trừ tôi đang sử dụng pfsense.
codewise,

nó sẽ hoạt động như thế nào, tôi cũng gặp phải vấn đề tương tự, tôi đang sử dụng bộ định tuyến cisco wrt
Amitg2k12

82

Một tùy chọn khác ở đây là để iPhone của bạn kết nối qua proxy. Đây là một ví dụ về cách làm điều đó với Fiddler (nó rất dễ dàng):

http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html

Trong trường hợp đó, bất kỳ tra cứu dns nào mà iPhone của bạn thực hiện sẽ sử dụng tệp máy chủ của máy mà Fiddler đang chạy. Tuy nhiên, lưu ý rằng bạn phải sử dụng tên sẽ được phân giải qua DNS. example.localchẳng hạn, sẽ không hoạt động. example.xyzhoặc example.devsẽ.


3
Đây là giải pháp đơn giản nhất. Tôi nên nghĩ về điều này !!
jimplode

1
Tuyệt vời. Đây là một điều trị cho tôi!
Sniffer

1
Điều tương tự hoạt động tuyệt vời trong osx, thiết lập proxy HTTP trong cài đặt mạng i.imgur.com/h5zEm.png
antonj

2
Phát triển cục bộ trên iPhone với OSX và Charles Web Proxy deployfx.com/2011/08/…
jfroom

1
Đây là một công cụ tuyệt vời cần có trong kho vũ khí cho bất kỳ sự phát triển ứng dụng di động nào - không chỉ để tra cứu DNS
JoshuaDavid

32

Không liên quan đến lập trình, nhưng tôi sẽ trả lời dù sao. Nó ở trong /etc/hosts.

Bạn có thể thay đổi nó bằng một trình soạn thảo văn bản đơn giản như nano.

(Rõ ràng là bạn sẽ cần một chiếc iPhone đã jailbreak cho việc này)


3
Bạn không thể sử dụng nano trên iPhone vani để truy cập trực tiếp vào / etc / hosts. Tôi giả sử là về một ứng dụng sẽ được phân phối, trong trường hợp đó, bạn không thể gây rối với các tệp bên ngoài hộp cát của mình.
Jaanus

@Jaanus: tất nhiên ý tôi là với một chiếc iphone đã jailbreak. Và anh ấy chưa bao giờ nói bất cứ điều gì về việc một ứng dụng được phân phối lại; anh ấy chỉ đơn giản đề cập rằng anh ấy cần phải kiểm tra nó trên chiếc iphone của mình có vấn đề về dns.
Thomas Bonini

16
Tôi không hiểu các phiếu phản đối. Câu trả lời là đúng về mặt kỹ thuật và được viết tốt.
Thomas Bonini

2
Tôi sẽ khôi phục một số nghiệp chướng cho bản chỉnh sửa; nếu số phiếu phản đối được sử dụng vì ẩn ý "cho ứng dụng được phân phối" thì mặc dù tôi có thể hiểu chúng, nhưng tôi nghĩ những người phản đối nên để lại nhận xét để giải thích điều đó.
David nói hãy phục hồi Monica vào

2
Tôi cho rằng anh ấy chỉ cần thay đổi tệp máy chủ để có thể thử nghiệm ứng dụng của mình. Sau khi thử nghiệm, nó không cần phải thay đổi tệp máy chủ. Hoàn toàn có thể chấp nhận được để khuyên bạn nên bẻ khóa ở đây!
Mongus Pong

14

Tôi vừa chỉnh sửa thành công tệp 'máy chủ' trên iPhone của mình (trên iOS 4.0 đã Jailbreak).

  • OpenSSH đã cài đặt vào iPhone qua Cydia
  • Sử dụng ứng dụng khách SFTP như FileZilla trên máy tính, tôi đã kết nối với iPhone của mình
    • Địa chỉ: [sử dụng địa chỉ IP hoặc tên máy chủ của điện thoại, ví dụ. simophone.local]
    • Tên tài khoản: root
    • Mật khẩu: alpine
  • Định vị /etc/hoststệp
  • Tạo một bản sao lưu trên máy tính của tôi (trong trường hợp tôi muốn hoàn nguyên các thay đổi của mình sau này)
  • Đã chỉnh sửa tệp máy chủ trong một trình soạn thảo văn bản phù hợp (chẳng hạn như Notepad ++ ). Xem ở đây để biết giải thích về tệp máy chủ.
  • Đã tải lên các thay đổi , ghi đè lên tệp máy chủ trên iPhone

Điện thoại thực hiện bộ nhớ cache một số trang web và truy vấn DNS, vì vậy khởi động lại hoặc xóa bộ nhớ cache có thể hữu ích. Hy vọng rằng sẽ giúp một ai đó.

Simon.


1
@Simon Tôi đã làm theo các bước tương tự, nhưng nó không hoạt động. Sau đó, tôi đã cố gắng thay đổi cài đặt mã hóa và đã hiểu! Bạn phải chuyển đổi tệp máy chủ của mình thành ANSI trong Notepad ++ trước khi lưu. Không thể làm cho tệp máy chủ lưu trữ hoạt động cho ai; nhấp vào " Chuyển đổi sang ANSI " trong menu " Mã hóa ".
trkaplan

2
Bạn cũng có thể sử dụng ứng dụng iFile từ Cydia để chỉnh sửa tệp hosts trên thiết bị của mình mà không cần phải sử dụng máy tính. Ad @ m
kirb

2
.. Và thay đổi mật khẩu mặc định từ alpine sang một thứ khác!
Tieme

7

Nó có thể tồn tại, nhưng bạn không thể thay đổi nó trên iPhone chưa jailbreak.

Giả sử rằng máy chủ web phát triển của bạn là trên máy Mac, tại sao bạn không sử dụng tên Bonjour của nó (ví dụ MyMac.local.) thay vì myrealwebserverontheinternet.com?


tất cả các dịch vụ web tồn tại trong một máy chủ trong mạng LAN của tôi. Tôi có một tên miền và tôi cũng muốn ánh xạ tên miền của mình tới máy chủ này. và thông báo rằng ai đó cung cấp cho bạn địa chỉ cho tất cả các dịch vụ web của anh ta, anh ta yêu cầu bạn truy vấn các dịch vụ này bằng địa chỉ này, anh ta có thể chỉ cho bạn cách thêm tệp hosts vào mac, windows, nhưng không phải iphone: -s
Hoang Pham

6

Trong trường hợp bất kỳ ai khác rơi vào trang này, bạn cũng có thể giải quyết vấn đề này bằng cách sử dụng địa chỉ Ip trong yêu cầu URL thay vì tên miền:

NSURL *myURL = [NSURL URLWithString:@"http://10.0.0.2/mypage.php"];

Sau đó, bạn chỉ định Máy chủ theo cách thủ công:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL];
[request setAllHTTPHeaderFields:[NSDictionary dictionaryWithObjectAndKeys:@"myserver",@"Host"]];

Theo như liên quan đến máy chủ, nó sẽ hoạt động giống hệt như khi bạn đã sử dụng http://myserver/mypage.php , ngoại trừ việc iPhone sẽ không phải tra cứu DNS.

API công khai 100%.


2
Tuy nhiên, điều này sẽ chỉ hoạt động với yêu cầu đầu tiên, nếu mypage.php thực hiện bất kỳ yêu cầu nào khác với máy chủ thì ứng dụng sẽ không thực hiện chuyển đổi.
htafoya

Cách tiếp cận này tốt nếu bạn không có ý định sử dụng cookie.
DUzun

Không. Điều này cũng không hoạt động. Chúng tôi đang sử dụng tính năng Ghim SSL, vì vậy miền không khớp đã làm rối tung nó: '017-07-13 10: 21: 42.244723-0400 ApperName [1015: 449748] libMobileGestalt MobileGestaltSupport.m: 153: pid 1015 (ApperName) không có quyền truy cập hộp cát cho frZQaeyWLUvLjeuEK43hmg và KHÔNG có quyền thích hợp 2017-07-13 10: 21: 42.244886-0400 UnionBank [1015: 449748] libMobileGestalt MobileGestalt.c: 550: không có quyền truy cập vào InverseDeviceID (xem <rdar: // problem / 11744455>) '
Codelapper

5

Không thay đổi DNS trên điện thoại. Thay vào đó, hãy kết nối wifi với mạng cục bộ và bạn đã sẵn sàng.

Tại văn phòng của tôi, chúng tôi có các máy chủ nội bộ với DNS nội bộ không được tiếp xúc với Internet. Tôi chỉ cần kết nối với iPhone với wifi văn phòng và sau đó có thể truy cập chúng tốt.

YMMV, nhưng thay vì định cấu hình DNS điện thoại, tôi cảm thấy rằng chỉ thiết lập DNS nội bộ cục bộ và wifi là một giải pháp gọn gàng và dễ dàng hơn.


1

Không, ứng dụng iPhone chỉ có thể thay đổi nội dung trong hộp cát nhỏ của chính nó. (Và thậm chí có những thứ bạn không thể thay đổi nhanh chóng.)

Đặt cược tốt nhất của bạn có lẽ là sử dụng địa chỉ IP của máy chủ thay vì tên máy chủ. Hơi khó khăn hơn, nhưng không phải khó khăn nếu bạn chỉ cần để giải quyết một địa chỉ duy nhất, sẽ được đặt một máy chủ DNS trên máy Mac của bạn và cấu hình iPhone của bạn để sử dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.