Iptables
使用 iptables 過濾具有多個域的特定埠上的流量
假設我擁有兩個域:
example1.com
並且example2.com
我還有一個伺服器,其中執行了 2 個 Node.js webapp:
- app1 在埠 81 上執行,並且
- app2 在 82 埠上執行
現在我的兩個域都連接到該伺服器,這意味著如果我去
http://example1.com:81
或去http://example2.com:81
我將獲得 app1 頁面,如果我去http://example1.com:82
或去http://example2.com:82
我將獲得 app2 頁面。現在我的問題是:是否可以使用 iptables 阻止來自某個域的所有請求?
如果有人要求
http://example1.com:81
,他們將獲得 app1。但如果他們要求
http://example1.com:82
,他們將得不到答复。同樣,如果有人提出請求
http://example2.com:82
,他們將獲得 app2,但如果他們提出請求
http://example2.com:81
,他們將得不到任何答复。我希望我的問題很清楚。我很難在標題中描述它;我很抱歉。
“現在我的問題是:是否可以通過使用 iptables 來阻止來自某個域的所有請求?”
不,不帶防火牆
因為域名不是 IP 或 TCP 或級別 1 -> 3 的任何部分。客戶端首先從域名中查找 IP 地址,然後使用 IP 地址進行通信。
怎麼做,另當別論。
一些協議,例如 http,將域名嵌入到請求中。因此,您可以將過濾放在 web-server 配置中。
如果你願意,你可以在一個埠上完成這一切。或如問題中所述。