亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: iptables 域名轉(zhuǎn)向 [打印本頁(yè)]

作者: triumph    時(shí)間: 2008-11-05 17:00
標(biāo)題: iptables 域名轉(zhuǎn)向
通過iptables,將同一IP不同域名轉(zhuǎn)向內(nèi)網(wǎng)的不同服務(wù)器

目前的情況是iptables進(jìn)行域名解析,由于IP相同,導(dǎo)致所有域名的請(qǐng)求都轉(zhuǎn)向同一服務(wù)器而不是對(duì)應(yīng)域名的服務(wù)器

謝謝

舉例說明:

兩個(gè)域名:www.demo1.com,www.demo2.com
使用同一IP:61.141.77.31

網(wǎng)關(guān)IP設(shè)定:內(nèi)網(wǎng)192.168.0.2,外網(wǎng)61.141.77.31

web服務(wù)器1 IP:192.168.0.111
web服務(wù)器2 IP:192.168.0.222

現(xiàn)在要把訪問www.demo1.com的請(qǐng)求通過網(wǎng)關(guān)轉(zhuǎn)發(fā)192.168.0.111
把訪問www.demo2.com的請(qǐng)求通過網(wǎng)關(guān)轉(zhuǎn)發(fā)192.168.0.222

問題是在IPTABLES里設(shè)定后,所有請(qǐng)求都轉(zhuǎn)向了192.168.0.111

-A PREROUTING -d www.demo1.com -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.111
-A PREROUTING -d www.demo2.com -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.222

原因就在于IPTABLES在執(zhí)行第一條指令時(shí)先對(duì)www.demo1.com進(jìn)行了域名解析,規(guī)則實(shí)際上變成:

-A PREROUTING -d 61.141.77.31 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.111

當(dāng)有訪問www.demo2.com的請(qǐng)求時(shí),IPTABLES認(rèn)為就是對(duì)61.141.77.31的請(qǐng)求,結(jié)果也轉(zhuǎn)向192.168.0.111
作者: funix_zjx    時(shí)間: 2008-11-05 23:49
標(biāo)題: 回復(fù) #1 triumph 的帖子
你這個(gè)需求是辦不到的. 除非兩個(gè)web server用不同的端口
作者: 13251947    時(shí)間: 2008-11-06 10:13
內(nèi)網(wǎng)改成一個(gè)主機(jī),域名由apache來判斷,做域名的虛擬主機(jī)

要么你在網(wǎng)關(guān)的hosts里加一下解析,看看有沒有效果

[ 本帖最后由 13251947 于 2008-11-6 10:14 編輯 ]
作者: vermouth    時(shí)間: 2008-11-06 12:35
iptables 需要加模塊才能對(duì)域名做限制吧。
作者: defage    時(shí)間: 2008-11-06 13:39
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: triumph    時(shí)間: 2008-11-11 14:13
其實(shí)是這樣的, 我在IDC有1臺(tái)機(jī)器, centos5  我用xen在上面虛擬了4個(gè)linux ,我想給每個(gè)linux 一個(gè)域名,然后通過域名訪問linux上的服務(wù) 比如 web  mysql  等等,
請(qǐng)問這要怎么做啊
作者: kns1024wh    時(shí)間: 2008-11-13 22:13
標(biāo)題: 回復(fù) #1 triumph 的帖子
如果你結(jié)合tc就是可以的
作者: 劍次狼    時(shí)間: 2008-11-14 10:39
手上現(xiàn)在沒測(cè)試環(huán)境,你可以試試這樣可以不
-A PREROUTING -m string --algo bm --string "www.demo1.com" -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.111
-A PREROUTING -m string --algo bm --string "www.demo1.com" -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.222
作者: kns1024wh    時(shí)間: 2008-11-14 14:11
標(biāo)題: 回復(fù) #8 劍次狼 的帖子
打上標(biāo)記也是可以的
通過防火墻的訪問標(biāo)記,指定路由信息更加的合理
作者: wendaozhe    時(shí)間: 2009-01-14 09:58
原帖由 kns1024wh 于 2008-11-13 22:13 發(fā)表
如果你結(jié)合tc就是可以的

請(qǐng)教,何解?
作者: chenyx    時(shí)間: 2009-01-14 10:01
試試nginx做前端
作者: wendaozhe    時(shí)間: 2009-01-14 10:01
原帖由 劍次狼 于 2008-11-14 10:39 發(fā)表
手上現(xiàn)在沒測(cè)試環(huán)境,你可以試試這樣可以不
-A PREROUTING -m string --algo bm --string "www.demo1.com" -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.111
-A PREROUTING -m string --al ...

經(jīng)測(cè)試無(wú)效。
作者: wendaozhe    時(shí)間: 2009-01-14 10:06
原帖由 chenyx 于 2009-1-14 10:01 發(fā)表
試試nginx做前端

就是想在iptables、tc、squid、中解決,squid太復(fù)雜,得用rewrite url ,幻想不增加服務(wù)的情況下的簡(jiǎn)單解決方法。
作者: wendaozhe    時(shí)間: 2009-01-14 10:43
原帖由 kns1024wh 于 2008-11-14 14:11 發(fā)表
打上標(biāo)記也是可以的
通過防火墻的訪問標(biāo)記,指定路由信息更加的合理

