#[喵咪Liunx(3)]端口转发工具rinetd#
##前言##
今天笔者为大家带来了另外一款非常优秀的Liunx工具,这个工具有什么用呢?它能帮助我们解决一些特定场景下的端口转发需求,这个工具就是runetd,runetd可以非常方便的进行端口转发的设置,那就让我们一同来开始本次的学习吧!
附上:
喵了个咪的博客:w-blog.cn
##1. 端口转发是什么##
我们先来了解几个名词的含义:端口映射,端口转发,反向代理,一同分析他们的相同点以及区别
###端口映射
如果你去网上查找端口映射,大部分都是说路由器ADSL把公网IP映射到内网,这个一般是从路由器中设置的,对公网IP某个端口进行映射到路由器下的某个端口,通过访问这个外网地址就可以请求到这台服务器了,使用场景最平凡的就是大家购买的AWS或UCloud的服务器,他们服务器的公网都是通过端口映射的方式实现的.
###端口转发
端口转发就实现的功能效果和端口映射几乎一样,这两个名词的边界也比较含糊不清,如果上面把端口映射解释为从是处理路由器公网到内网,可以理解端口转发是系统级别的.一个简单的例子你的tomcat默认使用内网8080端口,你需要在80端口上去访问,这个时候就需要把自己的80端口转发到8080端口,访问80端口的时候会被系统把请求转发到8080端口上接受.
###反向代理
反向代理我们最常见使用的就是Nginx反向代理,通用也能实现用户请求80端口代理给本机的8080端口这个业务,但是反向代理和端口转发唯一不同的是他们的网络层次,反向代理是应用层面的通俗易懂的说就是HTTP,反向代理服务器接受到HTTP请求会在建立一条HTTP请求到请求的服务器获取返回结果之后在返回给请求的服务器,但是端口转发就不同了,端口转发是TCP/IP层的也就是说所有的TCP都可以被转发,比如数据库连接,redis连接这个是反向代理做不到的
##2. 使用rinetd进行端口转发##
大家了解端口转发之后大致明白在什么场景下应该来使用了,我们通常配置端口转发时多半会使用Liunx的iptables来进行,但是这样有诸多不方便的地方,端口占用不提示,关闭不方便等等,后来就有了rinetd这个快速端口转发工具的诞生,我们来了解怎么使用rinetd来配置一个端口转发.
下载软件:
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
安装软件:
tar xzvf rinetd.tar.gz
cd rinetd
make
make install
编辑配置文件加入你的转发规则 :
内容格式:源IP 源端口 要跳转的IP 要跳转的端口
比如需要通过80端口访问到8080端口的内容
0.0.0.0 8080 0.0.0.0 80
启动rinetd :
rinetd -c /etc/rinetd.conf
在启动时候如果你的80端口被占用会有报错信息
查看转发规则是否成功 :
netstat -tanulp|grep rinetd
##3. 总结##
我们一同了解了关于端口映射,端口转发,反向代理之前的区别,并且使用rinetd快速设置端口转发规则,在后面的某些特定场景合理的使用以上技术可以解决很多特定问题,也希望对能够有帮助!
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
来源:oschina
链接:https://my.oschina.net/u/2394822/blog/718364