Ubuntu系的Linux系統(tǒng)網絡配置詳解
一、配置文件詳解
在Ubuntu系的Linux系統(tǒng)里,與網絡相關的主要設置文件如下:
/etc/host.conf 配置域名服務客戶端的控制文件
/etc/hosts 配置主機名和IP地址的映射
/etc/resolv.conf 域名服務客戶端的配置文件,指定域名服務器的IP地址
/etc/network/interfaces 用于設置網絡配置信息(IP地址,子網掩碼,網關IP等)
/etc/udev/rules.d/70-persistent-net.rules 記錄主機中所有網卡的MAC地址
/etc/xinetd.conf 定義了由進程守護程序xinetd所守護的網絡服務
/etc/networks 實現(xiàn)域名與網絡地址的映射
/etc/protocols 設定主機使用的協(xié)議及各個協(xié)議的協(xié)議號(協(xié)議ID)
/etc/services 設定主機上各個網絡服務進程所使用的端口號
1./etc/host.conf配置文件
/etc/host.conf文件的默認內容如下:
# The"order" line is only used by old versions of the C library.
order hosts,bind #指定主機名的解析順序,即本地解析,DNS域名解析
multi on #允許主機擁有多個IP地址
這個文件一般不需要我們修改,默認的解析順序是本地解析,DNS服務器解析。也就是說在本系統(tǒng)里對于一個主機名首先進行本地解析,如果本地解析沒有,然后進行DNS服務器解析。
2. /etc/hosts配置文件
/etc/hosts文件的默認內容如下(不同主機,IP映射的主機名不同):
127.0.0.1 butbueatiful localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
可見,默認的情況是本機ip和本機一些主機名的對應關系,第一行是ipv4信息,第二行是ipv6信息,如果用不上ipv6本機解析,一般把該行注釋掉。
第一行的解析效果是,butbueatiful localhost.localdomain localhost三者都會被解析成127.0.0.1,我們可以用ping試試。
[root@butbueatiful ~]# ping -c 3 butbueatiful
PING butbueatiful (127.0.0.1) 56(84) bytes ofdata.
64 bytes from butbueatiful (127.0.0.1):icmp_seq=1 ttl=64 time=0.061 ms
64 bytes from butbueatiful (127.0.0.1):icmp_seq=2 ttl=64 time=0.052 ms
64 bytes from butbueatiful (127.0.0.1):icmp_seq=3 ttl=64 time=0.051 ms
--- butbueatiful ping statistics ---
3 packets transmitted, 3 received, 0% packetloss, time 1999ms
rtt min/avg/max/mdev = 0.051/0.054/0.061/0.009ms
[root@butbueatiful ~]# ping -c 3localhost.localdomain
PING butbueatiful (127.0.0.1) 56(84) bytes ofdata.
64 bytes from butbueatiful (127.0.0.1):icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from butbueatiful (127.0.0.1):icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from butbueatiful (127.0.0.1):icmp_seq=3 ttl=64 time=0.050 ms
--- butbueatiful ping statistics ---
3 packets transmitted, 3 received, 0% packet loss,time 1999ms
rtt min/avg/max/mdev = 0.035/0.046/0.055/0.011 ms
看到上面的結果,你可能會問為什么ping localhost.localdomain的時候,下面顯示的是卻是butbueatiful,這是因為第一個主機名butbueatiful后面的那些主機名其實都是butbueatiful的主機別名。
如果我們要追加新的本地解析,比如我們希望在我們的機器里把yyyy.com和www.yyyy.com都解析成192.168.0.100,那么就追加如下一句即可:
192.168.0.100 yyyy.com www.yyyy.com
同樣,在這里,www.yyyy.com是yyyy.com的主機別名。
如果你仔細一想,會發(fā)現(xiàn),其實這個文件是很危險的,如果有人惡意修改了你這個文件,比如把淘寶的網站域名解析到了他的釣魚網站,那你就要中招了。
3. /etc/resolv.conf配置文件
該文件用來指定DNS域名解析服務器的IP信息,其配置參數(shù)一般有以下四個:
nameserver #指定DNS服務器的IP地址
domain #定義本地域名信息
search #定義域名的搜索列表
sortlist #對gethostbyname返回的地址進行排序
但是最常用的配置參數(shù)是nameserver,其他的可以不設置,這個參數(shù)指定了DNS服務器的IP地址,如果設置不正確,就無法進行正常的域名解析。
一般來說,推薦設置2個DNS服務器,比如我們用google的免費DNS服務器,那么該文件的設置內容如下:
nameserver 8.8.8.8
nameserver 8.8.4.4
同樣,這個文件也是危險的,如果被人惡意改成了他自己的DNS服務器,他就可以為所欲為的控制你通過域名訪問的每個目的地了,這就是常說的DNS劫持。
4. /etc/network/interfaces配置文件
interfaces網絡接口配置文件,是Ubuntu網絡配置中最為重要的一個文件。本文件用來設定主機的IP類型,IP地址,子網掩碼,網關IP,廣播地址,MAC物理地址等信息,詳細的配置方法參見本文第二章節(jié),以下以靜態(tài)IP配置給出該文件的內容示例。
auto lo
iface lo inetloopback
auto eth0 # 指明當前配置的是主機上的eth0網卡
iface eth0 inetstatic # 將eth0網卡配置為靜態(tài)IP類型
address10.8.210.145 # 手動設定eth0網卡的IP地址為10.8.210.145
netmask255.255.255.0 # 手動設定子網掩碼
gateway10.8.210.7 # 手動設定網關IP
#pre-up ifconfigeth0 hw ether 11:22:33:44:55:66 # 手動設定MAC地址
【說明】一般網卡的MAC地址是由廠家設定好的,系統(tǒng)啟動的時候可以偵測到MAC地址,如非特殊需求,一般情況下不必人為修改。故而此處將該配置信息注釋掉,只做示例。
4. /etc/udev/rules.d/70-persistent-net.rules配置文件
該文件屬于主機的一個記錄文件,其主要作用就是記錄主機識別到的網卡信息。每當識別到一個新的網絡接口配置信息,就會自動追加到該文件,用戶也可以自己添加網絡接口信息。主機識別網卡信息主要依據(jù)就是通過MAC地址。
5. /etc/xinetd.conf配置文件
該文件就是簡單的用include命令指定了xinetd守護進程可以讀取的配置文件,所有xinetd可讀取的配置文件其實都放在/etc/xinted.d目錄下面。xinetd守護進程通過讀取不同的服務進程的配置文件,啟動并配置相應的服務進程。
6.其他配置文件
/etc/networks # 實現(xiàn)域名與網絡地址的映射
/etc/protocols # 設定主機使用的協(xié)議及各個協(xié)議的協(xié)議號(協(xié)議ID)
/etc/services # 設定主機上各個網絡服務進程所使用的端口號
上述三個配置文件的作用如注釋所說,一般保持默認,不必修改。
二、Ubuntu網絡配置常見問題
1.Ubuntu網絡配置中,圖形界面配置和文本命令行配置的區(qū)別
Ubuntu在Desktop版本中,提供了兩種方法來進行網絡參數(shù)配置。即圖形界面和文本命令行配置。文本命令行方式是通過修改/etc/network/interfaces來進行配置的。而圖形界面配置是通過network-manager進行配置,通過啟動Ubuntu桌面的SystemàPreferencesàNetwork Connections即可進行圖形化配置。network-manager的配置和直觀,按照提示一步一步操作即可,讀者可以自行查閱相關的配置方法。
但如果修改了interfaces配置文件,又配置了network-manager(以下簡稱nm),就會出現(xiàn)一些莫名其妙的問題:
1、interfaces和 nm中的網絡設置不一樣,系統(tǒng)實際的IP是哪個?
2、有時候莫名其妙的,界面右上角的網絡連接圖標就丟失了。
3、明明在nm中配置了正確的網絡設置,為什么就上不了網呢?
其實,只要弄清楚 interfaces和 nm之間的關系,這些問題就不難解釋了。
首先,當系統(tǒng)內沒有第三方網絡管理工具(比如nm)時,系統(tǒng)默認使用interfaces文件內的參數(shù)進行網絡配置。
接著,當系統(tǒng)內安裝了 nm之后,nm默認接管了系統(tǒng)的網絡配置,使用nm 自己的網絡配置參數(shù)來進行配置。
但是,如果用戶在安裝nm之后(Desktop版本默認安裝了nm),自己手動修改了interfaces 文件,那nm 就自動停止對系統(tǒng)網絡的管理,系統(tǒng)改使用interfaces 文件內的參數(shù)進行網絡配置。
此時,再去修改nm 內的參數(shù),不影響系統(tǒng)實際的網絡配置。若要讓nm 內的配置生效,必須重新啟用nm 接管系統(tǒng)的網絡配置。
現(xiàn)在知道了兩者之間的工作關系,再看上面的三個問題:
1、要看nm是否接管,如果沒有接管,系統(tǒng)實際的IP設置以interfaces 中的為準。反之,以nm 中的為準
2、當nm 停止接管的時候,網絡連接圖標就丟失了。
3、同樣是接管的問題。
如果用戶希望在Desktop版本中,直接使用interfaces 進行網絡配置,那么可以通過以下指令來關閉network-manager:
/etc/init.d/network-managerstop # 手動關閉network-manager
之后通過查看/etc/NetworkManager/nm-system-settings.conf 文件來確定nm是否停止網絡配置工作。即只需要確保/etc/NetworkManager/nm-system-settings.conf內的managed=false。
之后就可以通過文件命令行方式進行網絡參數(shù)配置。
vi/etc/network/interfaces # 手動修改interfaces配置文件
/etc/init.d/networkingrestart # 配置完成后,重啟網絡服務
如果希望能繼續(xù)使用nm 來進行網絡配置,則需要進行如下操作:
sudo service network-manager stop # 停止nm服務
sudo rm /var/lib/NetworkManager/NetworkManager.state# 移除nm 的狀態(tài)文件
sudo gedit /etc/NetworkManager/nm-system-settings.conf# 打開nm 的配置文件
修改文件里面這一行:managed=false,將false修改成true,然后重啟nm程序,指令如下:
sudo servicenetwork-manager start # 由nm程序重新接管網絡配置工作
【注意】如果手工改過/etc/network/interfaces,nm會自己把這行改成:managed=false(這里應該默認就是false)
2.Ubuntu網絡配置示例(以文本命令行為例,包含靜態(tài)IP配置和動態(tài)IP配置)
一般通過修改/etc/network/interfaces配置文件設置網絡接口參數(shù),示例如下:
#配置環(huán)回網絡,系統(tǒng)默認就好,一般不必修改。
auto lo
iface lo inetloopback
#配置靜態(tài)IP配置
#auto eth0 # 配置eth0網卡
#iface eth0 inetstatic # 將eth0網卡設置為靜態(tài)IP
#address10.8.210.145 # 配置eth0網卡的IP地址
#netmask255.255.255.0 # 配置eth0網卡的子網掩碼
#gateway10.8.210.7 # 配置eth0網卡的網關地址
#auto eth0:1 # 創(chuàng)建基于eth0網卡的虛擬網卡,即讓一個網卡擁有過個IP
#iface eth0:1inet static # 將虛擬網卡eth0:1設置為靜態(tài)IP
#address192.168.1.10 # 配置虛擬網卡eth0:1網卡的IP地址
#netmask255.255.255.0 # 配置虛擬網卡eth0:1網卡的子網掩碼
#gateway192.168.1.1 # 配置虛擬網卡eth0:1網卡的網關地址
#動態(tài)IP配置
auto eth0
iface eth0 inetdhcp # 將eth0網卡設置為動態(tài)IP
系統(tǒng)按主機中網卡的個數(shù)進行編號,例如主機存在三張網卡,則分別為eth0,eth1和eth2。每張網卡均可配置多個虛擬網絡IP。上述配置中,屏蔽了靜態(tài)IP配置,啟用的是動態(tài)IP配置。
之后需要在/etc/resolv.conf配置文件中指定DNS域名服務器的IP地址信息,參見第一小節(jié)說明。
配置完成后,執(zhí)行如下指令,使配置生效:
/etc/init.d/networkingforce-reload # 重新載入配置文件
/etc/init.d/networkingrestart # 重啟網絡服務
2.關于Ubuntu網絡配置中沒有eth0,只有eth1,eth2,eth3……的問題
Ubuntu是在虛擬機里安裝的,剛開始正常,網卡設備名為eth0。后來添加一塊網卡(虛擬的),然后eth0就消失了,只有eth1和eth2了。原來問題出在文件/etc/udev/rules.d/70-persistent-net.rules中。由于以前可以更改過MAC地址,所以70-persistent-net.rules中仍然保留了老網卡的內容,新網卡則被識別為eth1,eth2。
將表示老網卡的行注釋掉,然后將表示新網卡的行中eth1改成eth0,eth2改為eth1重啟即可
三、Ubuntu常用的網絡指令
ifconfig # 查看網絡信息
ifconfig ethx 10.8.210.150 # 臨時設置ethx網卡的IP地址為10.8.210.150 (重啟后失效)
//例如:ifconfig eth0 10.8.210.150
ifconfig ethx:y 192.168.1.125 # 臨時創(chuàng)建ethx網卡的虛擬網卡(重啟后失效)
//例如:ifconfig eth0:0 192.168.1.125 # 創(chuàng)建eth0的第一張?zhí)摂M網卡,并設置IP地址
ifconfig eth0:1 192.168.3.250 # 創(chuàng)建eth0的第二張?zhí)摂M網卡,并設置IP地址
ifconfig ethx:y down # 臨時刪除ethx網卡的虛擬網卡(重啟后失效)
//虛擬網卡的永久配置方式需要修改配置文件,參見本文第二章節(jié)第二點。
ifup ethx # 啟用網卡ethx (x=0,1,2,3……),需要root權限
ifdown ethx # 禁用網卡ethx,需要root權限
ifconfig ethx up # 啟用網卡ethx(x=0,1,2,3……),需要root權限
ifconfig ethx down # 禁用網卡ethx,需要root權限
/etc/init.d/networking start # 啟動網絡服務
/etc/init.d/networking stop # 關閉網絡服務
/etc/init.d/networking restart # 重啟網絡服務
/etc/init.d/networking force-reload # 強制重載網絡配置
聲明:文章內容整理來源于網絡,版權屬于原作者,如有問題,請聯(lián)系我們!
https://blog.csdn.net/GDUTLYP/article/details/73087476
- 上一篇:虛擬現(xiàn)實技術在采礦專業(yè)教學中的應用研究 2021/1/29
- 下一篇:虛擬現(xiàn)實在工程領域的應用 2021/1/28


