端口轉發工具rinetd的安裝與配置


    端口映射和轉發在實際應用中非常常見,比如一個局域網只有一台服務器可以被互聯網訪問到,那么如果想通過互聯網訪問局域網中其他的服務,最常用的方式就是在這一台機器上開放端口,然后轉發至局域網中其他主機的端口,實現內網服務的訪問,而在互聯網中就好像直接使用這個服務一樣沒什么變化,端口轉發的大致流程如下圖所示:

    

     上面這個是一個簡單的示例,其中ip都是隨便寫的,過程很簡單就是代理服務器對應的公網ip為:212.121.87.168,也就是訪問公網ip就可以直接訪問到37.58.1.2,同樣訪問18080端口就相當於內網的8080端口,這個ip和端口映射的過程是由路由器來實現的,另外在server1服務器上有一個redis服務,端口為6379,我們現在就是要實現將代理服務器的8080端口轉發至server1的6379端口,直接通過訪問代理服務器來實現server1 redis服務的訪問.  正常情況下這類的轉發過程很多工具都可以實現,比如nginx,haproxy以及linux自帶的iptables或者firewalld服務都可以通過配置來實現,本文主要敘述一款rinetd的工具來實現端口轉發,安裝和配置都比較簡單,用起來也比較好用,具體安裝配置如下:

  rinetd官方下載地址為:https://boutell.com/rinetd/ 進入后直接找到WHERE TO GET下載linux版本:,下載成功后接下來我們需要在代理服務器上進行安裝,從而實現將端口轉發至server1,分別執行下面命令安裝:

tar -xvzf rinetd.tar.gz
cd rinetd/

  執行編譯: make 

  然后如果現在直接執行安裝會出現/usr/man找不到的錯誤,因為年代比較久遠的原因,默認rinetd會將幫助寫入/usr/man下,而linux可能不存在/usr/man這個目錄,所以會寫入失敗報錯,現在只需要手動執行: mkdir /usr/man 

  然后安裝: make install 即可成功,執行 rinetd -v 可以查看版本號,最新的是0.62

  rinetd配置文件默認不存在需要自己手動創建,執行: vim /etc/rinetd.conf ,然后添加如下內容:

0.0.0.0 8080 37.58.1.21 6379

  配置非常簡單,第一個是rinetd綁定本地代理服務器的地址,0.0.0.0是綁定所有的網卡地址,當然也可以直接綁定ip地址即37.58.1.2;后面8080是rinetd監聽的轉發端口;第三個是轉發到目標服務器的ip,這里是server1的地址即37.58.1.21,最后6379是轉發到目標服務器的端口,這里服務為redis,這條配置生效后,會將本地8080端口收到的所有數據原封不動的發送至目標服務器的指定端口,另外需要注意目標服務器的實際ip和端口號必須被正確綁定才可以,其中ip一定不要綁定127.0.0.1而是實際ip,否則會報錯.  配置完畢后就可以執行下面命令啟動rinetd服務了

rinetd -c /etc/rinetd.conf

  其中-c參數指定配置文件的路徑,如果不加默認就是/etc/rinetd.conf,啟動后查看進程正常存在並且端口正常綁定即可測試使用,這時候在內網直接連接37.58.1.2 8080或者在外網直接連接212.121.87.168 18080,應該都可以正常訪問到server1上的6379了. 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM