如何搭建一个中转服务器?linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将tcp和udp端口从防火墙转发到内部主机上。但是如果需要将流量从专用地址转发到不在您当前网络上的机器上,可尝试另一个应用层端口转发程序rinetd。rinetd短小、高效,配置起来比iptables也简单很多。文章源自玩技e族-https://www.playezu.com/158815.html
rinetd是为在一个unix和linux操作系统中为重定向传输控制协议(tcp)连接的一个工具。rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址/端口对。尽管rinetd使用非闭锁i/o运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。文章源自玩技e族-https://www.playezu.com/158815.html
一:安装方式一
centos文章源自玩技e族-https://www.playezu.com/158815.html
官方源中不具有rinetd,所以需要先安装三方源。文章源自玩技e族-https://www.playezu.com/158815.html
更新环境文章源自玩技e族-https://www.playezu.com/158815.html
yum -y update
配置三方源文章源自玩技e族-https://www.playezu.com/158815.html
32位系统 $ vim /etc/yum.repos.d/nux-misc.repo [nux-misc] name=nux misc baseurl=http://li.nux.ro/download/nux/misc/el6/i386/ enabled=0 gpgcheck=1 gpgkey=http://li.nux.ro/download/nux/rpm-gpg-key-nux.ro 64位系统 $ vim /etc/yum.repos.d/nux-misc.repo: [nux-misc] name=nux misc baseurl=http://li.nux.ro/download/nux/misc/el6/x86_64/ enabled=0 gpgcheck=1 gpgkey=http://li.nux.ro/download/nux/rpm-gpg-key-nux.ro
安装rinetd文章源自玩技e族-https://www.playezu.com/158815.html
$ yum --enablerepo=nux-misc install rinetd
ubuntu文章源自玩技e族-https://www.playezu.com/158815.html
$ apt-get install rinetd
编译安装文章源自玩技e族-https://www.playezu.com/158815.html
$ wget https://www.playezu.com/pan/down.php/8678f3dcc5cb3b12898b68666e68bfe2.gz $ mkdir -p /usr/man/man8 #默认会把man文件放么/usr/man/man8下面,如果没有这个目录会报目前不存在,但不影响使用. $ ./configure $ make && make install 观察下config文件的路径位置 我的是这里 rinetd.conf '/usr/local/etc'
配置文件路径
配置端口转发的配置文件在/etc/rinetd.conf文章源自玩技e族-https://www.playezu.com/158815.html
配置文件格式
[bindaddress] [bindport] [connectaddress] [connectport] 绑定的地址 绑定的端口 连接的地址 连接的端口 [source address] [source port] [destination address] [destination port] 源地址 源端口 目的地址 目的端口 在每一单独的行中指定每个要转发的端口。源地址和目的地址都可以是主机名或ip地址,ip 地址0.0.0.0将rinetd绑定到任何可用的本地ip地址上。例如:0.0.0.0 8080 www.playezu.com 80
配置文件规则
$ vim /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080
0.0.0.0 2222 192.168.0.103 3389
1.2.3.4 80 192.168.0.10 80
allow *.*.*.*
或者指定ip段
allow 192.168.1.* //设置允许访问的ip地址信息
logfile /var/log/rinetd.log
配置文件说明
0.0.0.0表示本机绑定所有可用地址 将所有发往本机8080端口的请求转发到172.19.94.3的8080端口 将所有发往本机2222端口的请求转发到192.168.0.103的3389端口 将所有发往1.2.3.4的80端口请求转发到192.168.0.10的80端口 allow设置允许访问的ip地址信息,*.*.*.*表示所有ip地址 logfil设置打印的log的位置
二 :启动规则
启动: rinetd -c /etc/rinetd.conf 查看状态: netstat -antup 或 netstat -tanulp | grep rinetd 如果想停止: pkill rinetd 或 killall rinetd # 检查监控的端口是否开启 netstat -tanop | grep 端口号
三:设置开机自动启动转发规则
首先:chmod 755 /etc/rc.d/rc.local 然后编辑:/etc/rc.local
加入:
rinetd -c /etc/rinetd.conf
或
echo rinetd >> /etc/rc.local
cat /etc/rc.local
特备注意事项:文章源自玩技e族-https://www.playezu.com/158815.html
1.rinetd.conf中绑定的本机端口必须没有被其它程序占用 2.运行rinetd的系统防火墙应该打开绑定的本机端口 例如: iptables -a input -p tcp -m tcp --dport 8080 -j accept
一:安装方式二
更新
yum -y update
软件下载
wget https://www.playezu.com/pan/down.php/8678f3dcc5cb3b12898b68666e68bfe2.gz
解压
tar zxvf rinetd.tar.gz
打开rinetd目录
cd rinetd #如果有版本号的话就进入下版本号解压出来的目录
修改端口
sed -i ‘s/65536/65535/g’ rinetd.c #如果命令不生效就去所在目录所有下这个端口手动改下
创建目录
mkdir -p /usr/man/man8
安装gcc
yum install -y gcc
编译安装
./configure
make && make install #编译后注意conf文件所在路径的位置
映射端口
打开/etc/rinetd.conf 0.0.0.0 4444 baidu.com 4444
启动/重启/关闭命令
关闭:pkill rinetd
重启:rinetd -s reload
启动:rinetd -c /etc/rinetd.conf #编译后注意conf文件所在路径的位置
查看是否启动
netstat -antup
加入开机启动项
打开/etc/rc.local
在最后插入rinetd -c /etc/rinetd.conf #编译后注意conf文件所在路径的位置
文章源自玩技e族-https://www.playezu.com/158815.html 免责声明:本文内容来自用户上传并发布或网络新闻客户端自媒体,玩技博客仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系删除。
评论