2012-06-12 99 views
29

在我的Mac上運行一個紅寶石軌道項目。我需要在我的android手機上測試它。有沒有辦法在我的android手機上查看我的mac本地主機?在Mac上運行的本地主機..我可以在我的Android手機上查看它嗎?

+0

我嘗試了這個頁面上的所有解決方案,但他們都沒有工作,但是這個答案被人們稱爲一個重複的問題有一個不同的,正確的答案,對我來說很有效。 http://stackoverflow.com/a/9515414/627702 – SWoo

回答

53

名稱「本地主機」只是回到你自己的電腦。要在Android上訪問它,您需要找到計算機的IP地址。

查找此信息的最常用方法是在Mac和Linux上運行,即進入終端並鍵入ifconfig。查找「en0」或「en1」,並在該條目下查找「inet」列表。它將沿着「192.168.1.100」的方向行進。當您找到該地址時,這就是您想要放入瀏覽器地址欄的內容。

(在Mac上明確,你可以去在系統偏好設置的共享面板,它會告訴你。)

+5

只是添加我發現的東西。通過在Android瀏覽器中輸入192.168.1.107(我的Mac ip),它將不起作用。但如果我輸入192.168.1.107:3000,它就會起作用。 – VHanded

+2

@VHanded這是因爲你的rails服務器正在監聽端口3000. –

+2

確保你像我一樣輸入'ifconfig'和_not_'ipconfig'(最近從pc移到mac)。花了相當長的一段時間纔看到這個錯字。 –

8

大塊的答案是正確的,假設你的移動設備和計算機都在同一網絡上。但是,如果你希望你的本地主機服務器對更廣泛的互聯網可見(例如通過3G進行測試,開發webhook或與遠程同事/客戶端進行協作),則需要更多本地地址作爲本地地址(從10開始*或192.168。*。 )對更廣泛的互聯網不可見。

傳統的解決方案是端口轉發和動態DNS,但最近出現了一些旨在簡化此過程的服務(免責聲明:我是其中的一個作者,PageKite)。

這些服務爲您提供一個公共DNS名稱和軟件,它們將您的「本地主機」與雲端中繼服務器(又名逆向代理)連接起來。例如,如果你正在使用PageKite,你可以在終端運行以下命令:

$ pagekite.py 80 yourname.pagekite.me

...從http://yourname.pagekite.me/創建一個映射到Web服務器在http://localhost:80上運行。程序運行時,您的本地主機網站將可以在互聯網的其他地方看到。爲了使其再次保密,您只需關閉pagekite.py連接器程序即可。

爲了完整起見,這裏有一些本地主機隧道服務我所知道的:

  • PageKite是自由軟件(Python)的一個「付費什麼,你想要的」在線服務。您可以根據需要創建任意數量的長壽命子域,並且包含通配符SSL證書,前端中繼在多個地理位置運行,以提供冗餘和響應能力。
  • Localtunnel是免費的(由Twilio贊助)Ruby解決方案,它提供連接的臨時名稱。請注意,名稱已被回收,因此您可能會在連接處於活動狀態時看到意外流量。
  • Showoff.io和Tunnlr.com是基於相同基本技術(ssh隧道)的專有付費服務,與Localtunnel相當。

(對不起,不鏈接到最後兩個,所以SO垃圾郵件防護阻止我對我的競爭對手公平。;-)

+0

自從您的帖子是Forward(www.forwardhq.com)以來出現的另一個類似的付費選項。 –

+0

+1 pagekite是真棒 – speedynomads

+0

我會被詛咒,pagekite真的有效。 –

11

下面是可用於其他設備上測試的簡要待辦事項有你的本地主機:

1)確定你的Android的IP:選擇了Wi-Fi你連接(同Mac所在的那個),你將擁有詳細的IP)。對於這個例子:我們假設你的Android IP爲:192.168.0.10

2)你的Mac上打開外殼和編輯您的主機:

sudo nano /etc/hosts 

3)編輯該文件爲這樣:

127.0.0.1 192.168.0.10 

4)確定您的Mac IP:(如@Chuck完全解釋) (在你的shell):

ifconfig 

5)打開你最喜歡的網頁瀏覽器,你用你的手機上,並直接與像連接到Mac的IP(如果有必要的端口):

