iT邦幫忙

0

如何將特定子網域的所有Port都轉到特定虛擬IP

各位前輩好,
先說明我目前的環境:

我有一個網域xxx.com (Web Server),
底下有一個子網域nas.xxx.com (NAS Server),
兩個的A Record皆為我的固定IP,

在我的固定IP底下有一個Router (ASUS RT-N15U),Web及NAS Server都在Router底下,

兩台Server皆為虛擬IP (Web: 192.168.0.100、NAS: 192.168.0.101),

我希望可以做到的是:xxx.com的所有Port都導向192.168.0.100,nas.xxx.com的所有Port都導向192.168.0.101

但是我在Router的設定畫面只有Port Forwarding的功能,
若要完成上述需求,需要如何設定或是需要什麼設備才能夠完成?

0
weiclin
iT邦高手 4 級 ‧ 2016-05-12 15:32:21
最佳解答

在 192.168.0.100 架設 reverse proxy, 讓 router 把 80 port 都丟過來給他

在 reverse proxy 指定各個網域要到哪一個 ip 取資料即可

你可以考慮使用 haproxy 這個軟體

ppc357308 iT邦新手 5 級 ‧ 2016-05-12 15:37:41 檢舉

若有80以外的Port或是非HTTP Request也能使用此方法嗎?

weiclin iT邦高手 4 級 ‧ 2016-05-12 17:36:42 檢舉

http 換別的 port 沒問題, haproxy 這邊做對應的設定即可

而其他的就不一定可以了, http 會告知要連線的是什麼網域, 但別的不一定會,也因此無從判斷。

0
msnman
iT邦研究生 3 級 ‧ 2016-05-12 16:06:41
ppc357308 iT邦新手 5 級 ‧ 2016-05-12 16:24:43 檢舉

我的意思是希望xxx.com:1234導向到192.168.0.100:1234
nas.xxx.com:1234導向到192.168.0.101:1234
而Router內建的只有針對單一Port導向到指定內部IP,而無法偵測是由哪個網域來的

msnman iT邦研究生 3 級 ‧ 2016-05-12 17:18:50 檢舉

從官網的教學可以看得出它沒有你要的設定,因此,此設備無法滿足閣下需求。如果真要這個功能,建議自已架一台虛擬機做測試,用IPTABLES的DNAT應該是可以滿足閣下的需求,問題在於閣下是否願意自架伺服器。

0
窮嘶發發發
iT邦高手 1 級 ‧ 2016-05-12 16:14:24

你要做的 應該是 NAT 還有Port Forwarding ,有兩個 固 I 的話

假設 ASUS RT-N15U 用 其中一個 固I 我們假定 201.x.x.1

你希望這個是 WEB SERVER 那做 Port Forwarding ( 虛擬伺服器 ) 你可以用 1~65535 > 192.168.0.100

接著 NAT 把 另一個 固I 假定是 201.x.x.2 指向 192.168.0.101

這樣就好了

ppc357308 iT邦新手 5 級 ‧ 2016-05-12 16:25:12 檢舉

如果我只有一組固定IP的話,該怎麼做比較好?

那就很抱歉沒辦法完全照你要的做了
你應該要知道的是哪些服務要那些 PORT,不能全轉
例如 WEB 就是 80 那就是 80 > 100:80
那 NAS 也許也有 80 那怎麼辦 那就是 8080 > 101:80
就這樣
因為你第一行寫你有兩個,我以為你就是兩個
兩個對兩台很好解,但你現在又說你只有一個
只有一個的狀況下,只能拆服務,用服務的PORT來猜
但如果是通訊協定,這台你還要看一下說明書,通訊協定要怎麼設定
還有,沒有人全開全轉的,會死人的

我要發表回答

立即登入回答