炒雞好用的埠轉發工具
阿新 • • 發佈:2018-12-08
前言
iptables 的功能當然強大,但理解與設定卻有點抽象,便通過google認識了rinetd。
簡介
Rinetd是為在一個Unix和Linux作業系統中為重定向傳輸控制協議(TCP)連線的一個工具。Rinetd是單一過程的伺服器,它處理任何數量的連線到在配置檔案etc/rinetd中指定的地址/埠對。儘管rinetd使用非閉鎖I/O執行作為一個單一過程,它可能重定向很多連線而不對這臺機器增加額外的負擔。
Rinetd官網 https://boutell.com/rinetd/
安裝
cat >> rinetd-installer.sh <<'EOF' #!/bin/bash wget http://www.boutell.com/rinetd/http/rinetd.tar.gz tar zxvf rinetd.tar.gz cd rinetd mkdir -p /usr/man/man8 # make編譯提示:make cc Command not found 解決辦法 -> yum安裝gcc yum install gcc make && make install EOF chmod +x rinetd-installer.sh ./rinetd-installer.sh
配置
配置埠轉發的配置檔案在/etc/rinetd.conf
配置檔案格式
[Source Address] [Source Port] [Destination Address] [Destination Port] 源地址 源埠 目的地址 目的埠
在每一單獨的行中指定每個要轉發的埠。源地址和目的地址都可以是主機名或IP地址,IP 地址0.0.0.0將rinetd繫結到任何可用的本地IP地址上。例如:0.0.0.0 8080 wuweixiang.cn 80
rm -f /etc/rinetd.conf cat >> /etc/rinetd.conf <<EOF # 設定允許訪問的ip地址資訊 # allow 192.168.1.* # 設定日誌檔案路徑 logfile /var/log/rinetd.log # 例子: 將本機 8080 埠重定向至 188.131.152.100 的 8080 埠 # 0.0.0.0 8090 188.131.152.100 8080 EOF
建立啟動指令碼
cat >> /etc/init.d/rinetd <<'EOF' #!/bin/bash EXEC=/usr/sbin/rinetd CONF=/etc/rinetd.conf PID_FILE=/var/run/rinetd.pid NAME=Rinetd DESC="Rinetd Server" case "$1" in start) if [ -x "$PID_FILE" ]; then echo "$NAME is running ..." exit 0 fi $EXEC -c $CONF echo -e "\e[1;32m$NAME is running\e[0m" ;; stop) if [ -f "$PID_FILE" ]; then kill `cat $PID_FILE` while [ -x "$PID_FILE" ] do echo "Waiting for $NAME to shutdown..." sleep 1 done rm -f $PID_FILE fi echo -e "\e[1;31m$NAME stopped.\e[0m" ;; restart) $0 stop $0 start ;; status) if [ -f $PID_FILE ]; then echo "$NAME is running ..." else echo "$NAME stopped." fi ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 2 ;; esac exit 0 EOF
啟動服務
/etc/init.d/rinetd start