問題概述
很多應(yīng)用程序安裝編譯直接使用root用戶是不行的,會(huì)報(bào)莫名的錯(cuò)誤。所以一般在Linux中編譯安裝程序都是使用非root的普通用戶。普通用戶在發(fā)布web程序監(jiān)聽1024一下的端口時(shí)候會(huì)報(bào)權(quán)限異常錯(cuò)誤。比如我們發(fā)布web經(jīng)常用的80端口就沒辦法綁定。
解決方法有兩種:
1、使用sudo用root權(quán)限去執(zhí)行綁定命令。Ubuntu系統(tǒng)里面這樣操作就需要更改/etc/sudoer這個(gè)文件,就是維護(hù)sudo。不太推薦。
2、使用iptables命令轉(zhuǎn)發(fā)。
使用root用戶執(zhí)行下面的代碼:
iptables -t nat -A PREROUTING -p tcp --dport 目標(biāo)端口 -j REDIRECT --to-port 源端口
舉個(gè)例子,Nginx運(yùn)行在8080端口,如果希望將其映射到80端口,方法為:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080