之前一直在学习转发forwarding之类的问题,当初正好有机会和大家共享一下.
今天再一次须要用到iptables的port forwarding功能,半年前用过一次,忘得差不多了,今次重新学习,写到博客上来加深记忆。iptables的remote port forwarding即用linux自带的iptables实现NAT功能。当然iptables已实现该功能,我们须要做的只是配置(写iptables的配置文件)。
$ /sbin/sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1返回值为1则已开启,为0则未开启。默认状态为未开启。
/etc/sysctl.conf文件,找到net.ipv4.ip_forward=0这一行,改为1,然后执行命令
$ /sbin/sysctl -p /etc/sysctl.conf
/sbin/iptables -P FORWARD DROP /sbin/iptables -P INPUT DROP /sbin/iptables -A INPUT -p tcp --dport 389 -j ACCEPT /sbin/iptables -t nat -P PREROUTING ACCEPT /sbin/iptables -t nat -P POSTROUTING ACCEPT /sbin/iptables -A FORWARD -o eth0 -i eth1 -s A.ip -d B.ip -j ACCEPT /sbin/iptables -A FORWARD -o eth1 -i eth0 -s B.ip -d A.ip -j ACCEPT /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp -s A.ip --dport 389 -j DNAT --to-destination B.ip:389 /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PACKET IN --->---PREROUTING---[ routing ]--->----FORWARD---->---POSTROUTING--->--- PACKET OUT - mangle | - mangle - mangle - nat (dst) | - filter - nat (src) | | | | INPUT OUTPUT - mangle - mangle - filter - nat (dst) | - filter | | `---->----[ application ]---->----'
/etc/init.d/iptables save因为常常初学iptables的时候,都会发当初同一个目录里头还有一个工具叫iptables-save,人们常常会自信的使用它来保存或者叫持久化之前变动过的iptables规矩。一旦重启机器后,就抓狂了,变动都没了。后来细心专研才发现iptables-save须要给参数指定保存到哪个文件!但是保存到文件的话,每次重启,都得手动载入这个文件到iptables,那么网络就总有一段时间处于非正常状态。有没有一个iptables默认读取的配置文件呢?有,在/etc/sysconfig/iptables 。你可以手敲这个命令 /sbin/iptables-save /etc/sysconfig/iptables,但还有个更方便的方法,就是/etc/init.d/iptables save
文章结束给大家分享下程序员的一些笑话语录: 一程序员告老还乡,想安度晚年,于是决定在书法上有所造诣。省略数字……,准备好文房4宝,挥起毛笔在白纸上郑重的写下:Hello World
--------------------------------- 原创文章 By
转发和forwarding
---------------------------------