Linux下Tomcat使用80端口

應用場景


不少狀況下,咱們在linux服務器上安裝了tomcat或者nginx之類的軟件.
當咱們想用80端口的時候,若是不用root用戶啓動就會報錯.

這是由於,對於linux系統而言,1024如下的端口,普通用戶是沒法使用的.
網上關於這方面的解決方案有兩種
一種呢就是什麼給文件root權限.
還有一種就是作端口的跳轉. 可能端口跳轉可能比較安全吧. 因此我主要配置了端口跳轉的方式linux


IPTABLES


在這裏咱們主要作的是本機的端口跳轉, 主要說下如何設置以及刪除.
關於iptables的詳細信息,能夠參考網上不少資料.


添加一個端口的映射


如今咱們要作一件事情,假設咱們的linux上安裝了tomcat.默認訪問端口是8080.
如今我想作到當用戶訪問80端口的時候就能訪問到tomcat了.
只須要在root用戶下執行命令nginx

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端口.

測試以下 :瀏覽器

image.png


如何刪除規則


從上面咱們能夠看出,咱們是在 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 若是添加規則訪問沒有達到想要的效果,清楚瀏覽器緩存就能夠了.tomcat

5 以上全部操做重啓之後所有消失.若是要保留操做,請執行 service iptables restart安全








參考: Readiay服務器

相關文章
相關標籤/搜索