1. 程式人生 > >Linux下Tomcat使用80埠

Linux下Tomcat使用80埠

應用場景

很多情況下,我們在linux伺服器上安裝了tomcat或者nginx之類的軟體.
當我們想用80埠的時候,如果不用root使用者啟動就會報錯.
這裡寫圖片描述
這是因為,對於linux系統而言,1024以下的埠,普通使用者是無法使用的.
網上關於這方面的解決方案有兩種,一種呢就是什麼給檔案root許可權.
還有一種就是做埠的跳轉.我覺得可能埠跳轉可能比較安全吧.就著重介紹一下怎麼配置.

IPTABLES

這裡寫圖片描述
在這裡我們主要做的是本機的埠跳轉,我主要說下如何設定以及刪除.
關於iptables的詳細資訊,可以參考網上很多資料.

新增一個埠的對映

現在我們要做一件事情,假設我們的linux上安裝了tomcat.預設訪問埠是8080.
現在我想做到當用戶訪問80埠的時候就能訪問到tomcat了.
只需要在root使用者下執行命令

iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080

這裡寫圖片描述
-t nat : 指出我要操作什麼表.(不寫就表示filter.預設是filter)
-A PREROUTING : A 新增的意思.表示我要在PREROUTING 中新增一個規則
–dport 80 : 如果請求80埠.
–to-port 8080 : 那麼就轉到8080埠.
測試如下 :
這裡寫圖片描述

如何刪除規則

從上面我們可以看出,我們是在 nat表的PREROUTING 中新增的規則.
所以我們就要去nat表的PREROUTING 中刪除這個規則.
這裡寫圖片描述
iptables -t nat -L -nv --line-numbers
這個命令的作用是,列出nat表中的規則,並且給個num.
然後我們就可以利用這個id刪除這個規則了.
如果你不寫-t nat 那麼預設查詢的就是filter表.那麼就無法查詢規則.
這裡寫圖片描述
利用這個語句就可以刪除這個規則了.
-t nat : 表示我要操作這個表,不指明就是filter.
-D : 表示執行刪除操作
PREROUTING : 表示nat表中哪一個鏈. 後面數字1 就是上圖中的num
這裡寫圖片描述

總結

我做了下面幾個實驗,nginx佔用80埠.tomcat佔用8080埠.
開啟nginx,tomcat
1. 如果開啟了轉跳,那麼就訪問不到nginx了.因為訪問80埠的時候一下跳到8080埠去了.
2 關閉埠跳轉,就能訪問到nginx了.
3 從上可以看出,埠跳轉不會佔用埠.
4 如果新增規則訪問沒有達到想要的效果,清楚瀏覽器快取就可以了.
5 以上所有操作重啟以後全部消失.如果要保留操作,請執行 service iptables restart