linux下用rinetd做端口转发

原文转自:http://blog.chinaunix.net/uid-345389-id-2131648.html

经常遇到端口转发的情况,用iptable是经常的,不过每次都需要查手册。看到菜包子的文章,感觉还不错,测试感觉很好用。

端口转发映射的程序叫rinetd,并没有发现版本之说,只有一个下载地址。直接manke编译安装即可。


[[email protected] tmp]# tar xvfz rinetd.tar.gz 
rinetd/
rinetd/getopt.h
rinetd/rinetd.c
rinetd/CHANGES
rinetd/rinetd.8
rinetd/Makefile
rinetd/README
rinetd/index.html
rinetd/rinetd.ncb
rinetd/match.c
rinetd/match.h
rinetd/rinetd.opt
rinetd/rinetd.dsw
rinetd/rinetd.dsp
rinetd/getopt.c
rinetd/rinetd.plg
rinetd/.CHANGES.swp
rinetd/rinetd.exe
[[email protected]
fan3838 tmp]# cd rinetd
[[email protected]
fan3838 rinetd]# make
cc -DLINUX -g -c -o rinetd.o rinetd.c
rinetd.c:176: 警告:与内建函数 ‘log’ 类型冲突
rinetd.c: In function ‘readConfiguration’:
rinetd.c:544: 警告:由于数据类型范围限制,比较结果永远为假
rinetd.c:567: 警告:由于数据类型范围限制,比较结果永远为假
rinetd.c: In function ‘log’:
rinetd.c:1395: 警告:‘log’ 的地址总是等价为 ‘true’
cc -DLINUX -g -c -o match.o match.c
gcc rinetd.o match.o -o rinetd
[[email protected]
fan3838 rinetd]# make install
install -m 700 rinetd /usr/sbin
install -m 644 rinetd.8 /usr/man/man8

安装完毕只有一个二进制文件一个帮助文件,通过man帮助可以知道其需要一个/etc/rinetd.conf配置文件,这个文件的内容和格式要求如下:


地址 端口 地址 端口

测试了一个简单的例子,172.16.86.113的113端口映射到172.16.81.88的80端口,配置文件如下


[[email protected] etc]# cat /etc/rinetd.conf 
172.16.86.113 113 172.16.81.88 80
allow *.*.*.*
logfile /var/log/rinetd.log

这样的话只要在任意浏览器访问:http://172.16.86.113:113就和访问http://172.16.81.88同样的效果。

启动很简单,执行rinetd即可。

时间: 2024-12-17 10:40:44

linux下用rinetd做端口转发的相关文章

CentOS下用rinetd做端口转发

windows下的端口转发一般用的是自带的nat和porttunnel.portmap linux下端口转发映射的程序叫rinetd,启动方法rinetd -c /etc/rinetd.conf  ,pkill rinetd  关闭进程 工具主页:http://www.boutell.com/rinetd/ 软件下载,解压安装 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz tar zxvf rinetd.tar.gz make mak

Linux下用iptables做端口映射

Linux下用iptables做端口映射详细过程 在CentOS5.4上用iptables配置了端口映射,讲述详细的配置过程,供大家参考. [实现功能] server-A eth0      119.159.220.96  外网 eth1      10.105.75.32     内网 server-B 192.168.137.3              内网 将server-A的80端口映射到server-B的3306端口,实现通过server-A的外网地址访问server-B内网的338

使用rinetd做端口转发

最近项目上遇到一个需要代理做多个端口转发的需求,考虑到需求只是做tcp的网络转发没有业务需求用nginx比较繁琐,就使用了rinetd,整理记录一下. 一.安装rinetd软件1.wget http://www.boutell.com/rinetd/http/rinetd.tar.gz #下载安装文件:2.tar zvxf rinetd.tar.gz #解压下载到的文件:3.cd rinetd/ #进入到解压目录:4.sed -i 's/65536/65535/g' rinetd.c #将rin

linux下安装haproxy作为端口转发服务器,以及安装keepalived作为haproxy高可用方案

一.安装haproxy作为端口转发服务器(主服务器:172.28.5.4,备服务器:172.28.5.8,浮点IP为:172.28.5.6) 1.下载 cd /usr/local/src wget https://github.com/haproxy/haproxy/archive/v1.5-dev20.tar.gz 2.解压 tar - zvxf v1.5-dev20.tar.gz cd haproxy-1.5-dev20 3.编译 make TARGET=linux26 prefix=/us

使用iptables做端口转发

#!/bin/sh IPT="/sbin/iptables" /bin/echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/modprobe ip_tables /sbin/modprobe iptable_filter /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprob

Linux下Socket编程的端口问题( Bind error: Address already in use )

Linux下Socket编程的端口问题( Bind error: Address already in use ) 在进行linux网络编程时,每次修改了源代码并再次编译运行时,常遇到下面的地使用错误: Bind error: Address already in use 虽然用Ctrl+C强制结束了进程,但错误依然存在,用netstat -an |grep 5120和ps aux |grep 5120都还能看到刚才用Ctrl+C“强制结束”了的进程,端口还是使用中,只好每次用kill结束进程,

nginx + apache 做端口(转发)

nginx + apache 做端口转发 最近公司需要搭建一个内容管理系统,用的框架是dedecms,没有多考虑,首选的就是apache,因为公司的服务器是centos,所以一通折腾之后安装好了apache,php,以及各种模块及依赖库.      在安装好之后启动apache,发现无法启动,说是80端口被占用,经过netstat -anp | grep 80 之后发现是ngnix占用了该端口.因为这台服务器一直在使用nginx + unicorn 来跑rails项目,所以这个nginx是万万不

linux下查看进程占用端口和端口占用进程命令

Linux下查看进程占用端口: 查看程序对应进程号:ps –ef|grep 进程名 REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号 ubuntu:查看进程占用端口号:netstat -anp|grep pid Linux下查看端口号所使用的进程号: 使用lsof命令: lsof –i:端口号

Linux下使用Apache实现域名转发(Tomcat/JBOSS)

Linux下安装.配置JDK就不细说了,网上的资料很多; 在安装apache时可能会遇到诸多问题,譬如APR not found,pcre-config for libpcre not found等问题,这都是和系统的具体环境有关,详细的解决办法这里不细说,推荐几个解决的方案,可以综合起来根据具体情况排查问题,千万不要过于依赖某一个方案,要对症下药,链接地址: http://www.cnblogs.com/JemBai/archive/2012/11/07/2759139.html http:/