转载:

https://my.oschina.net/wuweixiang/blog/2983280


前言

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.2.* # 设置拒绝访问的ip地址信息
# deny 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

开机启动

在/etc/rc.local 文件中,添加/usr/sbin/rinetd 或者 /usr/sbin/rinetd -c /etc/rinetd.conf 启动命令即可。

需要注意

rinetd.conf中绑定的本机端口必须没有被其它程序占用

代理端口转发工具rinetd的更多相关文章

  1. 全平台正向tcp端口转发工具rinetd的使用

    Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.其实,Linux下有一个叫rinetd的工具,安装简单,配置也不复杂. 下载 ...

  2. 端口转发工具rinetd的安装与配置

    端口映射和转发在实际应用中非常常见,比如一个局域网只有一台服务器可以被互联网访问到,那么如果想通过互联网访问局域网中其他的服务,最常用的方式就是在这一台机器上开放端口,然后转发至局域网中其他主机的端口 ...

  3. ubuntu14 安装 端口转发工具rinetd

    1,下载  第一中方式 用 apt-get install rinetd  或者从官网下载http://www.boutell.com/rinetd/ 2,配置,端口转发的配置在 /etc/rinet ...

  4. Linux端口转发工具rinetd

    介绍:Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址 ...

  5. Windows 和 Linux 平台下的端口转发工具

    原文地址: http://unmi.cc/windows-linux-port-forwarding/ 这里记录一下我曾经使用过的几个端口转发工具,即端口映射.端口重定向,和 NAT 也是差不多的概念 ...

  6. [转帖]【rinetd】CentOS7.x上轻量级TCP转发工具rinetd的安装配置

    [rinetd]CentOS7.x上轻量级TCP转发工具rinetd的安装配置 https://www.jianshu.com/p/2605d247b944 这一个写的更加全面了. 2019.07.0 ...

  7. CentOS7.x上轻量级TCP转发工具rinetd的安装配置

    一.实验背景 Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上. 如果需要将流量从专用地址转发到不在您当前网络上的机器上 ...

  8. 【Linux】实现端口转发的rinetd

    Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上.但是如果需要将流量从专用地址转发到不在您当前网络上的机器上,可尝试另一 ...

  9. 端口转发工具lcx使用两类

    lcx是一款强大的内网端口转发工具,用于将内网主机开放的内部端口映射到外网主机(有公网IP)任意端口.它是一款命令行工具,当然也可以在有权限的webshell下执行,正因如此lcx常被认为是一款黑客入 ...

随机推荐

  1. mac终端命令--常用快捷键

    Ctrl + c        取消当前行输入的命令,进入下一行.或者中止一个错误的或者发疯的命令 Ctrl + a        光标移动到行首(Ahead of line),相当于通常的Home ...

  2. Arthas 开源一周年,GitHub Star 16 K ,我们一直在坚持什么?

    缘起 最近看到一个很流行的标题,<开源XX年,star XXX,我是如何坚持的>.看到这样的标题,忽然发觉 Arthas 从 2018 年 9 月开源以来,刚好一年了,正好在这个秋高气爽的 ...

  3. 05-树9 Huffman Codes(30 分)

    In 1953, David A. Huffman published his paper "A Method for the Construction of Minimum-Redunda ...

  4. BZOJ 2301 莫比乌斯反演入门

    2301: [HAOI2011]Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函 ...

  5. Linux终端提示符颜色设置

    将以下语句添加到用户目录下的 .bashrc 文件中,然后执行 source .bashrc 使其立即生效. PS1='${debian_chroot:+($debian_chroot)}\[\033 ...

  6. (转)Maven创建webapp项目无法修改web版本的问题

    maven创建的web app,默认使用的servlet版本是2.3,默认不支持JSTL,为了默认支持JSTL表达式,需要升级servlet到3.0 转:http://blog.sina.com.cn ...

  7. 【git】如何ignore一个文件的更改又保留其初始版本

    参考: https://compiledsuccessfully.dev/git-skip-worktree/ https://stackoverflow.com/questions/9794931/ ...

  8. 用 Flask 来写个轻博客 (12) — M(V)C_编写和继承 Jinja 模板

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 使用 Bootstrap 编写 Jinja 模板文件 继承一 ...

  9. CentOS系统更换软件安装源yum

    第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back ...

  10. linux less preserve colors

    less -r grep pattern file.txt --color=always | less -r