使用NAT共享上网
家里有一个台式机,但是没有无线网卡,必须使用网线连接路由器,但路由器在客厅,扯很长的网线很不方便.不过,我还有一台笔记本,上面装的是LINUX,所以想办法让台式机通过笔记本的eth口访问网络,那么就需要在笔记本上搭建一个NAT转发.
在linux上,使用IPtables轻松搞定这一切.组网图大致如下:
第一种方法:
IPtable设置如下:
# all interface export WAN=wlan0 # 获取无线网口的IP地址 export WAN_IP=`ifconfig ${WAN} | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'` export LAN=eth0 # 获取路由器的地址 export REAL_GW=`route | grep default | awk '{print $2}'` # remove all # 清除NAT中的所有规则 iptables -t nat -F # NAT settings # 因为台式机(window)中的GW设置的是10.121.36.1,所以从笔记本上看LAN口收上来的包都是到10.121.36.1的, # 这里就需要DNAT生效了,本质上是把数据包的目的地址给改掉,然后进入路由系统查找出端口 # 那么,下面这句话就是把去10.121.36.1的数据包,修改成${REAL_GW},这里是192.168.1.1 # 原有数据包头: # SRC: 10.121.36.89 DST: 10.121.36.1 iptables -t nat -A PREROUTING -i ${LAN} -d 10.121.36.1 -j DNAT --to ${REAL_GW} # 经过上面一句话后,变成 # SRC: 10.121.36.89 DST:192.168.1.1 # 然后,进入route table,找出端口,在笔记本(linux)上,192.168.1.1是default gateway.且是wlan0 # 所以数据包从wlan0走. # 数据包终归要有ACK,如果192.168.1.1回应10.121.36.89这个地址的话,将找不到路由而在路由器上丢弃. # 那么下面这句话,将源地址修改${WAN_IP},这里是192.168.1.4 iptables -t nat -A POSTROUTING -o ${WAN} -s 10.121.36.0/24 -j SNAT --to ${WAN_IP} # 最终,出wlan0的数据包就是: # SRC: 192.168.1.4 DST: 192.168.1.1 数据包从wlan口回来的时候就执行反操作.把数据发送给台式机(windows).
OK,一切正常.我不需要更复杂的设置了,如果大家有兴趣,请参考<更安全的linux网络>这本书.
第二种方法:
iptables -t nat -A POSTROUTING -s 10.121.36.0/24 -j MASQUERADE
网友依云http://lilydjwg.is-programmer.com/提供.
快速参考:
刘苏平的博客 http://www.liusuping.com/ubuntu-linux/iptables-firewall-setting.html
2012年10月13日 22:53
不是直接 iptables -t nat -A POSTROUTING -s 192.168.21.0/24 -j MASQUERADE 就可以了吗?
PS: 还需要开启 IPv4 转发,
sysctl -w net.ipv4.ip_forward=1
或者
echo 1 > /proc/sys/net/ipv4/ip_forward
2012年10月14日 01:37
多谢指教,呵呵.
起初我是想理解SNAT和DNAT的用法,MASQUERADE可以解决动态IP的问题.
2012年10月15日 03:01
求问如何学习iptables(几无网络知识的小白)
尝试看iptables的manpage,结果没有明白
2012年10月15日 03:17
那个太长了,一般人很难看下去的。我都是道听途说的。
2012年10月15日 03:31
那么其原理或者是其操作对项之原理呢?
道听途说到命令但是不知道这个命令是干什么用的很不爽呀....
2012年10月15日 04:38
查文档呗 :-)
2012年10月21日 01:49
iptables可参考<更安全的linux网络>, 上面介绍的很清楚.可以到iask.sina.com.cn中找到电子版,也可以到当当上买.
2012年10月21日 02:20
Thank you
2024年1月15日 21:50
Interested in playing online casino Or want to know new online casino promotions lighterandlocal Online casino reviews Answer every casino you want to kno