<!--
* @Author : wangxiaodiao
* @Date : 2020-11-04 09:54:36
* @LastEditors : wangxiaodiao
* @LastEditTime : 2020-11-05 19:23:40
* @FilePath : /linux/linux_network.md
-->
本文簡單介紹Ubuntu以及centos各版本下的網絡配置,希望能幫到大家
## Ubuntu
- Server版本
> 在 Ubuntu Server 版本中,因為只存有命令行模式,所以要想進行網絡參數設置,只能通過修改 `/etc/network/interfaces`
- Desktop版本
> 在 Ubuntu Desktop 版本中,除了可以修改 `/etc/network/interfaces` 來進行配置以外;還可以直接在 network-manager 中配置
### networking
1. 配置ip
打開網絡配置文件
`sudo vi /etc/network/interfaces`
修改配置信息
``` conf
auto eth0 #網卡名稱
iface eth0 inet static #設置靜態IP,若設置DHCP則將static改成dhcp即可
address 192.168.0.11 #IP地址,dhcp下該字段不需要
netmask 255.255.255.0 #子網掩碼,dhcp下該字段不需要
gateway 192.168.0.1 #網關,dhcp下該字段不需要
```
2. 修改DNS
打開DNS配置文件
`sudo vi /etc/resolv.conf`
改為如下內容:
``` conf
search localdomain #如果本Server為DNS服務器,可以加上這一句,如果不是,可以不加
nameserver 114.114.114.114 #希望修改成的DNS
nameserver 1.2.4.8 #希望修改成的DNS
```
3. 重啟網絡
`sudo /etc/init.d/networking restart`
### NetworkManager配置網絡
NetworkManager 是一種后端網絡服務,用于控制 操作系統上的網絡接口。它能替代系統networking管理網絡。在 Ubuntu Desktop 上,網絡管理器是通過圖形用戶界面管理網絡接口的默認服務。因此,如果要通過 GUI 配置 IP 地址,則應啟用網絡管理器。
Ubuntu 網絡管理器的替代方案是系統網絡networking,這是 Ubuntu 服務器 18.04 中的默認后端服務
因此,如果要禁用 NetworkManager,則應啟用網絡服務,而最好在網絡管理器運行時禁用網絡服務。
1. 禁用NetworkManager并啟用networking
首先,運行以下命令集以禁用網絡管理器:
``` shell
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager
```
啟動并啟用系統網絡服務:
``` shell
sudo systemctl unmask systemd-networkd.service
sudo systemctl enable systemd-networkd.service
sudo systemctl start systemd-networkd.service
```
將接口配置添加到網絡計劃配置文件(在 /etc/netplan 目錄中):
- dhcp配置
``` yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
```
- static靜態配置
``` yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.0.11/24]
gateway4: 192.168.0.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
```
通過運行以下命令應用更改:
`sudo netplan Apply`
2. 啟用NetworkManager并禁用系networking
啟動和啟用 Ubuntu 網絡管理器可以通過以下步驟完成(在 Ubuntu 服務器中不建議這樣做)。
首先,停止系統網絡服務:
``` shell
sudo systemctl disable systemd-networkd.service
sudo systemctl mask systemd-networkd.service
sudo systemctl stop systemd-networkd.service
```
在 Ubuntu 上安裝網絡管理器:
`sudo apt-get install network-manager`
打開 /etc/netplan 目錄中的 .yaml 配置文件,然后用以下內容替換現有配置:
``` yaml
network:
version: 2
renderer: NetworkManager
```
使用 netplan 命令為 NetworkManager 生成后端特定配置文件:
`sudo netplan generate`
啟動網絡管理器服務:
``` shell
sudo systemctl unmask NetworkManager
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
```
現在啟用了 NetworkManager,可以通過 GUI 或命令行使用 nmcli 命令完成接口配置。
雖然可以通過網絡管理器管理Ubuntu服務器上的網絡,但它基本上已被Netplan所取代。因此,建議在 Ubuntu 服務器 18.04 及更晚時使用系統網絡。
## CentOS
### networking配置網絡
1. 進入網絡配置文件目錄
首先,確保在root用戶下進行操作。進入網絡配置文件network-scripts目錄下。
`cd /etc/sysconfig/network-scripts/`
找到我們需要修改的配置文件, 如果沒有就新建一個配置文件
`vi ifcfg-eth0`
``` conf
BOOTPROTO="static" #static靜態,dhcp動態
ONBOOT="yes" #開機啟動
IPADDR=192.168.0.230 #靜態IP,dhcp不用配置
GATEWAY=192.168.0.1 #默認網關,dhcp不用配置
NETMASK=255.255.255.0 #子網掩碼,dhcp不用配置
DNS1=192.168.0.1 #DNS 配置,dhcp不用配置
DNS2=8.8.8.8
```
2. 重啟網絡
`systemctl restart network`
### NetworkManager
1. 安裝nmtui
`yum install NetworkManager-tui`
然后繼續去編輯eth0接口的網絡管理器配置:
`nmtui edit eth0`
根據ui輸入正確的信息即可
2. 重啟網絡
`systemctl restart network.service`
## 其他
使用ifconfig設置臨時靜態IP
1. 安裝ifconfig工具
- ubuntu
`apt install net-tools`
- centos
`yum install net-tools`
2. 配置臨時靜態ip
`ifconfig eth0 192.168.0.11`
3. 驗證
`ping` 網關,如果網關不通使用 `route` 獲取路由表
`route add default gw 192.168.0.1`
設置默認網關
網關設置好,網關能 `ping` 通后, `ping` 公用DNS
`ping 114.114.114.114`
DNS 能ping通還是不能上網的話設置正確的DNS
`vi /etc/resolv.conf`
添加DNS信息
``` conf
nameserver 114.114.114.114
nameserver 1.2.4.8
```