您的位置:首页 > 运维架构 > Linux

【linux端口转发】使用rinetd/iptables

2013-12-19 15:43 501 查看
场景:手机客户端想通过域名转发访问线下服务器,但是问题1:域名绑定不能绑定到端口只能到ip-ip的绑定,默认绑定的线下端口必须与线上一致;而线上端口默认是80,该端口为系统端口,用户程序不能使用。于是想到将线下服务器的80端口绑定到用户自定义的程序端口上。

解决:使用iptables或rinetd

一、iptables

命令如下:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000

注意:需要root权限

二、rinetd

步骤:

1、下载:从官网http://www.boutell.com/rinetd/ 下载linux版本

2、安装:

tar zxvf rinetd.tar.gz
make
make install

此处注意1:安装rinetd需要root权限,请到root账户下执行安装;

注意2:make install的时候可能出现 /usr/man/man8 目录不存在的错误,解决方式1是直接创建该文件夹即可;解决方式2是打开Makefile换个存在的目录

3、配置:

编辑配置
vi /etc/rinetd.conf
0.0.0.0 80 0.0.0.0 8000

说明一下(0.0.0.0表示本机绑定所有可用地址)
将所有发往本机80端口的请求转发到本机的8000端口

配置文件的命令格式是
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口

4、启动程序
pkill rinetd ##关闭进程
./rinetd -c /etc/rinetd.conf ##启动转发
把这条命令加到/etc/rc.local里面就可以开机自动运行

5、验证:

访问线下机器的80端口和8000端口检查返回是否一致。

解决【end】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: