linux下簡單好用的工具rinetd,實現(xiàn)端口映射/轉(zhuǎn)發(fā)/重定向
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站十余年經(jīng)驗成就非凡,專業(yè)從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文平臺,廣告投放平臺等。十余年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:13518219792,我們期待您的來電!
Linux下做地址NAT有很多種方法。比如haproxy、nginx的4層代理,linux自帶的iptables等都能實現(xiàn)。haproxy、nginx就不說了,配置相對簡單;iptables配置復(fù)雜,概念也比較多DNAT、SNAT、PREROUTING、POSTROUTING等等。其實,Linux下有一個叫rinetd的工具,安裝簡單,配置也不復(fù)雜。
1.下載安裝
[root@centos-01 ~]# wget --no-check-certificate http://www.boutell.com/rinetd/http/rinetd.tar.gz //使用“不檢查證書” 加入no-check-certificate 即可成功安裝
[root@centos-01 ~]# tar zxvf rinetd.tar.gz
[root@centos-01 ~]# cd rinetd && sed -i 's/65536/65535/g' rinetd.c
[root@centos-01 ~]# mkdir /usr/man
[root@centos-01 ~]# make && make install
cc -DLINUX -g -c -o rinetd.o rinetd.c
rinetd.c:176:6: 警告:與內(nèi)建函數(shù)‘log’類型沖突 [默認(rèn)啟用]
void log(int i, int coSe, int result);
^
cc -DLINUX -g -c -o match.o match.c
gcc rinetd.o match.o -o rinetd
[root@centos-01 ~]# install -m 700 rinetd /usr/sbin
[root@centos-01 ~]# install -m 644 rinetd.8 /usr/man/man8
2.編輯配置文件
[root@centos-01 ~]# vim /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080
0.0.0.0 60022 192.168.0.103 60022
0.0.0.0 80 192.168.0.10 80
logfile /var/log/rinetd.log
說明(0.0.0.0表示本機(jī)綁定所有可用地址)
將所有發(fā)往本機(jī)8080端口的請求轉(zhuǎn)發(fā)到172.19.94.3的8080端口
將所有發(fā)往本機(jī)60022端口的請求轉(zhuǎn)發(fā)到192.168.0.103的60022端口
將所有發(fā)往本機(jī)的80端口請求轉(zhuǎn)發(fā)到192.168.0.10的80端口
命令格式是:
bindaddress bindport connectaddress connectport
綁定的地址 綁定的端口 連接的地址 連接的端口
或
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
3.啟動與關(guān)閉程序
[root@centos-01 ~]# rinetd -c /etc/rinetd.conf
[root@centos-01 ~]# pkill rinetd
4.校驗
[root@centos-01 ~]# netstat -tanulp|grep rinetd
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 27683/rinetd
tcp 0 0 0.0.0.0:60022 0.0.0.0:* LISTEN 27683/rinetd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 27683/rinetd
需要注意:
1.rinetd.conf中綁定的本機(jī)端口必須沒有被其它程序占用
2.運(yùn)行rinetd的系統(tǒng)防火墻應(yīng)該打開綁定的本機(jī)端口
因為我們的跳板機(jī)都是轉(zhuǎn)發(fā)的數(shù)據(jù)庫等其他的端口,運(yùn)行了一段時間后發(fā)現(xiàn)rinetd服務(wù)就掛了,沒辦法就執(zhí)行寫個腳本檢查pid號,如果掛了就重啟。
[root@centos-01 ~]# vim /data/scripts/rinetd_check.sh
#!/bin/bash
#rinetd pid check
pid=`ps -ef |grep [r]inetd`
if [ $? -ne 0 ]
then
rinetd -c /etc/rinetd.conf
echo "Interrupt restart time:" `date`
else
echo rinetd pid is running...
echo date is : `date`
fi
#加入定時任務(wù)(每兩個小時監(jiān)測一次)
[root@centos-01 ~]# crontab -l
0 */2 * * * sh /data/scripts/rinetd_check.sh >> /data/logs/rinetd.log 2>&1
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。