linux rinetd、socat端口转发部署(很实用的网络工具)
端口转发映射的程序叫rinetd,下载地址,直接manke编译安装即可。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@PortForward02 src]# wget http://www.boutell.com/rinetd/http/rinetd.tar.gz[root@PortForward02 src]# lsrinetd.tar.gz[root@PortForward02 src]# tar -zxvf rinetd.tar.gz [root@PortForward02 src]# cd rinetd [root@PortForward02 rinetd]# makecc -DLINUX -g -c -o rinetd.o rinetd.crinetd.c:176: warning: conflicting types for built-in function ‘log’cc -DLINUX -g -c -o match.o match.cgcc rinetd.o match.o -o rinetd[root@PortForward02 rinetd]# make installinstall -m 700 rinetd /usr/sbininstall -m 644 rinetd.8 /usr/man/man8install: cannot create regular file `/usr/man/man8': No such file or directorymake: *** [install] Error 1[root@PortForward02 rinetd]# |
运行make可能会出现错误,需如下修改,将rinetd.c文件中bindPort >= 65536和connectPort >= 65536修改为65535,不然在make的时候会提示超出系统最大定义端口,按n可以查找下一处
|
1
2
3
4
5
|
[root@PortForward02 rinetd]# vim rinetd.c 544 if ((bindPort == 0) || (bindPort >= 65535)) { 567 if ((connectPort == 0) || (connectPort >= 65535)) { 或者 [root@localhost rinetd]# sed -i "s/35536/35535/g" rinetd.c |
手动建目录/usr/man/
|
1
2
3
4
5
6
7
8
9
10
11
|
[root@PortForward02 rinetd]# mkdir -p /usr/man/[root@PortForward02 rinetd]# make clean[root@localhost rinetd]# make cc -DLINUX -g -c -o rinetd.o rinetd.crinetd.c:176: warning: conflicting types for built-in function ‘log’cc -DLINUX -g -c -o match.o match.cgcc rinetd.o match.o -o rinetd[root@localhost rinetd]# make installinstall -m 700 rinetd /usr/sbininstall -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地址上:
例如将所有发往本机80端口的请求转发到192.168.4.247的80端口
|
1
2
3
4
5
6
7
|
[root@localhost rinetd]# vim /etc/rinetd.confallow 10.15.44.162 //设置允许访问的ip地址信息# allow 0.0.0.0#allow 10.15.44.*#deny 10.15.44.1440.0.0.0 8090 10.15.44.133 80 //设置端口转发logfile /var/log/rinetd.log //设置打印的log |
启动程序并将rinetd加入开机启动
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@PortForward02 rinetd]# /usr/sbin/rinetd 或者[root@localhost rinetd]# rinetd -c /etc/rinetd.conf [root@localhost rinetd]# netstat -antulp|grep -i rinetdtcp 0 0 0.0.0.0:8090 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 rinetdtcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN 5861/rinetd [root@PortForward02 rinetd]# cat /etc/rc.d/rc.local |grep -v "#"/usr/sbin/rinetd -c /etc/rinetd.conftouch /var/lock/subsys/local[root@PortForward02 rinetd]# |
这样的话只要在任意浏览器访问:http://10.15.44.125:8090(rinetd服务器地址)就和访问http://10.15.44.133同样的效果。但是这个只能在10.15.44.162机器上实现,其他机器就不行,如果
注意事项
1. rinetd.conf中绑定的本机端口必须没有被其它程序占用
2. 运行rinetd的系统防火墙应该打开绑定的本机端口
|
1
|
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT |
3.不支持FTP的跳
socat作用是在两个流之间建立双向的通道,且支持众多协议和链接方式:ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,socket等
yum 方式安装:
|
1
2
3
|
wget –no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repoyum makecacheyum install socat |
使用方式:
|
1
2
|
nohup socat tcp-l:外部访问端口,reuseaddr,fork tcp:192.168.xxx.xxx:内部转发端口nohup socat TCP4-LISTEN:188,reuseaddr,fork TCP4:192.168.1.22:123 & |
在本地监听188端口,并将请求转发至192.168.1.22的123端口
TCP4-LISTEN:在本地建立的是一个TCP ipv4协议的监听端口;
reuseaddr:绑定本地一个端口;
fork:设定多链接模式,即当一个链接被建立后,自动复制一个同样的端口再进行监听
socat启动监听模式会在前端占用一个shell,因此需使其在后台执行。
附:socat官方文档:http://www.dest-unreach.org/socat/doc/socat.html
linux rinetd、socat端口转发部署(很实用的网络工具)的更多相关文章
- 通过rinetd实现端口转发来访问内网的服务
通过rinetd实现端口转发来访问内网的服务 一. 问题描述 通过外网来访问内网的服务 二. 环境要求 需要有一台能够外网访问的机器做端口映射,通过数据包转发来实现外部访问阿里云的内网服务 三 ...
- linux rinetd 端口转发部署
linux下简单好用的工具rinetd,实现端口映射/转发/重定向 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它 ...
- 【Linux】linux rinetd 端口转发部署
linux下简单好用的工具rinetd,实现端口映射/转发/重定向 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它 ...
- 【Linux】实现端口转发的rinetd
Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上.但是如果需要将流量从专用地址转发到不在您当前网络上的机器上,可尝试另一 ...
- rinetd 一个linux下的端口转发工具
inux下使用iptables实现端口转发,配置较为复杂,使用rinetd工具可以实现快速配置和修改端口转发. 例:本机ip:1.1.1.1 需要实现访问本机的8080端口,自动转发到2.2.2.2 ...
- CentOS下用rinetd做端口转发
windows下的端口转发一般用的是自带的nat和porttunnel.portmap linux下端口转发映射的程序叫rinetd,启动方法rinetd -c /etc/rinetd.conf , ...
- 通过rinetd实现端口转发,同时访问阿里云RDS的内外网
配置方法如下: 1 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz& ...
- linux centos6 NAT 端口转发
有很多时候我们为了安全,需要将例如数据库服务器放到内网中.但是有些时候又系统给外网开一个端口,这时就可以利用外网的服务器进行一个端口转发.今天我们以centos6 为例进行端口转发配置. 首先vi / ...
- 〖Linux〗iptables端口转发(11.11.136.80:5552 <==> 10.10.136.1:8055/11.11.136.1:8055)
环境: pc1: 10.10.72.1 (network: 10.10.72.0/22) pc2: 地址1: 10.10.136.1 (nework: 10.10.136.0/22) 地址2: 11. ...
随机推荐
- Ubuntu 16.04 kinetic 编译指定包
编译指定包 catkin_make -DCATKIN_WHITELIST_PACKAGES=baoming 使用上述命令后catkin_make会一直编译上面那个包,想要编译全部包,使用 catkin ...
- django模型的元数据Meta
模型的元数据,指的是“除了字段外的所有内容”,例如排序方式.数据库表名.人类可读的单数或者复数名等等.所有的这些都是非必须的,甚至元数据本身对模型也是非必须的.但是,我要说但是,有些元数据选项能给予你 ...
- 《剑指offer》第三十三题(二叉搜索树的后序遍历序列)
// 面试题33:二叉搜索树的后序遍历序列 // 题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果. // 如果是则返回true,否则返回false.假设输入的数组的任意两个数字都 ...
- android调用照相机拍照获取照片并做简单剪裁
引用转载http://www.cnblogs.com/eyu8874521/archive/2012/07/20/2600697.html 效果: 客服端代码: package com.cn.lx ...
- Codeforces 832C - Strange Radiation
832C - Strange Radiation 思路:二分最短时间. 代码: #include<bits/stdc++.h> using namespace std; #define l ...
- 检验二叉树序列化的合理性 Verify Preorder Serialization of a Binary Tree
2018-07-31 17:47:13 问题描述: 问题求解: 本题要求在不构建二叉树的情况下对先序遍历生成的序列化字符串进行合法性验证,这里有个技巧性较强的验证方法,就是采用当前可用的指针数目进行验 ...
- C++STL3--queue
C++STL3--queue 一.心得 STL的这些东西用法都差不多 二.介绍 queue数据结构中的队列 priority_queue优先队列,插入进去的元素都会从大到小排好序 PS:在priori ...
- .net开发中,C# DateTime.Now 取出的时间含有星期解决办法
1.开始→运行→输入regedit,打开注册表编辑器,找到HKEY_USERS. 2.ctrl+f 查找sShortDate(多查询几次,将所有的都查出来). 3.在右边的窗口中找到sDate项,将其 ...
- 为什么需要API网关?
目录 0:00 微服务与网关(Microservices & API Gateways) 大家好,我叫Macro,今天我们谈论有关微服务和网关的话题.我是Mashape的CTO,也同时是开源网 ...
- LeetCode--202--快乐数
问题描述: 编写一个算法来判断一个数是不是“快乐数”. 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变 ...