昨天重新安裝了下系統,發現虛擬機中安裝的Linux系統ip地址被重新分配,開始沒有覺得什么,可是打算連接虛擬機中搭建的solr集群時候發現悲劇了,原因是使用zookeeper搭建的solr集群,在zookeeper的配置文件中,設置的ip地址和現在系統的地址完全不一樣,雖然可以手動一個個修改。可是依然覺得太麻煩,最后決定直接修改Linux的ip地址得了,以下是修改方法。
注:修改必須使用 root權限,否則無法修改成功。
1. 在開始操作之前,先在命令行中 輸入命令 ifconfig 查看網卡名稱,如下圖所示

如圖中所示,可以看到兩個網卡名稱:ens33 和 lo。 而我們需要的就是修改名為ens33的網卡設置
注:這里有個坑,如果在Ubuntu 16.04之前的版本 此處顯示的網卡名稱是enth0, 而不是現在顯示的ens33.。
在網上找了張圖片,之前的網卡名稱確實和現在的網卡名稱不一樣

2. 在命令行輸入 vim /etc/network/interfaces , 使用 編輯器打開interfaces配置文件,然后輸入以下代碼。
1 # interfaces(5) file used by ifup(8) and ifdown(8) 2 auto lo 3 iface lo inet loopback 4
5 auto ens33 6 iface ens33 inet static 7 address 192.168.1.7 8 netmask 255.255.255.0 9 gateway 192.168.1.1 10 dns-nameservers 218.85.157.99 218.85.152.99
設置網卡名稱為 ens33 靜態ip地址, 網關 , DNS地址等。注意這里的網卡名稱需要根據你自己的網卡名稱修改。如果將網卡名稱ens33 改成eth0, 那么會出現如下的錯誤
[....] Restarting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code.
See "systemctl status networking.service" and "journalctl -xe" for details. failed!

修改后如下圖所示

3.設置DNS服務地址
DNS地址已經在第二步設置過了,這里說下注意的地方
1. 查看DNS地址可以在Windown的 命令窗口中輸入 ipconfig /all 查看DNS服務地址。
2. 不要手動在配置文件 /etc/resolv.conf 中設置 nameserver,否則重啟系統之后,所有的DNS地址都會被覆蓋。所以如果要設置DNS服務地址,請在第二步的 配置文件interfaces 中設置 dns-nameservers 屬性,每個DNS服務地址用空格間隔,重新網絡服務之后,所有的nameserver會被添加到 /etc/resolv.conf配置文件中。
下面是 /etc/resolv.conf 重啟網絡之后的 DNS服務地址

4. 設置完成之后,輸入命令 /etc/init.d/networking restart 重新啟動網絡


看到OK說明重啟成功了, 繼續通過 ifconfig 命令查看現在網卡情況

可以看到ip地址已修改成功。 我之前的地址是192.168.1.6
注:如果啟動不成功,或者出錯。在命令行輸入 systemctl restart network-manager.service 將網絡服務重新啟動
修改ip的過程很簡單,但是修改的過程需要注意 網卡名稱 和 DNS服務的設置,別踩坑了。
文章有很多不足的地方,歡迎大家指正。謝謝!
