rinted

Rinetd是為在一個UnixLinux作業系統中為重定向傳輸控制協定(TCP)連線的一個工具。Rinetd是單一過程的伺服器,它處理任何數量的連線到在配置檔案etc/rinetd中指定的地址/連線埠對。儘管rinetd使用非閉鎖I/O運行作為一個單一過程,它可能重定向很多連線而不對這台機器增加額外的負擔。

簡介,用途,使用,

簡介

Rinetd是為在一個Unix和Linux作業系統中為重定向傳輸控制協定(TCP)連線的一個工具。Rinetd是單一過程的伺服器,它處理任何數量的連線到在配置檔案etc/rinetd中指定的地址/連線埠對。儘管rinetd使用非閉鎖I/O運行作為一個單一過程,它可能重定向很多連線而不對這台機器增加額外的負擔。

用途

使用iptables 很容易將TCP 和UDP 連線埠從防火牆轉發到內部主機上。但是如果您需要將流量從專用地址轉發到甚至不在您當前網路上的機器上,又該怎么辦呢?可嘗試另一個套用層連線埠轉發程式,如rinetd。
這些代碼有點古老,但很短小、高效,對於解決這種問題來說是非常完美的。

使用

解壓後,make && make install 就可以了
程式路徑 /usr/sbin/rinetd
需要配置檔案 /etc/rinetd.conf
配置檔案格式很簡單:
[Source Address] [Source Port] [Destination Address] [Destination Port]
在每一單獨的行中指定每個要轉發的連線埠。源地址和目的地址都可以是主機名或IP 地址,IP 地址0.0.0.0 將rinetd 綁定到任何可用的本地IP位址上:
0.0.0.0 8080
0.0.0.0 3306 192.168.1.77 3306
0.0.0.0 88 127.0.0.1 80
直接運行程式就可以了看到占用連線埠服務了。
上面是把訪問本機的8080連線埠的服務都遷移到機器上,把訪問本地的資料庫的轉移到192.168.1.77上,把訪問本地88連線埠的指向80連線埠服務。
可是阿權發現這個只是做了個代理的功能,比如最後一條得到的訪問者IP:
REMOTE_ADDR 192.168.1.77
也就是沒法獲取到用戶ip,這個比較可惜,但是對於IP訪問的服務做遷移還是不錯的,比如資料庫服務,可以在保留很多程式的連線方式不變的情況下,直接切換資料庫,也就是在主資料庫出問題了,可以立刻用這種方法轉換到備份資料庫。
所以,伺服器主備模式的情況還是可以備一個的,這樣保證準時切換,可以做shell程式判斷連線埠服務是否正常,如果實在不正常或者無法服務,就自動切換到備份的,多方便呀~
當你的伺服器要重新編號或物理位置變化而改變IP位址時你就能切實感受到這個工具的好處了,因為服務看上去就像保留在原始IP 地址(即便它們實際上完全是來自其他網路)上。如果僅僅是綁定大於1024的連線埠,那么rinetd就不需要以root賬戶來運行。這種小工具很值得放在身邊,以便隨時調用TCP 連線埠間接定址

相關詞條

熱門詞條

聯絡我們