Hosts file 的使用以及管理

閱讀時間約 5 分鐘

0x00 簡介

Hosts File
是一種可以取代 DNS 查詢的步驟
直接指定 domain 所指向的 IP 位址
甚至是不存在的 domain 也可以使用 hosts file 來給定 IP 位址

在 macOS 位在 (修改會需要 sudo 權限)

/etc/hosts

Windows 則是位在 (修改會需要 Administrator 權限)

C:\Windows\System32\drivers\etc\hosts

如果想測試的話可以在檔案內加上一行

0.0.0.0 stackoverflow.com

由於我們將 stackoverflow.com 指向了一個 0.0.0.0 的 IP
這樣就可以體驗一下沒有 stackoverflow 的開發囉!

(延伸閱讀:什麼是 DNS?)

0x01 使用情境

現在多數的網站開發都是採用前後端分離的方式開發
有時候我們只是想要改 back-end API 的一些邏輯
或是想要在 local debug 的時候
就可以利用 hosts file 將 API 指向 local
這樣就可以用 production 的 front-end
但使用 local 的 back-end 來整合

當然也有可能反過來
用 local 的 front-end 但使用 production 的 back-end

另一種使用情境則是
在 production 環境會有 load balancer 做分配
如果我們想指定就是測試某一台 server 時
就可以用 hosts file 的修改
對指定的 server 做測試

0x02 來點例子 🌰

建立了一個很簡單的網頁應用 -> Cave
顧名思義就是個山洞

raw-image

對著山洞喊話
會得到回音

輸入任何內容按下 yelling
就會用 query string 的方式呼叫 echo API

fetch(`//echo.zuplo.io/?echo=${echo.value}`)
.then((response) => response.json())
.then((data) => alert(data.query.echo))

echo.zuplo.io 是一個丟什麼過去就回什麼回來的 API 和 postman-echo.com 差不多的服務

當按下 yelling 的時候會彈跳一個 alert 的回音給你

raw-image

0x03 修改 feature

此時我們收到需求要將 ECHO 回來的字母全部變成大寫
由於不需要動到前端
作為 API 開發人員我們可以在 local 將程式碼寫好並且啟動

const http = require('http');
const port = 8080;
const requestListener = function (req, res) {
res.setHeader('Content-Type', 'application/json');
res.writeHead(200);
res.end(JSON.stringify({ msg: 'Hello, World!'}));
}

const server = http.createServer(requestListener);
server.listen(port);
console.log(`server start listening on ${port}`);

或者可以直接執行

curl -s https://gist.githubusercontent.com/neokn/32b2f49505111069c73ed8d41b5d09e4/raw/745e106a20699d087896c4e5460564d5a719f22a/server.js | node

接著在 hosts file 中添加這一行

127.0.0.1 echo.zuplo.io

此時重新 yelling 一下

raw-image

我們就得到了一個全大寫的回音了

如果使用 chrome 有遇到以下錯誤
這是因為 chrome 的安全機制所擋掉的

raw-image

需要用這個連結把開關打開
chrome://flags/#block-insecure-private-network-requests

raw-image

0xFF 管理工具

開發久了總是會有各種不同的 domain 要指向不同的 IP
但如果開發完之後忘了改回來
可是 local 的服務也關了
或是指向了某台 server 但那台 server 現在已經 offline

就會很容易以為出大事了
結果別的同事的電腦都好的
就自己的是壞掉的
所以有個好的工具幫我們管理是再好不過的事

目前推薦使用 SwitchHosts
除了採用下載安裝之外
也可以用熟悉的 command 安裝

macOS

brew install switchhosts

Windows

choco install switchhosts

