iptables網(wǎng)絡(luò)管理器

   前些日子,組長(zhǎng)要我實(shí)現(xiàn)一個(gè)功能,將告警郵件中的不能訪問(wèn)的生產(chǎn)機(jī)器ip+端口轉(zhuǎn)化為辦公環(huán)境可以訪問(wèn)的域名(已經(jīng)通過(guò)端口映射配置)。報(bào)警程序是用go語(yǔ)言編寫的,如果直接將go語(yǔ)言配置文件中的ip+端口變成域名的話,程序就不能正常運(yùn)行了,可linux的hosts文件不支持直接將域名解析到端口映射的級(jí)別(順便說(shuō)一句windows好像可以,即hostname可以在windows的hosts文件中解析為1.2.3.4:1234這種形式)。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到畢節(jié)網(wǎng)站設(shè)計(jì)與畢節(jié)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋畢節(jié)地區(qū)。

   于是大概想的這種策略:

    1.將linux機(jī)器上的/etc/hosts中添加域名到ipA的配置;

    2.想辦法將ipA對(duì)80端口的訪問(wèn)重新定向到ipA的指定端口(比如520)。

   第一步好做,但是第二步呢?用Apache端口映射功能?還要在裝個(gè)apache web server;于是想到了linux自帶的iptables。

   很多搭建過(guò)rac、dg、hadoop這類需要多臺(tái)機(jī)器協(xié)同工作的程序的朋友應(yīng)該都接觸過(guò)iptables,而且通常都是iptables -F,清空管理規(guī)則,達(dá)到關(guān)閉防火墻的效果。其實(shí)防火墻只能說(shuō)是iptables的一部分功能,感覺更準(zhǔn)確的說(shuō)iptables是一個(gè)網(wǎng)絡(luò)管理工具,不僅能夠?qū)C(jī)器接收到的網(wǎng)絡(luò)數(shù)據(jù)丟棄或者接受,還可以進(jìn)行其他操作比如轉(zhuǎn)發(fā)、記錄日志等等。

   iptables的大體結(jié)構(gòu)就像下面這的圖展示的(圖片來(lái)自互聯(lián)網(wǎng))

    iptables 網(wǎng)絡(luò)管理器

   主要這么看這張圖:

    1.iptables的規(guī)則可以在五個(gè)地方(這里專業(yè)叫法叫做鏈)起作用:路由規(guī)則之前(prerouting)、轉(zhuǎn)發(fā)過(guò)程中(forward)、路由規(guī)則之后(postrouting)、程序處理之前(input)、程序處理之后(output);

    2.iptables主要有這三種功能(這里可以叫做三張表,畢竟規(guī)則就像數(shù)據(jù)庫(kù)中的記錄記錄在數(shù)據(jù)表一樣記錄在這):地址轉(zhuǎn)化(nat)、包過(guò)濾(filter)、修改包(mangle)(raw用的不多,不是很懂,在網(wǎng)上看了一下好像是優(yōu)先級(jí)高,可以避免nat等規(guī)則匹配提高效率)。

   以perrouting為例,在這里可以通過(guò)iptables的一系列規(guī)則匹配,對(duì)發(fā)送過(guò)來(lái)的數(shù)據(jù)包進(jìn)行修改或者地址轉(zhuǎn)化;以forward為例,在經(jīng)過(guò)路由表匹配發(fā)現(xiàn)目標(biāo)機(jī)器不是這臺(tái)機(jī)器的時(shí)候,可以對(duì)數(shù)據(jù)包修改或者過(guò)濾其他的就不重復(fù)說(shuō)明了。

   下面說(shuō)說(shuō)iptables的語(yǔ)法(圖片來(lái)自互聯(lián)網(wǎng))

    iptables 網(wǎng)絡(luò)管理器

    大體語(yǔ)法是這樣的

    iptables -t 指明哪張表 -(A追加,I插入等等) 鏈名 匹配規(guī)則 特定操作(redirect、drop、accept等等)

   以上面的需求來(lái)看,現(xiàn)在我想在訪問(wèn)80端口的時(shí)候,將訪問(wèn)重新定向到520端口。那么就可以在prerouting的時(shí)候,將訪問(wèn)本機(jī)80端口的數(shù)據(jù)包變成訪問(wèn)本機(jī)520端口的數(shù)據(jù)包

   于是以root用戶執(zhí)行如下命令

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRET --to-port 520

   這樣就達(dá)到想要的效果,即在go語(yǔ)言中配置域名,但是仍然能夠訪問(wèn)正確的ip+端口。

名稱欄目:iptables網(wǎng)絡(luò)管理器
文章鏈接:http://muchs.cn/article40/gdeoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、商城網(wǎng)站關(guān)鍵詞優(yōu)化、網(wǎng)站排名定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名