標(biāo)題夠長,主要是因為我也不知道應(yīng)該怎么形容這個主題。
本來是在學(xué)習(xí)Retrofit的,但是學(xué)著學(xué)著突然想學(xué)全套。于是想著自己家里弄一個局域網(wǎng)內(nèi)的REST API,這樣方便自己寫的安卓小demo可以實現(xiàn)各種REST請求。
于是折騰的從安裝json-server到局域網(wǎng)訪問虛擬機的過程出現(xiàn)了。
本機環(huán)境:
宿主機:Window10 + 虛擬機Ubuntu14.04.5
初步的目標(biāo)是想讓手機瀏覽器可以成功訪問虛擬機。
一,設(shè)置虛擬機靜態(tài)ip
參考鏈接:
http://www.cnblogs.com/noteless/p/5251336.html
首先,設(shè)置虛擬機使用的網(wǎng)絡(luò)是NAT模式的。
接著打開虛擬機,關(guān)閉虛擬機的防火墻,使用命令:sudo ufw disable
確保主機和虛擬機可以互ping成功。
具體流程記錄沒有截圖,請參考以上鏈接進行配置。
二,Node.js安裝
參考鏈接:
http://blog.csdn.net/w20101310/article/details/73135388
鏈接中推薦的是使用命令行下載node.js包,我試過,不成功,哪怕我用VPN下載,也不行。
所以我最終選擇的是到官網(wǎng) https://nodejs.org/download/release/ 下載最新版本 node-v8.1.2-linux-x64.tar.xz 。
然后在ubuntu虛擬機中解壓:tar -xvf node-v8.1.2-linux-x64.tar.xz

【此步驟可選】然后移動到 /opt/目錄下:sudo mv node-v8.1.2-linux-x64 /opt

接下來設(shè)置軟鏈接:
sudo ln -s /opt/node-v8.1.2-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /opt/node-v8.1.2-linux-x64/bin/npm /usr/local/bin/npm

三,安裝json-server
參考鏈接:
http://www.cnblogs.com/lewo/p/mock-json-server-install.html
在命令行中輸入:sudo npm install json-server -g
在Ubuntu16.04上好像不用為json-server設(shè)置鏈接,但是Ubuntu14.04卻不行。需要自己添加軟鏈接:
sudo ln -s /opt/node-v8.1.2-linux-x64/bin/json-server /usr/local/bin/json-server

在任一目錄新建文件夾 mockTest,在mockTest下新建db.json文件,輸入測試內(nèi)容:

然后在文件夾mockTest下運行: json-server db.json -p 3003
然后可以看到終端中提示 Resources , http:localhost:3003,在瀏覽器地址欄中輸入 http:localhost:3003,可以看到

說明json-server運行正常。
然后在宿主機的瀏覽器上訪問:http://192.168.31.139:3003/db ,(192.168.31.139:3003是虛擬機的ip)

說明可以正常從宿主機訪問虛擬機的json-server。
四,從局域網(wǎng)訪問虛擬機
參考鏈接:
http://blog.csdn.net/u012268339/article/details/61204801
http://www.itdecent.cn/p/db488f0ae3c0
從局域網(wǎng)訪問虛擬機,因為不能直接訪問虛擬機,所以主要配置實現(xiàn)的是一個端口映射的功能。
首先確定相關(guān)信息
虛擬機ip:192.168.31.139, 端口:3003
宿主機ip:192.168.2.103
打開VM -> 【編輯】 -> 【虛擬網(wǎng)絡(luò)編輯器】 -> 【更改設(shè)置】:

點擊【NAT設(shè)置】-> 【添加】,在映射傳入端口填寫數(shù)據(jù)如下:

設(shè)置完之后,可以在宿主機瀏覽器中訪問:http://192.168.2.103:10010/db

說明端口映射已經(jīng)正常。但是從手機瀏覽器目前還不能訪問,需要為宿主機的防火墻設(shè)置端口例外。
打開windows設(shè)置界面,搜索【防火】,進入【防火墻和網(wǎng)絡(luò)保護】

選擇【高級設(shè)置】,在【入站規(guī)則】右鍵新建一個入站規(guī)則。
規(guī)則類型選擇TCP,選擇特定端口,然后填寫之前你映射的宿主機端口,我的是10010.

為這個新增的入站規(guī)則命名和填寫描述,點擊【完成】

現(xiàn)在可以試試在連接了本地wifi的手機端訪問: http://192.168.2.103:10010/db

Okay,亂七八糟的配置完成,從局域網(wǎng)成功訪問虛擬機...