生活随笔
收集整理的這篇文章主要介紹了
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端口
轉載于:https://blog.51cto.com/happyliu/1967679
總結
以上是生活随笔為你收集整理的linux通过rinetd工具进行端口映射/转发/重定向的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。