非固定IP在Ubuntu上架NAT+DHCP

非固定IP在Ubuntu上架NAT+DHCP

应爸爸要求,昨晚(今早)成功架起NAT,简言之就是Ubuntu + NAT + DHCP配上ADSL拨接(ppp0)。

Ubuntu是近来人气很高的Linux作业系统,建立于Debian之上,其图形化介面对使用者很友善。

DHCP(Dynamic Host Configuration Protocol)可以自动分发IP给其他电脑,只需要设定区段即可,例如中华电信便是使用DHCP才能给台湾那么多台电脑分发浮动IP。

NAT(Network Address Translation)可以将一个IP分给多台电脑共用,功能即一般的「IP分享器」。

所谓ADSL拨接就是一般人家的浮动IP,即需要使用拨接软体才能上网的。我是跟中华电信申请1浮动改1固定,目前还不用另外加钱。这个固定IP本质并非真的固定IP,无法开机自动连线,仍需拨号。

原本没用DHCP时,NAT一直架不起来,所以便决定先装DHCP,无奈百般输入「# sudo /etc/init.d/dhcp3-server restart」总是失败,后来才发现是「/etc/network /interfaces」没有设定好。

输入「# sudo gedit /etc/network/interfaces」,底下会有auto lo、auto eth0、auto eth1……等,网路上教eth0那边要打成如下(先不要打)

auto eth0
iface eth0 inet static
address xxx.xxx.xxx.xxx #固定IP
netmask 255.255.255.0
gateway xxx.xxx.x.xxx #预设闸道IP

我便有样学样,在address打上我固定的浮动IP,但是却无法使用,稍微研究后,发现下还有个「auto dsl-provider」,我顿时领悟。现在重点不是eth0或者dsl-provider这些东西,它们本来就是OK我才能上网,就让他们维持原状,eth0不该学他们用成固定IP的样子,就让它像原本的「iface eth0 inet dhcp」即可,现在要改的是eth1啊!

auto eth1
iface eth1 inet static
address 192.168.1.2 #自订私有IP
netmask 255.255.255.0

这个对内的网卡要设成固定(static),还要给予一个私有IP,且要与准备分配的IP同范围(如上方的1)。设定好后要记得重新启动网路服务「# sudo /etc/init.d/networking restart」

OK后,可以到系统->管理->网路检查,此时你会发现一开始来这边设就可以了。

接着别忘了「# sudo gedit /etc/default/dhcp3-server」,并修改「INTERFACES=""」成「INTERFACES="eth1"」。

最后一个困难的步骤就是修改「/etc/dhcp3/dhcpd.conf」,不过当我辛辛苦苦修改完,打开Firestarter并设定DHCP跟NAT(我选「Creat new DHCP configuration」),接着再回到「 /etc/dhcp3/dhcpd.conf」,里面的内容已经不是我参考鸟哥辛苦打入的,而是Firestarter灵巧的设定,比我打的还少,省了好几B的容量。

# DHCP configuration generated by Firestarter
ddns-update-style interim;
ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {
     option routers 192.168.1.2;
     option subnet-mask 255.255.255.0;
     option domain-name-servers 168.95.1.1; #中华电信的DNS位址
     option ip-forwarding off;
     range dynamic-bootp 192.168.1.30 192.168.1.50; #自动分配IP的范围
     default-lease-time 21600;
     max-lease-time 43200;
}

别忘了执行「# sudo /etc/init.d/dhcp3-server restart」

如果你跟我一样懒得自己设定iptables,接下来就超级轻松了。请安装Firestarter,记得将套件库中的Universe打勾。

以下设定若想参考图片,请参阅下方网址。

Firestarter -> Preferences -> NetWork Settings,连接乙太网路的「Internet connected network device」选择ppp0,连接内部电脑的「Local network connected device」选择eth1,中间两个Enable都打勾,底下您可以选择「 Keep existing DHCP configuration」,他会使用您方才的设定,若选择「Creat new DHCP configuration」则输入好分配IP的范围后,Firestarter会自己设定「/etc/dhcp3/dhcpd.conf」。

忘了提醒大家,要记得把线接好,不然Firestarter没有测到两张连接好的网路卡,它是不会启动NAT的。

事情到这边还没有结束,我的电脑还是不能上网,等我把原本区域网路设的192.168.1.3改成「自动取得IP位址」,下方选择「自动取得DNS伺服器位址」,一切才大功告成。

看着伴我许久的cFos显示「已中断连线」,竟有种莫名的悲痛,别了,我的cFos,而且从今以后,我要跟我弟弟共用IP了。
呵呵
还没有尝试过呢
谢谢分享了!