请选择 进入手机版 | 继续访问电脑版

GODIY 自己动手亲力亲为的DIY社区一起来吧--GODIY论坛

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 7356|回复: 6

[交流使用心得] 用My Book做NAT路由

[复制链接]
发表于 2009-2-19 21:37:23 | 显示全部楼层 |阅读模式
在这里学习了很多,也来分享一点心得。

买My Book之前,家里没有路由,只有一个多余的交换机。电脑直接连接ADSL Modem PPPoE拨号上网,现在有了My Book,My Book和电脑要一起上网像是成了个难题,虽然现在路由器也相当便宜,不过如果能让My Book一物多用显然更符合我的习惯。

说白了其实也很简单,无非就是要让My Book具备拨号上网和NAT的能力。PPPoE拨号上网的问题前面以经有朋友解决了,可以参考这个贴子:

https://godiy.net/thread-2790-1-1.html

有了这个做基础,实现NAT路由也是水道渠成。

要做的工作主要以下几步:

1. 编译内核的时候加上ipfilter相关的内容
实话说我也不确定倒底需要哪些东西,所以直接把ipfilter相关的东西全部选上了,编译成module,这样就不会因为编进了不需要的东西而影响内核的大小了。
总之最终编出来的内核模块中要包含以下的模块:
iptables
iptable_filter
iptable_nat
ip_conntrack
ip_conntrack_ftp
ip_nat_ftp
ipt_MASQUERADE
xt_state

2. 编译安装新内核
跟PPPoE的做法是一样的。不多说了。

3. 配置NAT
在/etc/modules中加入下面的内容,加载实施NAT需要的内核模块:
iptables
iptable_filter
iptable_nat
ip_conntrack
ip_conntrack_ftp
ip_nat_ftp
ipt_MASQUERADE
xt_state

在/etc/rc.local中加入下面的内容,第一行是用来打开内核的IP转发的功能,后面的都是iptables的规则,用来实现NAT。这里假设了PPPoE连接后的NIC是ppp0,内网子网是192.168.1.0/24,如果有不一致的需要相应改动。
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables --flush INPUT
/sbin/iptables --flush FORWARD
/sbin/iptables --flush POSTROUTING --table  nat
/sbin/iptables --policy FORWARD DROP
/sbin/iptables --table nat --append POSTROUTING --out-interface ppp0 --source 192.168.1.0/24 --jump MASQUERADE
/sbin/iptables --append FORWARD --in-interface ppp0 --match state --state ESTABLISHED,RELATED --jump ACCEPT
/sbin/iptables --append FORWARD --source 192.168.1.0/24 --jump ACCEPT

4. 重启,搞定

电脑只需把默认网关指向My Book的IP,DNS设成ISP提供的DNS服务器IP就可以上网啦。更完美的做法是在My Book上安装DHCP和DNS服务,不过这个对于CPU内存资源都很紧张的My Book来说,性价比实在有点不高。

有些朋友可能会担心My Book做NAT的性能,实际的测试表明,性能还是相当不错的。即使My Book在做高CPU高内存占用的工作,比如rtorrent在做HASH的时候,电脑通过它上网的速度仍然没有明显的下降,我的2M ADSL的HTTP下载速度还可以保持在200K以上。
发表于 2009-2-19 22:04:55 | 显示全部楼层
只能瞻仰,没有能力实践.........
发表于 2009-2-19 22:26:26 | 显示全部楼层
很久没有编译过内核了.
改日请教.

但是WD 只有一个网口啊.

难道搞一个网口两个IP ?
发表于 2009-2-19 22:30:30 | 显示全部楼层
不知道一个网口是怎么布线的?
 楼主| 发表于 2009-2-19 23:09:39 | 显示全部楼层
ADSL的话本来就是做虚拟的PPPoE拨号,所以只要把My Book和电脑和ADSL Modem接在同一个交换机上就可以了(前提是你得有个交换机,我在顶楼说了这个,不过忘了强调)。

PPPoE拨号以后,一般就会多出ppp0这个网卡,所以只要在真实的网卡eth0和ppp0间做NAT就可以了。

实事求是说,这个功能一般也是没有什么用的,这年头,多口的小路由器都满天飞了,反而在家庭里要找个交换机倒是不容易,只不过我自己正好需要这样用,所以就把它折腾出来了。

[ 本帖最后由 lifanxi 于 2009-2-19 23:13 编辑 ]
发表于 2009-2-20 03:59:28 | 显示全部楼层
iptables功能很强大的 即使不做NAT 也可以开防火墙过滤一下端口用 对于我这种将小白扔到DMZ的人来说 至少多了一层安全措施

捎带说一下 小白专职做NAT的话 性能也不会太低 甚至配合起来 拿来当硬件防火墙也不错
发表于 2009-2-21 08:52:30 | 显示全部楼层
晕,小白又能拨号又能代理的
真强
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|GODIY论坛 ( 粤ICP备12089271号

GMT+8, 2019-3-25 09:53 , Processed in 0.222904 second(s), 10 queries , File On.

Powered by Godiy.net

快速回复 返回顶部 返回列表