http://192.168.x.x:8000/ 

6)享受您的測試:)

通知你可以爲您的Wi-Fi上連接的每個支持做到這一點。

+3

有沒有人真正嘗試這個upvoting之前? – dansalmo

+0

關於嘗試,但認爲我很快就會補充說,對於大多數人來說,它實際上應該是: 'sudo nano/etc/hosts' 注意複數 – bryceadams

+0

是的,它正在工作。爲了得到android ip我用:[這個應用程序](https://play.google.com/store/apps/details?id=aws.apps.networkInfoIi) –

5

今天發現這個了不起的免費工具 - 真的容易設置和工作就像一個魅力! Mac OS,Linux和Windows版本也可用。

https://ngrok.com/

(我不以任何方式與之相關聯)

2

閱讀此線程後(和工作的建議!)我把一個單一的指南,解決這一問題。 This link to that guide that has screenshots for every step and where to look。或者文本被粘貼在下面。感謝您的幫助!

首先,您的手機和筆記本電腦必須連接到同一個WiFi網絡。如果您正在使用手機移動熱點,它仍然可以使用。但是,在繼續前進之前,請確保將兩臺設備連接到同一網絡。

接下來,收集您的手機IP地址。爲此,我使用Network Info II應用程序。有絕對的另一種方法來完成這一點。但是,Network Info II可根據需要運行,並且是本教程的文檔。

現在在您的計算機上打開終端(不必擔心您的目錄),然後運行命令sudo nano/etc/hosts /。輸入系統密碼後,您將在終端頂部附近看到一串以localhost爲後續字的數字。本地主機實際上只是您計算機自己的服務器地址的別名,因此當您在瀏覽器中訪問本地主機時,它只會將http請求路由到本地計算機。爲了將您的手機綁定到此循環,請在數字串和本地主機之間輸入其IP地址。

要保存此信息,請在提示保存時點擊控制按鈕+ X和Y.之後,回車鍵將使您回到標準命令行。

在終端中打開第二個選項卡並啓動本地服務器。我只使用一個簡單的python服務器來測試它,它可以通過在終端python -m SimpleHTTPServer 8000中運行來運行。但是,我假設您可以啓動任何您喜歡的本地服務器,因爲您需要引用的是端口號。如果您確實使用簡單的python服務器,則該端口號爲8000.

在終端中運行ifconfig。這會產生大量的信息,你應該在一半以內滾動。你要查找的是一系列數字,在en0:或en1:鍵內的inet之前和netmask之後。

完成!在你的Android上,打開一個瀏覽器並訪問inet號碼,後跟一個冒號(:)和端口號。

+2

爲什麼Chrome會認爲你的鏈接是攻擊網站?這加上你的聲譽是非常可疑的。 –

7

這爲我工作了超過本地網絡訪問軌服務器IP:

  • 在防火牆被關閉。
  • /etc/hosts中應該有這樣的項:

    127.0.0.1 192.168.100.12 
    

    其中192.168.100.12是可以通過在終端ifconfig命令中找到的IP地址。

  • 開始導軌服務器使用此命令:

    rails server -b 0.0.0.0 -p 8080 
    

我能夠通過http://192.168.100.12:8080/

+1

我也是運行一個紅寶石服務器和'-b 0.0.0.0'解決了我的問題!我對此失去了理智。泰! –

0

訪問我的本地儘管一個答案已被接受,但這個工作對我來說:

  1. 確保您的電腦和Android設備都在同一網絡上。
  2. 獲取您的計算機的IP地址。 (在Mac型ifconfig內部端子和尋找en0/en1 -> inet它應該像19*.16*.1.4的情況下)
  3. 打開你的手機設置,然後轉至網絡 - >長按你的無線網絡 - >修改網絡 - >向下滾動到高級選項 - >選擇代理手冊,並在代理主機名中鍵入您的地址,即19*.16*.1.4內部端口輸入您的端口。並保存它。

  4. 搜索在谷歌瀏覽what is my ip,並獲得你的IP,可以說這是1**.1**.15*.2**

  5. 嘗試從移動設備訪問1**.1**.15*.2**:port/

就這麼簡單。

相關問題