1. 程式人生 > 其它 >[喵咪Liunx(3)]埠轉發工具rinetd

[喵咪Liunx(3)]埠轉發工具rinetd

[喵咪Liunx(3)]埠轉發工具rinetd

前言

今天筆者為大家帶來了另外一款非常優秀的Liunx工具,這個工具有什麼用呢?它能幫助我們解決一些特定場景下的埠轉發需求,這個工具就是runetd,runetd可以非常方便的進行埠轉發的設定,那就讓我們一同來開始本次的學習吧!

附上:

喵了個咪的部落格:w-blog.cn

1. 埠轉發是什麼

我們先來了解幾個名詞的含義:埠對映,埠轉發,反向代理,一同分析他們的相同點以及區別

埠對映

如果你去網上查詢埠對映,大部分都是說路由器ADSL把公網IP對映到內網,這個一般是從路由器中設定的,對公網IP某個埠進行對映到路由器下的某個埠,通過訪問這個外網地址就可以請求到這臺伺服器了,使用場景最平凡的就是大家購買的AWS或UCloud的伺服器,他們伺服器的公網都是通過埠對映的方式實現的.

埠轉發

埠轉發就實現的功能效果和埠對映幾乎一樣,這兩個名詞的邊界也比較含糊不清,如果上面把埠對映解釋為從是處理路由器公網到內網,可以理解埠轉發是系統級別的.一個簡單的例子你的tomcat預設使用內網8080埠,你需要在80埠上去訪問,這個時候就需要把自己的80埠轉發到8080埠,訪問80埠的時候會被系統把請求轉發到8080埠上接受.

反向代理

反向代理我們最常見使用的就是Nginx反向代理,通用也能實現使用者請求80埠代理給本機的8080埠這個業務,但是反向代理和埠轉發唯一不同的是他們的網路層次,反向代理是應用層面的通俗易懂的說就是HTTP,反向代理伺服器接受到HTTP請求會在建立一條HTTP請求到請求的伺服器獲取返回結果之後在返回給請求的伺服器,但是埠轉發就不同了,埠轉發是TCP/IP層的也就是說所有的TCP都可以被轉發,比如資料庫連線,redis連線這個是反向代理做不到的

2. 使用rinetd進行埠轉發

大家瞭解埠轉發之後大致明白在什麼場景下應該來使用了,我們通常配置埠轉發時多半會使用Liunx的iptables來進行,但是這樣有諸多不方便的地方,端口占用不提示,關閉不方便等等,後來就有了rinetd這個快速埠轉發工具的誕生,我們來了解怎麼使用rinetd來配置一個埠轉發.

下載軟體:

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

安裝軟體:

tar xzvf rinetd.tar.gz
cd rinetd
make
make install

編輯配置檔案加入你的轉發規則 :

內容格式:源IP 源埠 要跳轉的IP 要跳轉的埠

比如需要通過80埠訪問到8080埠的內容

0.0.0.0 8080 0.0.0.0 80

啟動rinetd :

rinetd -c /etc/rinetd.conf

在啟動時候如果你的80埠被佔用會有報錯資訊

檢視轉發規則是否成功 :

netstat -tanulp|grep rinetd

3. 總結

我們一同瞭解了關於埠對映,埠轉發,反向代理之前的區別,並且使用rinetd快速設定埠轉發規則,在後面的某些特定場景合理的使用以上技術可以解決很多特定問題,也希望對能夠有幫助!

注:筆者能力有限有說的不對的地方希望大家能夠指出,也希望多多交流!