现在线上有个需求,访问某源的地址,需要通过一个固定的出口出去才行。那么这里想到的转发的几种方式:
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工具进行端口映射/转发/重定向相关推荐

  1. linux端口映射转发工具rinetd

    linux下简单好用的工具rinetd,实现端口映射/转发/重定向 Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.hapr ...

  2. 【Java】Socket网络编程实现内网穿透、端口映射转发、内网穿透上网工具的编写,设置IP白名单防火墙

    这里写目录标题 简介 更新 一.背景 1.1 情景假设 1.2 想要达到的目的 1.3 局限 1.3 解决方案一(路由器NAT) 1.4 解决方案二(云服务器转发) 二.方案介绍 2.1 方案简介 2 ...

  3. Linux下用iptables做端口映射

    Linux下用iptables做端口映射详细过程 在CentOS5.4上用iptables配置了端口映射,讲述详细的配置过程,供大家参考. [实现功能] server-A eth0      119. ...

  4. linux端口映射转发工具rinetd安装使用

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

  5. linux怎么删除端口转发,linux使用rinetd快速实现端口转发

    linux下使用iptables实现端口转发,配置较为复杂,使用rinetd工具可以实现快速配置和修改端口转发. 例:本机ip:1.1.1.1 需要实现访问本机的8080端口,自动转发到2.2.2.2 ...

  6. linux udp 端口映射,Linux下的UDP/TCP端口映射(netcat and socat)

    原文链接: http://www.wenquan.name/?p=1158 说起来有点土,事到如今才第一次用socat. 不过今天看了一眼,netcat(nc)这东西ms已经N年没有人维护了.最先有个 ...

  7. 【必看】Linux 或 Windows上实现端口映射

    通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服务器经过配置就可以承担起了转发数据包的功能. 一.Windows下实现端口映射 1.查询端口映 ...

  8. Linux 或 Windows 上实现端口映射

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 关注订阅号「程序员小乐」,收看更多精彩内容 每日英文 It has not ...

  9. Linux疑难杂症解决方案100篇(十八)-Linux 或 Windows 上实现端口映射

    前言 通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服务器经过配置就可以承担起了转发数据包的功能. 以下是我为大家准备的几个精品专栏,喜欢的小 ...

最新文章

  1. linux中解决SSH连接慢问题
  2. 灰度图像的对数变换原理及OpenCV代码实现
  3. caffe训练中断后如何承接上次继续训练
  4. Mozilla 将 Firefox 的命运与 Rust 语言捆绑在一起
  5. 【洛谷习题】尼克的任务
  6. Mybatis存储过程调用
  7. 如何把Access中数据导入Mysql中 (转)
  8. Atitit DbServiceV4qb9 数据库查询类库v4 新特性
  9. putty怎么更改为中文_putty中文显示乱码解决方法
  10. centeros安装mySQL
  11. 联想电脑自动锁屏解决方法
  12. 一个很好用的移动端Lightbox特效插件(一)
  13. 下载xcode 6 beta.dmg
  14. web项目经理手册-项目经理需要铭记在心...
  15. C语言编程学习开发的俄罗斯方块小游戏
  16. 使用 css-transform 实现更好的拖拽功能
  17. linux磁盘分区什么意思,linux 磁盘分区详解
  18. 使用easygui制作app
  19. 控制台推箱子小游戏的实现
  20. python将图片分割成4分代码

热门文章

  1. atm c语言流程图_c语言ATM机程序
  2. java 二分查找_计算机入门必备算法——二分查找法
  3. MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八
  4. mybatis多表分页
  5. Android 抓包的一些命令 及 adb使用的一些注意事项
  6. 小小base标签在web开发中的大作用
  7. javascript仿韩国Google效果
  8. UIAlertController 简单修改title以及按钮的字体颜色
  9. vue组件库(二):基于verdaccio工具npm私服搭建
  10. RK3288 双屏异显,两屏默认方向不一致