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工具进行端口映射/转发/重定向相关推荐
- linux端口映射转发工具rinetd
linux下简单好用的工具rinetd,实现端口映射/转发/重定向 Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.hapr ...
- 【Java】Socket网络编程实现内网穿透、端口映射转发、内网穿透上网工具的编写,设置IP白名单防火墙
这里写目录标题 简介 更新 一.背景 1.1 情景假设 1.2 想要达到的目的 1.3 局限 1.3 解决方案一(路由器NAT) 1.4 解决方案二(云服务器转发) 二.方案介绍 2.1 方案简介 2 ...
- Linux下用iptables做端口映射
Linux下用iptables做端口映射详细过程 在CentOS5.4上用iptables配置了端口映射,讲述详细的配置过程,供大家参考. [实现功能] server-A eth0 119. ...
- linux端口映射转发工具rinetd安装使用
简介 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址 ...
- linux怎么删除端口转发,linux使用rinetd快速实现端口转发
linux下使用iptables实现端口转发,配置较为复杂,使用rinetd工具可以实现快速配置和修改端口转发. 例:本机ip:1.1.1.1 需要实现访问本机的8080端口,自动转发到2.2.2.2 ...
- linux udp 端口映射,Linux下的UDP/TCP端口映射(netcat and socat)
原文链接: http://www.wenquan.name/?p=1158 说起来有点土,事到如今才第一次用socat. 不过今天看了一眼,netcat(nc)这东西ms已经N年没有人维护了.最先有个 ...
- 【必看】Linux 或 Windows上实现端口映射
通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服务器经过配置就可以承担起了转发数据包的功能. 一.Windows下实现端口映射 1.查询端口映 ...
- Linux 或 Windows 上实现端口映射
点击上方 "程序员小乐"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 关注订阅号「程序员小乐」,收看更多精彩内容 每日英文 It has not ...
- Linux疑难杂症解决方案100篇(十八)-Linux 或 Windows 上实现端口映射
前言 通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服务器经过配置就可以承担起了转发数据包的功能. 以下是我为大家准备的几个精品专栏,喜欢的小 ...
最新文章
- linux中解决SSH连接慢问题
- 灰度图像的对数变换原理及OpenCV代码实现
- caffe训练中断后如何承接上次继续训练
- Mozilla 将 Firefox 的命运与 Rust 语言捆绑在一起
- 【洛谷习题】尼克的任务
- Mybatis存储过程调用
- 如何把Access中数据导入Mysql中 (转)
- Atitit DbServiceV4qb9 数据库查询类库v4 新特性
- putty怎么更改为中文_putty中文显示乱码解决方法
- centeros安装mySQL
- 联想电脑自动锁屏解决方法
- 一个很好用的移动端Lightbox特效插件(一)
- 下载xcode 6 beta.dmg
- web项目经理手册-项目经理需要铭记在心...
- C语言编程学习开发的俄罗斯方块小游戏
- 使用 css-transform 实现更好的拖拽功能
- linux磁盘分区什么意思,linux 磁盘分区详解
- 使用easygui制作app
- 控制台推箱子小游戏的实现
- python将图片分割成4分代码