由於使用上非常簡單
這邊就不寫教學囉~

    2會員
    7Content count
    留言0
    查看全部
    發表第一個留言支持創作者!
    Justin Shaw's Salon 的其他內容
    講完了 Story 的拆解 其中提到了 Scope 那麼 Scope 是什麼呢? 以及伴隨著 Scope  很常聽到的 Acceptance Criteria (AC) 又扮演了什麼樣的角色? 0x00 回顧 在系列文章中的第一篇 From Scrum to LeSS — Roles
    當 Story 被確定下來之後 要如何切割 Story  讓他們可以在 Sprint 期間能 Done 過去經驗我們都知道 當 Story 太大的時候要拆小 但問題就來了 小要小到多小 有可能小到 Task 嗎?
    從一開始 Story 的出生 就會被放進 Product Backlog 經過漫長的等待 終於在某次的 Sprint 中被提到 Sprint Backlog 接著透過獅子🦁及猿猴🦍們的努力 將 Coffin 轉換成 Code Story 終於蛻變成了 PSPI
    最近上完了一門 LeSS in Action 的課程 雖然在 Scrum Team 少說也四五年了 這期間也考過了 CSM, PMP 認證 但這次的課程後對 Scrum 又有了新的認識 同時也回顧一下自己在執行了將近五年的 Scrum 開發經驗
    講完了 Story 的拆解 其中提到了 Scope 那麼 Scope 是什麼呢? 以及伴隨著 Scope  很常聽到的 Acceptance Criteria (AC) 又扮演了什麼樣的角色? 0x00 回顧 在系列文章中的第一篇 From Scrum to LeSS — Roles
    當 Story 被確定下來之後 要如何切割 Story  讓他們可以在 Sprint 期間能 Done 過去經驗我們都知道 當 Story 太大的時候要拆小 但問題就來了 小要小到多小 有可能小到 Task 嗎?
    從一開始 Story 的出生 就會被放進 Product Backlog 經過漫長的等待 終於在某次的 Sprint 中被提到 Sprint Backlog 接著透過獅子🦁及猿猴🦍們的努力 將 Coffin 轉換成 Code Story 終於蛻變成了 PSPI
    最近上完了一門 LeSS in Action 的課程 雖然在 Scrum Team 少說也四五年了 這期間也考過了 CSM, PMP 認證 但這次的課程後對 Scrum 又有了新的認識 同時也回顧一下自己在執行了將近五年的 Scrum 開發經驗
    你可能也想看
    Thumbnail
    重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
    Thumbnail
    近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
    Thumbnail
    【Royal Host ・樂雅樂】 主打日式創意西餐,餐點選擇很多,很適合家庭、朋友聚餐。 只是久違的室內用餐,點的焗烤通心麵竟只有外層的起司味,裡面完全沒味道…自行加了超多的鹽和胡椒才總算有點味道…僅山型麵包和焦糖布蕾有發揮正常水準。 #樂雅樂
    Thumbnail
    這邊教你如何檢舉,讓官方幫你確定他是不是作弊 檢舉網址: Issues · helium/denylist (github.com)
    Thumbnail
    台北的後火車站商圈具有一種舊時代凝結的獨特魅力,在這其中的Star Hostel信星旅館,位於華陰街的舊大樓內,卻是格局相當特別的青年旅宿。最受注目的就是屋中有屋,有個旅客專屬的挑高空間交誼廳。
    Thumbnail
    從宜蘭礁溪火車站一出來就能看到的Hostel Tomato 番茄旅店,地理位置交通便利同時也是一間重視生活美學的青年旅店。 前身本就是溫泉旅社,後由設計出身的二代接手營運,大改傳統的舊格局,規劃整體的新品牌形象,也就是可愛活潑的番茄Logo啦~
    Thumbnail
    Net Core 為一跨平台的應用開發,其此框架上可以加上許多自製服務,稱之為容器也不為過。 如果要細說明此框架,完整明瞭,可以寫出一整本厚厚的書。但如果要先瞭解框架主要的運作過程,尤其是搭配MVC控制器,是可以將此用圖解的方式將其軌跡整理出來,將其作出關係圖,當作踏入此框架的一個指引,近而未來可
    由於有人問我Host等之類的Q&A,這篇文想來說說關於我會Host的看法。 【Host】 Host 是轉播的意思,如果在自己的Twitch聊天室打上“/host ID”即可在自己的實況頻道轉播他人的實況內容,這時候在頻道的人可以自己選擇是否前往該頻道與之互動。
      有英國「手提包女王」美譽的LULU GUINNESS,一直以來用各種可愛活潑的風格吸粉,臺灣頭號粉絲就是女星王心凌,常常背上LULU GUINNESS的設計裝嫩,俏皮感十足。細數曾經推出的包款,包括可愛的娃娃臉孔、貓咪後背包、草編人頭、紅唇包等,都是近年經典。 其中,「紅唇」與「口紅」更是標志性
    Thumbnail
    前言 隨著越來越多公司導入 DevOps 、Agile、Scrum 開發模式,作為基礎設施的 CI / CD Pipeline 也越來越被需要。但是導入的過程中, 總會遇到一些問題: CI / CD Pipeline 該怎麼建 !? Pipeline 工具該怎麼選擇 !? 老天 : 去看書 ! …
    Thumbnail
    重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
    Thumbnail
    近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
    Thumbnail
    【Royal Host ・樂雅樂】 主打日式創意西餐,餐點選擇很多,很適合家庭、朋友聚餐。 只是久違的室內用餐,點的焗烤通心麵竟只有外層的起司味,裡面完全沒味道…自行加了超多的鹽和胡椒才總算有點味道…僅山型麵包和焦糖布蕾有發揮正常水準。 #樂雅樂
    Thumbnail
    這邊教你如何檢舉,讓官方幫你確定他是不是作弊 檢舉網址: Issues · helium/denylist (github.com)
    Thumbnail
    台北的後火車站商圈具有一種舊時代凝結的獨特魅力,在這其中的Star Hostel信星旅館,位於華陰街的舊大樓內,卻是格局相當特別的青年旅宿。最受注目的就是屋中有屋,有個旅客專屬的挑高空間交誼廳。
    Thumbnail
    從宜蘭礁溪火車站一出來就能看到的Hostel Tomato 番茄旅店,地理位置交通便利同時也是一間重視生活美學的青年旅店。 前身本就是溫泉旅社,後由設計出身的二代接手營運,大改傳統的舊格局,規劃整體的新品牌形象,也就是可愛活潑的番茄Logo啦~
    Thumbnail
    Net Core 為一跨平台的應用開發,其此框架上可以加上許多自製服務,稱之為容器也不為過。 如果要細說明此框架,完整明瞭,可以寫出一整本厚厚的書。但如果要先瞭解框架主要的運作過程,尤其是搭配MVC控制器,是可以將此用圖解的方式將其軌跡整理出來,將其作出關係圖,當作踏入此框架的一個指引,近而未來可
    由於有人問我Host等之類的Q&A,這篇文想來說說關於我會Host的看法。 【Host】 Host 是轉播的意思,如果在自己的Twitch聊天室打上“/host ID”即可在自己的實況頻道轉播他人的實況內容,這時候在頻道的人可以自己選擇是否前往該頻道與之互動。
      有英國「手提包女王」美譽的LULU GUINNESS,一直以來用各種可愛活潑的風格吸粉,臺灣頭號粉絲就是女星王心凌,常常背上LULU GUINNESS的設計裝嫩,俏皮感十足。細數曾經推出的包款,包括可愛的娃娃臉孔、貓咪後背包、草編人頭、紅唇包等,都是近年經典。 其中,「紅唇」與「口紅」更是標志性
    Thumbnail
    前言 隨著越來越多公司導入 DevOps 、Agile、Scrum 開發模式,作為基礎設施的 CI / CD Pipeline 也越來越被需要。但是導入的過程中, 總會遇到一些問題: CI / CD Pipeline 該怎麼建 !? Pipeline 工具該怎麼選擇 !? 老天 : 去看書 ! …