您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Linux系統中rinetd如何實現快速端口轉發,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
[root@localhost src]# wget http://www.boutell.com/rinetd/http/rinetd.tar.gz [root@localhost src]# tar -zxvf rinetd.tar.gz [root@localhost src]# cd rinetd [root@localhost rinetd]# vim Makefile#修改下Makefile CFLAGS=-DLINUX -g rinetd: rinetd.o match.o gcc rinetd.o match.o -o rinetd install: rinetd install -m 700 rinetd /usr/sbin install -m 644 rinetd.8 /usr/local/share/man/man8 [root@localhost rinetd]# make && make install
登錄后復制
這樣rinetd就安裝好了,使用也很簡單可以指定配置文件,一般是放在/etc/rinetd.conf使用-c參數指定配置文件,rinetd是依賴于配置文件工作的
[root@localhost rinetd]# rinetd --help Usage: rinetd [OPTION] -c, --conf-file FILE read configuration from FILE -h, --help display this help -v, --version display version number Most options are controlled through the configuration file. See the rinetd(8) manpage for more information.
登錄后復制
更多的參數選項可以參看man rinetd在此就不做過多的說明,利用rinetd可以實現快速高效的端口轉發,舉一個簡單的例子,在三層交換機中的2個vlan:192.168.1.0/24、192.168.2.0/24,2個vlan間內網是互通的但是192.168.1.0/24中沒有做任何的策略路由,只有內網而192.168.1.0/24在外有一個公網ip做了內部服務器的NAT端口映射,即DZM區,而在外部需要訪問192.168.2.0/24內部的某一主機上的相關資源,此時就需要做相應的端口轉發,而在2個vlan中分別有192.168.2.22和192.168.1.240,2臺主機用rinetd來轉發,就在192.168.2.22的主機上的/etc/rinetd.conf文件中添加一行配置:
0.0.0.0 80 192.168.1.240 80 #source_address source_port destination_address destination_port
登錄后復制
當然利用iptables的nat表轉發也是一樣,nat表如下:
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [3:226] :OUTPUT ACCEPT [3:226] -A PREROUTING -d 192.168.2.22/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.240:80 -A POSTROUTING -d 192.168.1.240/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.2.22 COMMIT
登錄后復制
同時在iptables的filter表上FORWARD鏈上也要做相應的放行:
-A FORWARD -s 192.168.1.0/24 -j ACCEPT -A FORWARD -s 192.168.2.0/24 -j ACCEPT -A FORWARD -d 192.168.1.0/24 -j ACCEPT -A FORWARD -d 192.168.2.0/24 -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited
登錄后復制
二者之間是等效的,如此可見rinetd的工具在實際生產環境中是非常高效的,這里要注意兩點:
一、無論是使用rinetd或者是iptables的nat表都需要開啟內核ip地址轉發的功能,即net.ipv4.ip_forward = 1;
二、是在filter表中開相應的端口,如果是使用iptables的nat表來轉發還要開放FORWARD鏈以實現轉發
三、使用rinetd中都是把端口當成服務監聽,所以是長連接,如果是ssh這樣的服務在使用端口轉發后會在內網連接上的服務上殘余很多進程,所以在使用rinetd一般是臨時快速實現端口轉發而用的,如果是長時間使用或者一些特殊場景下rinetd還是不如iptables的
關于“Linux系統中rinetd如何實現快速端口轉發”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。