非固定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了。
請參閱以下網站(依順序):
Ubuntu Note - DHCP Server
臺大資工 - linux server, network 和 dhcp 設定簡介
鳥哥的Linux私房菜 - Linux 防火牆與 NAT 主機
鳥哥的Linux私房菜 - DHCP 伺服器


啊啦...
完全看不懂...
我只會用現成的程式而已...
如果可以,只要用現成的程式我就滿足了,只可惜我是資管的,不能只會用現成的,最算只用現成的,也要熟悉到可以任意把玩才行。
原來Firestarter的啟動腳本會從ifconfig的輸出信息中查找相關接口的配置信息。但它查找的是英文的字符串,現在由於ifconfig的輸出信息是中文的,一些參數信息它無法獲取了,所以導致啟動失敗。按照如下方法就能解決,終端中輸入
sudo gedit /etc/firestarter/firestarter.sh
在
# External network interface data
這行註釋的上面,添加一行:
LANG=en_US
這樣,ifconfig的輸出就是英文的了,也就解決這個問題
回溯發現的
修改:
/etc/network/interfaces
auto eth1
iface eth1 inet static
address 192.168.1.2 #自訂私有IP(修改此行)
netmask 255.255.255.0
看到酷!學園「關於nat設定卻不能上網的問題 」,發現這篇文章有錯,剛剛去看我那臺ubuntu,發現跟我寫的有個小地方不同,不曉得是我當時筆誤,還是後來忘了有改檔案?
原本那行ip是寫192.168.1.254。
其實對於網管不是很在行,這篇也只是初學者的記錄,希望不會誤人子弟啊。
由於沒有酷學園的帳號似乎無法回應,所以直接在這邊講。
很實用 謝了
謝謝,現在要我憑空架的話,我只記得怎麼用Firestarter了XD
文章被盜拷了對岸真強
http://www.oklinux.cn/html/network/ser/20080824/60000.html
這……真糟糕,好久以前寫的東西,不曉得有沒有寫錯。
之後發現有錯再自己偷偷改就好了,科科。
(有沒有用trackback我不是很在意,可是沒有打我的名字或網誌,真希望那個網站主機爆炸。)
Please provide detail of funding by program.
請教一下我想A連B目前用跳線連接兩台電腦。
A想設定192.168.1.199,B想設定192.168.1.200讓A可以連到B的資料。
想請問這部分要如何設定 ? 目前有多買一張網卡來讓內部網路用。
感謝^^
理論上你接下來只要把遮罩設成255.255.255.0應該就可以了。
我也沒有試過,不過印象中是這樣。
要透過遮罩讓兩台電腦處於同一個網段下,這樣才能形成區網並互通資料。