linuxはrinetdツールによるポートマッピング/転送/リダイレクト


現在、オンライン上に需要があり、あるソースのアドレスにアクセスするには、固定された出口を通って出かける必要があります.では、ここで考えられる転送のいくつかの方法:1.iptablesはポートを転送し、カーネル転送を開く必要があります.iptablesルールをいくつか設定すればいいです.2.rinetdはポートを転送し、転送ルールは反響エージェントやnatに似ており、構成が簡単です.構成エラーが発生しても、ネットワークアクセスの問題は発生しません.rinetdのポート転送リファレンス公式サイトのアドレスを紹介します.https://www.boutell.com/rinetd/下は直接乾物です
# tar -zxvf rinetd.tar.gz -C /usr/local
# cd rinetd 
[root@localhost rinetd]# make
cc -DLINUX -g   -c -o rinetd.o rinetd.c
rinetd.c:176: warning: conflicting types for built-in function ‘log’
cc -DLINUX -g   -c -o match.o match.c
gcc rinetd.o match.o -o rinetd
[root@localhost rinetd]# make install
install -m 700 rinetd /usr/sbin
install -m 644 rinetd.8 /usr/man/man8
install: cannot create regular file `/usr/man/man8': No such file or directory
make: *** [install] Error 1
[root@localhost rinetd]# mkdir -p /usr/man/
[root@localhost rinetd]# make clean
[root@localhost rinetd]# make 
cc -DLINUX -g   -c -o rinetd.o rinetd.c
rinetd.c:176: warning: conflicting types for built-in function ‘log’
cc -DLINUX -g   -c -o match.o match.c
gcc rinetd.o match.o -o rinetd
[root@localhost rinetd]# make install
install -m 700 rinetd /usr/sbin
install -m 644 rinetd.8 /usr/man/man8
[root@localhost rinetd]#
#          
install -m 700 rinetd /usr/sbin
install -m 644 rinetd.8 /usr/man/man8

プログラムパス/usr/sbin/rinetdプロファイル/etc/rinetdを作成する.conf、コンテンツフォーマット:ソースIPソースポートがジャンプするIPがジャンプするポート;転送するポートを個別の行ごとに指定します.ソースアドレスと宛先アドレスは、ホスト名またはIPアドレスであってもよく、IPアドレス0.0.0.0はrinetdを利用可能な任意のローカルIPアドレスにバインドする:例えば、ホスト81ポートに送信されたすべての要求をアドレスの80ポートに転送する
[root@localhost rinetd]# vim /etc/rinetd.conf
allow *.*.*.*                //       ip    
0.0.0.0 81   IP 80                //      
logfile /var/log/rinetd.log        //     log

#      rinetd      

[root@localhost rinetd]# /usr/sbin/rinetd 
  
[root@localhost rinetd]# rinetd -c /etc/rinetd.conf 
[root@localhost rinetd]# netstat -antulp|grep -i rinetd
tcp        0      0 0.0.0.0:81                0.0.0.0:*                   LISTEN      5849/rinetd         
[root@localhost rinetd]# killall -9 rinetd    pkill -9 rinetd
[root@localhost rinetd]# netstat -antulp|grep -i rinetd
[root@localhost rinetd]# rinetd 
[root@localhost rinetd]# netstat -antulp|grep -i rinetd
tcp        0      0 0.0.0.0:81                0.0.0.0:*  
                 LISTEN      5861/rinetd
                 
                 
                 
    
pkill rinetd  ##    
rinetd -c /etc/rinetd.conf  ##    
       /etc/rc.local           

    
netstat -antup

    
1.rinetd.conf                   
2.  rinetd                 
  :
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT

これでアクセステストができます!本機81ポートへのアクセス要求は全て、宛先IPの80ポートへ転送される