Linux下做地址NAT有很多种方法。比如haproxy、nginx的4层代理,linux自带的iptables等都能实现。haproxy、nginx就不说了,配置相对简单;iptables配置复杂,概念也比较多DNAT、SNAT、PREROUTING、POSTROUTING等等。其实,Linux下有一个叫rinetd的工具,安装简单,配置也不复杂。
安装篇
1、下载,解压,安装
[root@zhenyunode zhenyutest]# cd ~/zhenyutest/ [root@zhenyunode zhenyutest]# wget http://www.boutell.com/rinetd/http/rinetd.tar.gz [root@zhenyunode zhenyutest]# tar -xvf ~/zhenyutest/rinetd.tar.gz [root@zhenyunode zhenyutest]# cd ~/zhenyutest/rinetd/ [root@zhenyunode rinetd]# sed -i ‘s/65536/65535/g‘ rinetd.c [root@zhenyunode rinetd]# mkdir /usr/man/ [root@zhenyunode rinetd]# make && make install cc -DLINUX -g -c -o rinetd.o rinetd.c rinetd.c:176:6: 警告:与内建函数‘log’类型冲突 [默认启用] void log(int i, int coSe, int result); ^ cc -DLINUX -g -c -o match.o match.c gcc rinetd.o match.o -o rinetd install -m 700 rinetd /usr/sbin install -m 644 rinetd.8 /usr/man/man8 [root@zhenyunode rinetd]#
2、创建配置文件
[root@zhenyutest rinetd]# vi /etc/rinetd.conf # 0.0.0.0 6379 《阿里云服务器的redis》 6379 我这里是阿里云的redis服务器,不能直接!所以做了一个代理!---注释
0.0.0.0 80 192.168.15.234 8080 --注释,允许所有的ip从80端口,跳转到192.168.15.234的8080端口!
配置文件格式很简单:[Source Address] [Source Port] [Destination Address] [Destination Port]
3、启动、关闭程序
启动: [root@zhenyunode rinetd]# rinetd -c /etc/rinetd.conf [root@zhenyunode ~]# ps -ef | grep rinetd root 27346 27300 0 12:34 pts/1 00:00:00 grep --color=auto rinetd root 32186 1 0 5月16 ? 00:00:00 rinetd -c /etc/rinetd.conf 停止: [root@zhenyunode rinetd]# killall rinetd
4、校验
root@zhenyunode rinetd]# netstat -tanulp|grep rinetd tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 32186/rinetd
【end】