<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

本文涉及的产品
转发路由器TR,750小时连接 100GB跨地域
简介: 端口转发映射的程序叫rinetd,下载地址,直接manke编译安装即可。 1 2 3 4 5 6 7 8 9 10 11 12 ...

端口转发映射的程序叫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] # ls
rinetd. tar .gz
[root@PortForward02 src] # tar -zxvf rinetd.tar.gz 
[root@PortForward02 src] # cd rinetd 
[root@PortForward02 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@PortForward02 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@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.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地址上:

例如将所有发往本机80端口的请求转发到192.168.4.247的80端口

1
2
3
4
5
6
7
[root@localhost rinetd] # vim /etc/rinetd.conf
allow 10.15.44.162                 // 设置允许访问的ip地址信息
# allow 0.0.0.0
#allow 10.15.44.*
#deny 10.15.44.144
0.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 rinetd
tcp        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 rinetd
tcp        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 .conf
touch  /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 .repo
yum makecache
yum  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


目录
相关文章
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
总结和计划总是让人喜悦或镇痛,一方面以前一段时间没有荒废,能给现在的行动以信心,另一方面看到一年的时间并不能完成很多事情,需要抓紧时间。
589 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
系统的升级涉及各个架构组件,细节很多。常年累月的修修补补使老系统积累了很多问题。 系统升级则意味着需要repair之前埋下的雷,那为何还要升级,可以考虑以下几个方面 成熟老系统常见问题: 1. 缺乏文档(这应该是大小公司都存在的问题。
597 0
|
Web App开发 前端开发
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
已发现2个内存错误,应用名称(kernel:),日志内容(hangzhou-jishuan-DDS0248 kernel: sbridge: HANDLING MCE MEMORY ERROR hangzhou-jis...
828 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Changing Hive Dynamic Partition Limits Symptoms: Hive enforces limits on the number of dynamic partitions that it creates.
1001 0
|
Web App开发 前端开发 数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
今天在腾讯云上搭的开发环境里的一台机器cpu load飚升老高,然后还能登陆上去,top后发现两个可疑进程、/root/目录下有修改过的文件、/opt目录被干掉了, 后经分析,这台机器上有redis外网服务,/root目录下还有个READ_ME.
987 0
|
存储 Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
经常做数据处理的伙伴们肯定会有这样一种体会:最近一周内的数据会被经常使用到,而比如最近几周的数据使用率会有下降,每周仅仅被访问几次;在比如3月以前的数据使用率会大幅下滑,存储的数据可能一个月才被访问几次。
830 0
|
Web App开发 关系型数据库 数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
标题:ejb3中的@Schedule中的persistent属性的深入探索 1 实验环境:     应用服务器:glassfish4.
1506 0
|
Web App开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
1 问题出现 当我试着去https://github.com/Red5/red5-server下载Red5的源码,我是把自己编译源码的, 最终的Red5-server需要依赖其他几个组件: (1) red5...
929 0