rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具。Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址/端口对。尽管rinetd使用非闭锁I/O运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。使用iptables 很容易将TCP 和UDP 端口从防火墙转发到内部主机上。但是如果您需要将流量从专用地址转发到甚至不在您当前网络上的机器上,又该怎么办呢?可尝试另一个应用层端口转发程序,如rinetd。
摘自:https://www.zhuguodong.com/?id=457
安装部署
mkdir /rinted/
cd /rinted/
wget https://github.com/samhocevar/rinetd/releases/download/v0.73/rinetd-0.73.tar.gz
tar zxvf rinetd-0.73.tar.gz
cd rinetd-0.73
./bootstrap
./configure
make && make install
创建systemd服务
cat >> /etc/systemd/system/rinetd.service << EOF
[Unit]
Description=rinetd
After=network.target
[Service]
Type=forking
ExecStart=/rinted/rinetd-0.73/rinetd -c /etc/rinetd.conf
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
测试
本地发布一个 nginx服务
kubectl create deployment nginx-test --image=nginx
(--port=8099 svc 的端口)(--target-port=80 pod 内服务的端口)
kubectl expose deployment nginx-test --port=8099 --target-port=80
此时我们可以通过cluster ip + 端口 ,本地访文服务
假如说,现在我们想要让外部环境访文 (使用rinetd)
(工作环境 ,大多是是使用 nodeport + rinetd )
创建配置文件
vim /etc/rinetd.conf
0.0.0.0 99 10.98.222.83 8099
#解释:将所有发往本机9998端口的请求转发到192.168.186.200的80端口
#配置文件格式很简单:
systemctl restart rinetd
本地的访文 master 节点 ip + 99