應(yīng)用場景
很多情況下,我們在linux服務(wù)器上安裝了tomcat或者nginx之類的軟件.
當(dāng)我們想用80端口的時候,如果不用root用戶啟動就會報錯.
這是因?yàn)?對于linux系統(tǒng)而言,1024以下的端口,普通用戶是無法使用的.
網(wǎng)上關(guān)于這方面的解決方案有兩種,一種呢就是什么給文件root權(quán)限.
還有一種就是做端口的跳轉(zhuǎn).我覺得可能端口跳轉(zhuǎn)可能比較安全吧.就著重介紹一下怎么配置.
IPTABLES
在這里我們主要做的是本機(jī)的端口跳轉(zhuǎn),我主要說下如何設(shè)置以及刪除.
關(guān)于iptables的詳細(xì)信息,可以參考網(wǎng)上很多資料.
添加一個端口的映射
現(xiàn)在我們要做一件事情,假設(shè)我們的linux上安裝了tomcat.默認(rèn)訪問端口是8080.
現(xiàn)在我想做到當(dāng)用戶訪問80端口的時候就能訪問到tomcat了.
只需要在root用戶下執(zhí)行命令
iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080
-t nat : 指出我要操作什么表.(不寫就表示filter.默認(rèn)是filter)
-A PREROUTING : A 添加的意思.表示我要在PREROUTING 中添加一個規(guī)則
–dport 80 : 如果請求80端口.
–to-port 8080 : 那么就轉(zhuǎn)到8080端口.
測試如下 :
如何刪除規(guī)則
從上面我們可以看出,我們是在 nat表的PREROUTING 中添加的規(guī)則.
所以我們就要去nat表的PREROUTING 中刪除這個規(guī)則.
iptables -t nat -L -nv --line-numbers
這個命令的作用是,列出nat表中的規(guī)則,并且給個num.
然后我們就可以利用這個id刪除這個規(guī)則了.
如果你不寫-t nat 那么默認(rèn)查找的就是filter表.那么就無法查找規(guī)則.
利用這個語句就可以刪除這個規(guī)則了.
-t nat : 表示我要操作這個表,不指明就是filter.
-D : 表示執(zhí)行刪除操作
PREROUTING : 表示nat表中哪一個鏈. 后面數(shù)字1 就是上圖中的num
總結(jié)
我做了下面幾個實(shí)驗(yàn),nginx占用80端口.tomcat占用8080端口.
開啟nginx,tomcat
1. 如果開啟了轉(zhuǎn)跳,那么就訪問不到nginx了.因?yàn)樵L問80端口的時候一下跳到8080端口去了.
2 關(guān)閉端口跳轉(zhuǎn),就能訪問到nginx了.
3 從上可以看出,端口跳轉(zhuǎn)不會占用端口.
4 如果添加規(guī)則訪問沒有達(dá)到想要的效果,清楚瀏覽器緩存就可以了.
5 以上所有操作重啟以后全部消失.如果要保留操作,請執(zhí)行 service iptables restart
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。