筆者作為一個文字的搬運者,也是一個小白用戶,因為老熬夜記憶力很是糟糕,一直靠別人筆記過活。這是筆者整理的在Linux中與上網有關的一些配置文件和小命令。 同樣,只是筆跡,沒有教學,怕誤人子弟。見諒。 ...
LINUX中於網路相關的配置文件
筆者作為一個文字的搬運者,也是一個小白用戶,因為老熬夜記憶力很是糟糕,一直靠別人筆記過活。這是筆者整理的在Linux中與上網有關的一些配置文件和小命令。
一、與網卡名相關的配置文件
centos5:
centos5在/etc/modprobe.conf文件中是使用別名定義的網卡名
alias eth0 e1000
可以在此處修改。
centos6:
centos6中的網卡名預設是eth0,當新增刪除網卡的時候網卡名會發生變化,可能會被頂替
centos6中可以修改/etc/udev/rules.d/70-presistent-net.rules文件中
DELL公司電腦可能會在BIOS中啟用bisodevname的軟體會把網卡名命名成
主板集成網卡會命名成em1 em2 。。。
PCI類型網卡會命名成pYpX Y:表示插槽,X:表示埠,第幾個介面
永久修改,修改配置文件:
預設是eth0 eth1 ....
編輯/etc/udev/rules.d/70-persistent-net.rules文件中的網卡信息,來修改網卡名
重啟電腦 或者 卸載網卡驅動再載入網卡驅動。modprobe -r e1000 ; modprobe e1000
臨時修改,利用命令修改:
先禁用網卡,在修改網卡名
ip link set eth0 down
ip link eth0 name Newname
centos7\8:
centos7\8中的網卡名是基於硬體、設備拓撲和設備類型命令。
systemd對網卡的命名:
1. 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,如:eno1
2. 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,如:ens1
3. 如果硬體介面的物理位置信息可用,則根據此信息命名,如:enp2s0
4. 如果用戶顯式啟動,也可根據MAC地址進行命名,如:enx2387a1dc56
5. 上述均不可用時,則使用傳統命名機制
使用傳統命名方法:
修改/etc/default/grub中
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
為grub2生成其配置文件
gurb2-mkconfig /boot/gurb2/gurb.cfg
二、與IP/NETMASK/GATEWAY/DNS相關配置文件
centos5\6\7\8通用方法
編輯/etc/sysconfig/network-scripts/ifcfg-eth0文件,來修改IP地址
MACADDR=11:22:33:44:55:66 臨時需改MAC地址
DEVICE=NET_NAME 指定網卡名
NAME=NET_NAME 指定網卡名
BOOTPROTO=static 指定IP獲取類型,none dhcp static,如果為DHCP就會自動從dhcp服務其上獲取IP\NEMAST\DNS\GATEWAY等相關信息
IPADDR=10.0.0.8 指定IP地址
NETMASK=255.255.255.0 指定子網掩碼
PREFIX=24 指定掩碼長度,CIDR的寫法
GATEWAY=10.0.0.1 指定預設網關,用於跨網段通信
DNS1=222.222.222.222 指定預設DNS
DNS2= 指定備用DNS
ONBOOT=yes 開機自啟動
MOMAIN=haha.com 自動補充搜索功能變數名稱
如果想要在一個網卡上設置多個IP地址,網卡別名需要靜態指定,不能動態獲取。
同時這個配置文件名需要時ifcfg-eth#:#,對應的DEVICE和NAME中需要對應的改成eth#:#
圖形管理工具:
centos5\6:
setup
system-config-network-tui
centos7\8:
nmtui
nmtui-connect
nmtui-edit
nmtui-hostname
三、與主機名相關的配置文件
centos6:
編輯/etc/sysconfig/network文件,來修改主機名
hostname命令可以臨時修改主機名
centos7\8:
編輯/etc/hostname文件,來修改主機名
hostname命令可以臨時修改主機名
hostnamectl set-hostname HOSTNAME 此命令會立即生效,同時會修改配置文件
備註:如果/etc/hostname文件不存在,主機名會預設改成localhost.localdomain
四、與路由相關的配置文件
需要手工創建:
保存再/etc/sysconfig/nework-scripts/route-IFACE route-固定格式 IFCAE用對等的網卡名替換
兩種寫法:
第一種:
10.0.0.8/8 via 172.16.0.1
第二種:
ADDRESS0=10.0.0.8
NETMASK0=255.0.0.0
GATEWAY0=172.16.0.1
ADDRESS1=10.0.0.8
NETMASK1=255.0.0.0
GATEWAY1=172.16.0.1
等等有幾條需要寫幾段
五、與配置IP地址等相關的小命令
ifconfig命令
ifconfig 顯示活動網卡信息
ifconfig DEVICE 顯示指定網卡的網卡信息
ifconfig DEVICE up|down 啟用禁用指定網卡
ifconfig DEVICE IPADDR netmask NETMASK 給指定的網卡設定IP和NETMASK
ifconfig DEVICE 0.0.0.0/0 臨時清空地址
ifconfig DEVICE:# IPADDR/NETMASK 給指定的網卡設置別名,同時指定IP和子網掩碼長度
ifconfig DEVICE:# down 取消網卡別名
選項:
-s 統計網卡的傳輸信息
-a 顯示所有網卡信息,包括禁用和啟用
備註:使用ip addr add 添加的非主要地址ifconfig是看不到,只能使用ip addr show查看。
ifconfig可以查看到網卡別名,如果想要清楚某個網卡別名可以直接禁用了 ifconfig eth1:1 down就直接沒有了
ip命令
來自於iproute軟體包
ip [ OPTIONS ] OBJECT COMMAND | help
ip [ -force ] -batch filename
address子集
show 顯示地址相關信息
ip addr show
ip addr show dev eth1 只顯示指定eth1網卡的相關信息,關鍵字dev可以省略
ip addr show to 10/8 只顯示10.0.0.0網段的地址
ip addr show label eth1:1 只顯示eth1:1網卡別名的地址相關信息
add 添加地址相關信息
ip address add ADDR/PREFIX dev DEVICE label I:2
del 刪除地址相關信息
ip address del ADDR/PREFIX dev DEVICE label I:2
flush 清空地址相關信息
ip addr flush dev eth0 清空eth0上的所有地址
ip addr flush dev eth1 to 10.3/16 刪除eth1網卡上10.3.0.0網段的所有相關地址
route子集
show 顯示路由條目信息,可省略
ip route
add 添加路由條目相關信息
ip route add 10.1.0.0/24 via 10.1.0.1 dev eth0 proto static metric 100
ip route add default via 7.7.7.200 dev eth0 添加預設路由
ip route add default via 8.8.8.200 dev eth0
del 刪除路由條目相關信息
ip route del 10.1.0.0/24 via 10.1.0.1
ip route del default dev eth0
link子集
show
ip link show 顯示網路介面信息,show可以省略,ip link 和 ip link show 結果一樣
ip link show DEVICE 顯示指定的DEVICE網卡介面信息
set
ip link set DEVICE up|down 啟用或禁用某個網卡,與ifconfig DEVICE on|off功能一致
ip link set DEVICE apr on|off 啟用或禁用某個網卡的arp功能
ip link set DEVICE multicast on|off 啟用或禁用某個網卡的多撥功能
ip link set DEVICE name NEW_DEIVCE_NAME 給某個網卡改名,但是改名的前需要先禁用網卡
ip link set DEVICE mtu MTU 指定某個網卡的mtu大小
ip link set DEVICE promisc on|off 指定某個網卡啟用或禁用混雜模式,主要用於抓包
選項:
-s 顯示介面統計統計信息
ip -s link 顯示介面統計信息,和netstat -i命令、ifconfig -s命令顯示功能一樣
-c 有顏色輸出,會在網卡地址或網卡名稱處加以顏色顯示,建議定義成別名alias ip='ip -c'
route命令
route 顯示路由表
route -n 以數字方式顯示路由表
route add/del [-net|-host|default] target [netmask Nm] [gw Gw] [dev If]
例:
route add -host 172.8.2.100/24 gw 10.0.0.1 dev eth1 添加一條主機路由,需要經10.0.0.1網關出去,指定eth1網卡出口,可以省略指定網卡
route add -net 10.0.0.0/8 gw 192.168.0.1 添加一條網路路由,需要經192.168.0.1網關出去,
route default gw 10.0.0.1 dev eth0 添加一條預設路由
route del -net 10.0.0.0/8 gw 192.168.0.1 刪除指定的網路路由條目
route del -host 172.8.2.100/24 gw 10.0.0.1 dev eth1 刪除指定的主機路由
route del default gw 10.0.0.1 刪除預設路由
arp命令
arp -n 可以查看通信過的IP地址和MAC的對應關係
-d IPADDR 刪除指定IPADDR地址
-s IPADDR MAC 綁定IP地址和MAC綁定,ARP綁定的優先順序最高
nmcli命令
IP地址的另外一個配置命令,是一個龐大的命令集合。多用來廣管理網卡配置文件
語法:nmcli [ OPTIONS ] OBJECT COMMAND | help
OBJECT=help | general | networking | radio | connection | device | agent | monitor
connection子集 針對的是網卡配置文件
子集語法:nmcli connection show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export [ARGUMENTS...]
show [DEVICE] 顯示所有或指定網卡狀態信息
reload 重新載入網卡配置文件
up DEVICE_C 啟用啟用某個網卡的某個配置文件
down DEVICEC_C 禁用啟用某個網卡的某個配置文件
add OPTION 給指定網卡添加配置文件
OPTION:
ifname DEVICE 相當於配置文件DEVICE=那列,這裡必須指定
type ethernet 相當於配置文件TYPE=那列,這裡必須指定
con-name NEW_NAME 相當於配置文件NAME=那列
ipv4.method auto|manual|disabled
auto就是dhcp manual就是static 相當於配置文件BOOTPROTO=那列,這裡必須指定
ipv4.addresses IP/NATMASK IP地址和掩碼
ipv4.dns DNS
ipv4.gateway 網關
ipv4.routes 路由
delete 刪除指定網卡的配置文件
modify DEVICE_C OPTION 編輯某個網卡配置文件
OPTION:
con-name NEW_NAME 修改網卡配置文件名
例: nmcli connection modify eth2 con-name eth2-jia 把網卡配置文件名eth2改成eth2-jia
ipv4.method auto|manual|disabled
auto就是dhcp manual就是static
ipv4.addresses IP/NATMASK 修改IP地址和掩碼
ipv4.dns 修改DNS
ipv4.gateway 修改網關
ipv4.routes 修改路由
device子集 針對的是網卡
子集語法:nmcli device status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp [ARGUMENTS...]
status 顯示網卡狀態,可以省略。nmcli device 等同於 nmcli device status
show [DEVICE] 查看網卡具體屬性信息,後面如果指定網卡了,可以顯示指定網卡的具體屬性信息
connect DEVICE 連接指定網卡
disconnect DEVICE 斷開連接指定網卡
delete DEVICE 刪除指定軟設備。This device is not a software device or is not realized
hostnamectl命令
僅在centos7\8有此命令
hostnamectl set-hostname haha 把主機名改成haha,立即生效,同時會修改配置文件/etc/hostname
hostnamectl status 顯示主機名,內核版本信息,操作系統版本信息等等
[root@haha8 ~]# hostnamectl status
Static hostname: haha8
Icon name: computer-vm
Chassis: vm
Machine ID: 18fe9b54d4144939aef656523690f3ed
Boot ID: 75b58ca1fca043b0b86b3adbaea7c04e
Virtualization: vmware
Operating System: CentOS Linux 8 (Core)
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-147.el8.x86_64
Architecture: x86-64
六、多網卡綁定的介紹
共7種模式:0-6 mode
MOde 0(balance-rr) 輪詢策略,從頭到尾順序的
Mode 1(active-backup) 主備策略,只有一個slave被激活
MOde 3(broadcast) 廣播模式,再所有的slave介面上傳送所有的報文,提供容錯能力
備註:
active-backup、balance-tlb 和 balance-alb 模式不需要交換機的任何特殊配置。其他綁定模式需要配置交換機以便整合鏈接。
創建bonding設備的配置文件
需要編輯/etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=band
DEVICE=band0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=24
BONDING_OPTS="mode=1 miimon=100"
備註:miimon是指監測鏈路時間間隔,如果miimon=100,表示每100ms,檢測一次,如果一條鏈路不通,就立刻轉入另一條線路
同時還需要再網卡配置文件中修改/etc/sysconfig/network-scripts/ifcfg-eth0和ifcfg-eth1
DEVICE=eth#
NAME=eth#
MASTER=bond0
SLAVE=yes
ONBOOT=yes
可以通過查看/proc/net/bonding/bond0綁定多網卡的具體信息。
卸載bond網卡
第一步,需要卸載bonding的內核模塊
第二步,刪除ifcfg-bond0配置文件,同時更改ifcfg-eth0和ifcfg-eth1文件
第三步,重啟網路服務
除了手工編寫配置問價的方法外,還可以nmcli命令來生成配置文件
#生成bond0配置文件
nmcli connection add ifname bond0 con-name bond0 type bond ipv4.method manual ipv4.addresses 10.0.0.18/24 ipv4.gateway 10.0.0.2 ipv4.dns 222.222.222.222 mode active-backup
#生成各網卡的bond的子文件
nmcli connection add ifname ens160 con-name ens160 type bond-slave master bond0
nmcli connection add ifname ens192 con-name ens192 type bond-slave master bond0
nmcli connection add ifname ens224 con-name ens224 type bond-slave master bond0
#啟用各網卡配置文件
nmcli connection up ens160
nmcli connection up ens192
nmcli connection up ens224