肯定是不行的,iptables只認(rèn)ip,最終不同的域名還是會(huì)解析到同一個(gè)ip!
作者: wendaozhe    時(shí)間: 2009-01-14 10:46
看來是無(wú)解了,只有仰仗nginx、varnish等來解決了!
作者: platinum    時(shí)間: 2009-01-14 11:42
目前的 iptables 是無(wú)法實(shí)現(xiàn)的
因?yàn)?iptables 工作在網(wǎng)絡(luò)層,他看到的僅僅是數(shù)據(jù)包
domain 存放在兩種數(shù)據(jù)包中
1、DNS 請(qǐng)求的 udp 包
2、HTTP 請(qǐng)求頭部的 host 字段

對(duì)于 1 來說,我們得不到它,因?yàn)?DNS 請(qǐng)求是去放用戶設(shè)置的 DNS 地址的,而且即便獲得到了也做不了什么
對(duì)于 2 來說,我們雖然可以獲得 host 字段具體域名,但如果在獲得后再轉(zhuǎn)向的話,前面的 connection 已經(jīng)建立了,后面突然轉(zhuǎn)向就未被了 TCP 工作原理,理論上是無(wú)法實(shí)現(xiàn)的

但是,利用 squid 或者 nginx 卻是可以實(shí)現(xiàn)的,他們相當(dāng)于七層代理,完全把 HTTP 請(qǐng)求截獲,換成新的請(qǐng)求發(fā)向內(nèi)網(wǎng),得到信息再回傳給客戶,這樣可行

至于前面有人說的 mark、tc 等,都是理論上行不通的,違反了 OSI 七層模型中 TCP 傳輸原理
作者: wendaozhe    時(shí)間: 2009-01-14 12:24
標(biāo)題: 回復(fù) #16 platinum 的帖子
十分感謝,講得很透!
作者: gamester88    時(shí)間: 2009-10-12 13:46
標(biāo)題: 回復(fù) #16 platinum 的帖子
拓?fù)?br />                                   ISP  221.11.1.67
                                    |                                              /192.168.1.254
                                    |              10.0.0.2543           /
         221.11.1.68     路由器       -----------           防火墻   -------------交換機(jī)
                                     10.0.0.254                                       |
                                                                              www服務(wù)器 192.168.1.253
                                                                               mail服務(wù)器 192.168.1.250


白金版主,我今天也是要做這個(gè)
  1. /sbin/iptables -t nat -A PREROUTING -d www.nihao.com -p tcp -dport 80 -j DNAT --to 192.168.1.253
  2. /sbin/iptables -t nat -A PREROUTING -d mail.nihao.com -p tcp -dport 80 -j DNAT --to 192.168.1.250
復(fù)制代碼

第一種情況:
也就是說DNS解析的時(shí)候
www.nihao.com 為   221.11.1.68
mail.nihao.com也為   221.11.1.68
的話,需要加nginx來做代理,從外網(wǎng)可以訪問這兩個(gè),是吧

第二種情況:
DNS解析的時(shí)候
www.nihao.com 為 221.11.1.68
mail.nihao.com   為221.11.1.69
的時(shí)候,外網(wǎng)直接就可以訪問了是吧

[ 本帖最后由 gamester88 于 2009-10-12 13:47 編輯 ]
作者: bigarade    時(shí)間: 2009-10-12 17:15
這個(gè)起虛擬主機(jī)可行不?
作者: gamester88    時(shí)間: 2009-10-15 09:16
標(biāo)題: 回復(fù) #18 gamester88 的帖子
我這個(gè)是兩個(gè)外網(wǎng)的地址
在路由器上做了221.11.1.68和221.11.1.69的80端口映射到10.0.0.253上的80和8080了,然后在防火墻上
  1. # iptables -t nat -A PREROUTING -d mail.nihao.com -p tcp -dport 80 -j DNAT --to 192.168.1.253
  2. iptables v1.4.3: multiple -d flags not allowed
  3. Try `iptables -h' or 'iptables --help' for more information.
復(fù)制代碼

報(bào)錯(cuò),于是
iptables -t nat -A PREROUTING -d 10.0.0.253 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.253
iptables -t nat -A PREROUTING -d 10.0.0.253 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.250:80
這樣在外網(wǎng)輸入兩個(gè)域名都可以了

問老大還有別的簡(jiǎn)潔辦法沒
作者: cexoyq    時(shí)間: 2009-10-31 16:20
出個(gè)餿主意,我并沒測(cè)試過,樓主可以試下。
樓主在IPTABLES主機(jī)里的hosts文件里寫入:
www.demo1.com 61.141.77.31
www.demo2.com 61.141.77.30
,
然后再:
-A PREROUTING -d www.demo1.com -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.111
-A PREROUTING -d www.demo2.com -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.222


不知道成不成,各位大大不要見笑。首次發(fā)貼幫頂.
作者: itxx    時(shí)間: 2012-03-21 12:02
回復(fù) 20# gamester88

這下面是網(wǎng)上看到的做法,你可以參考下看是否合用,1.211和1.212相當(dāng)于外網(wǎng)IP,122網(wǎng)段相當(dāng)于內(nèi)網(wǎng)IP。

iptables -I FORWARD -i eth0 -o virbr0 -p tcp -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -d 192.168.1.211 -i eth0 -p tcp -j DNAT --to-destination 192.168.122.41
iptables -t nat -A PREROUTING -d 192.168.1.212 -i eth0 -p tcp -j DNAT --to-destination 192.168.122.42
iptables -t nat  -A POSTROUTING -s 192.168.122.41 -d ! 192.168.122.0/255.255.255.0 -j SNAT --to-source 192.168.1.211
iptables -t nat  -A POSTROUTING -s 192.168.122.42 -d ! 192.168.122.0/255.255.255.0 -j SNAT --to-source 192.168.1.212
   




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2