linux rinetd 埠轉發部署
阿新 • • 發佈:2021-10-25
linux下簡單好用的工具rinetd,實現埠對映/轉發/重定向
Rinetd是為在一個Unix和Linux作業系統中為重定向傳輸控制協議(TCP)連線的一個工具。Rinetd是單一過程的伺服器,它處理任何數量的連線到在配置檔案etc/rinetd中指定的地址/埠對。儘管rinetd使用非閉鎖I/O執行作為一個單一過程,它可能重定向很多連線而不對這臺機器增加額外的負擔。
官網地址:http://www.boutell.com/rinetd
軟體下載:wgethttp://www.boutell.com/rinetd/http/rinetd.tar.gz
軟體安裝:
1 2 3 4 5 |
#解壓安裝 tar zxvf rinetd.tar.gz
cd rinetd
make
make install
|
執行過程中如果出現下面的錯誤
1 |
install: cannot create regular file `/usr/man/man8': No such file or directory
|
需要手動建立一下資料夾,重新編譯安裝即可
1 |
mkdir -p /usr/man/man8
|
然後開始配置檔案.
1 2 3 4 |
#vim /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080 0.0.0.0 9090 192.168.0.103 3389
1.2.3.4 80 192.168.0.10 80
|
說明一下(0.0.0.0表示本機繫結所有可用地址)
將所有發往本機8080埠的請求轉發到172.19.94.3的8080埠
將所有發往本機9090埠的請求轉發到192.168.0.103的3389埠
將所有發往1.2.3.4的80埠請求轉發到192.168.0.10的80埠
命令格式是:
1 2 3 4 5 |
bindaddress bindport connectaddress connectport
繫結的地址 繫結的埠 連線的地址 連線的埠
或
[Source Address] [Source Port] [Destination Address] [Destination Port] 源地址 源埠 目的地址 目的埠
|
啟動程式:
1 2 3 |
pkill rinetd #關閉程序
rinetd -c /etc/rinetd.conf ##啟動轉發
#把這條命令加到/etc/rc.local裡面就可以開機自動執行
|
檢視狀態:
1 |
netstat -antup
|
需要注意:
1 2 3 4 5 |
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
|
因為我們的跳板機都是轉發的資料庫和redis的埠,運行了一段時間後每天早上來rinetd服務就掛了,沒辦法就執行寫個指令碼檢查pid號,如果掛了就重啟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/bin/bash
#rinetd pid check
pid=`ps -ef |grep rinetd |grep -v grep`
if [ $? -ne 0 ]
then
rinetd -c /etc/rinetd.conf
echo "Start executive time:" `date`
else
echo rinetd pid is running...
echo date is :`date`
fi
crontab -l
1 */2 * * * /usr/local/src/pid-check.sh >> /tmp/rinetd.log 2>&1
#每兩個小時監測一次.
|
參考文件:http://www.cnblogs.com/clds/p/5732370.html
http://www.trojansun.com/using-rinetd-for-port-forwarding.html