Linux网络管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络管理相关的知识,希望对你有一定的参考价值。
网卡配置文件的基本属性:将Linux主机接入到网络,需要配置网络相关设置。一般包括如下内容:IP地址、NETMASK、Gateway、Route、Dns及主机名
IP/NETMASK主要用于确定自身所处的网络,以及对方主机是否与本主机在同一网络中
Gateway,网关,主要用于本主机与其他网络主机通讯使用。
Route,路由,建立路径条目,分三种类型
(1)网络路由:目标是一个网络
(2)主机路由:目标是一个主机
(3)默认路由:目标是所有的非本地网络,通常默认路由的下一跳为主机上某块网卡的网关地址
Dns,用于对域名进行解析。其中包括
(1)主DNS服务器
(2)备用DNS服务器
(3)第三备用DNS服务器
查看网卡信息:
dmesg | grep -i eth
[[email protected] ~]# dmesg | grep -i eth [ 4.694979] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:9a:bf:3a [ 4.695013] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection [ 5.498186] e1000 0000:02:05.0 eth1: (PCI:66MHz:32-bit) 00:0c:29:9a:bf:44 [ 5.498196] e1000 0000:02:05.0 eth1: Intel(R) PRO/1000 Network Connection [ 45.921206] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 45.969677] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 45.972994] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None [ 45.982936] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready [ 45.998182] e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None [ 46.042210] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 2937.512292] e1000: eth0 NIC Link is Down [ 2955.567387] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None [ 2955.569181] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
配置IP地址:
◆ifconfig
◆ip命令
◆GUI工具
◆TUI工具
◆编辑配置文件
■ifconfig命令:
命令行上直接输入ifconfig显示当前工作网卡的信息
[[email protected] ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.26 netmask 255.255.0.0 broadcast 10.1.255.255 inet6 fe80::20c:29ff:fe9a:bf3a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:9a:bf:3a txqueuelen 1000 (Ethernet) RX packets 30878 bytes 2775118 (2.6 MiB) RX errors 0 dropped 25 overruns 0 frame 0 TX packets 2427 bytes 585920 (572.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.18.19.105 netmask 255.255.255.0 broadcast 172.18.19.255 inet6 fe80::20c:29ff:fe9a:bf44 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:9a:bf:44 txqueuelen 1000 (Ethernet) RX packets 30001 bytes 2693956 (2.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11 bytes 1650 (1.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 452 bytes 45456 (44.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 452 bytes 45456 (44.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
禁用或启用:ifconfig 网卡名 up|down
[[email protected] ~]# ifconfig eth1 down [[email protected] ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.26 netmask 255.255.0.0 broadcast 10.1.255.255 inet6 fe80::20c:29ff:fe9a:bf3a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:9a:bf:3a txqueuelen 1000 (Ethernet) RX packets 31608 bytes 2844259 (2.7 MiB) RX errors 0 dropped 25 overruns 0 frame 0 TX packets 2482 bytes 593828 (579.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 452 bytes 45456 (44.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 452 bytes 45456 (44.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
设定IP地址: ifconfig 网卡名 IP/NETMASK 或者 ifconfig 网卡名 IP netmask NETMASK
[[email protected] ~]# ifconfig eth1 10.0.0.100/16 [[email protected] ~]# ifconfig eth1 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.100 netmask 255.255.0.0 broadcast 10.0.255.255 inet6 fe80::20c:29ff:fe9a:bf44 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:9a:bf:44 txqueuelen 1000 (Ethernet) RX packets 30662 bytes 2756949 (2.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 19 bytes 2278 (2.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
■ip命令
ip [OPTIONS] OPJECT {COMMAND}
OBJECT={link|addr|route}
link:链接接口,比如eth0
addr:管理接口上的地址
route:管理路由
▲Link:
set:设定接口属性
ip link set DEVICE up|down 禁用或启用接口
[[email protected] ~]# ip link set eth1 up [[email protected] ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.26 netmask 255.255.0.0 broadcast 10.1.255.255 inet6 fe80::20c:29ff:fe9a:bf3a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:9a:bf:3a txqueuelen 1000 (Ethernet) RX packets 34941 bytes 3137065 (2.9 MiB) RX errors 0 dropped 25 overruns 0 frame 0 TX packets 2639 bytes 608570 (594.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.100 netmask 255.255.0.0 broadcast 10.0.255.255 inet6 fe80::20c:29ff:fe9a:bf44 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:9a:bf:44 txqueuelen 1000 (Ethernet) RX packets 33412 bytes 2997333 (2.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 21 bytes 2418 (2.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
promisc {on|off}:是否支持混杂模式
name NEWNAME:设定接口的新名字
show:显示接口状态
[[email protected] ~]# ip link show eth1 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:9a:bf:44 brd ff:ff:ff:ff:ff:ff
▲addr:管理地址
add:添加地址
del:删除地址
[[email protected] ~]# ip addr add 192.168.0.2/24 dev eth1 [[email protected] ~]# ip addr show eth1 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:9a:bf:44 brd ff:ff:ff:ff:ff:ff inet 10.0.0.100/16 brd 10.0.255.255 scope global eth1 valid_lft forever preferred_lft forever inet 192.168.0.2/24 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe9a:bf44/64 scope link valid_lft forever preferred_lft forever
show:显示该网卡的所有地址信息
flush:清除协议地址
[[email protected] ~]# ip addr flush dev eth1 [[email protected] ~]# ip addr show eth1 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:9a:bf:44 brd ff:ff:ff:ff:ff:ff
▲管理路由
list|show:显示路由
[[email protected] ~]# ip route list default via 10.1.0.1 dev eth0 proto static metric 100 10.1.0.0/16 dev eth0 proto kernel scope link src 10.1.0.26 metric 100
add:添加路由
[[email protected] ~]# ip route add 10.1.0.17 via 10.1.0.1 [[email protected] ~]# ip route show 10.1.0.17 via 10.1.0.1 dev eth0 10.1.0.0/16 dev eth0 proto kernel scope link src 10.1.252.122 169.254.0.0/16 dev eth0 scope link metric 1002 default via 10.1.0.1 dev eth0
del:删除路由
[[email protected] ~]# ip route del 10.1.0.17 [[email protected] ~]# ip route show 10.1.0.0/16 dev eth0 proto kernel scope link src 10.1.252.122 169.254.0.0/16 dev eth0 scope link metric 1002 default via 10.1.0.1 dev eth0
■GUI方式:图形用户界面,简称GUI,指采用图形方式显示计算机操作系统用户界面
■TUI:
CentOS 6:命令行输入setup,选择Network Configurations
CentOS 7:命令行输入nmtui命令
■通过修改对应网卡的配置文件
每个网卡都有一个配置文件,/etc/sysconfig/network-scripts/ifcfg-NAME,其常用参数如下
DEVICE:网卡名,通常与配置文件名称相同
BOOTPROTO:静态启动还是dhcp获取地址static和none为手工配置IP,dhcp为动态分配IP
HWADDR:网卡的mac地址
NM_CONTROLLED:即NetworkManager的简写,建议设为no
ONBOOT:是否随系统启动激活
TYPE:网卡类型,通常有Ethernet,Bridge
UUID:网卡设备的唯一识别码
IPADDR:此接口的IP地址
NETMSK:子网掩码
GATEWAY:网关
DNS1:主DNS服务器
DNS2:备用DNS服务器
DNS3:第三备用DNS服务器
USERCTL:是否允许普通用户管理此接口
注意:重启网络服务后方能生效
路由管理:路由管理主要通过route命令来管理。
(1)查看本机内核路由表:route-n
[[email protected] ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.1.0.1 0.0.0.0 UG 100 0 0 eth0 10.1.0.0 0.0.0.0 255.255.0.0 U 100 0 0 eth0
(2)添加路由条目
route add [net|host] TARGET gw GATEWAY [dev NAME]
-net:后面跟一个网络地址,表示网络路由
-host:后面跟一个主机地址,表示主机路由
[[email protected] ~]# route add -host 10.1.0.17 gw 10.1.0.1 [[email protected] ~]# route add -net 10.1.0.0/16 gw 10.1.0.1 [[email protected] ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.0.17 10.1.0.1 255.255.255.255 UGH 0 0 0 eth0 10.1.0.0 10.1.0.1 255.255.0.0 UG 0 0 0 eth0 10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 eth0
(3)删除路由
route del [-net|-host] TARGET gw GATEWAY [dev NAME]
[[email protected] ~]# route del -net 10.1.0.0/16 gw 10.1.0.1 [[email protected] ~]# route del -host 10.1.0.17 gw 10.1.0.1 [[email protected] ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 eth0 [[email protected] ~]#
注意:所有配置配置立即发往内核去运行,所以会立即生效,但只是临时生效,如果想要永久生效,需修改配置文件。配置文件路径为/etc/sysconfig/network-scripts/route-NAME
两种风格:
(1) TARGET via GW
10.1.0.0/16 via 10.1.0.1 10.1.0.17 via 10.1.0.1
(2) 每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
nmcli命令:NetworkManager这是一个动态的网络控制和配置守护进程,nmcli就是控制NetworkManager的命令行工具。
语法:
SYNOPSIS nmcli [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { general | networking | radio | connection | device | agent } OPTIONS := { -t[erse] -p[retty] -m[mode] tabular | multiline -f[ields] <field1,field2,...> | all | common -e[scape] yes | no -n[ocheck] -a[sk] -w[ait] <seconds> -v[ersion] -h[elp] }
◆显示所有连接
[[email protected] ~]# nmcli connection show NAME UUID TYPE DEVICE myen a9471bc1-6e31-48c9-ba6c-8dc1540be943 802-3-ethernet -- Wired connection 1 d5e59663-432e-4441-b634-ac084c568831 802-3-ethernet -- System eth0 3f906d5a-de3b-4f40-b64f-5dd2c026e0d4 802-3-ethernet eth0 eth1 7a38daa3-4e50-4513-af57-be6afd7b9ee8 802-3-ethernet eth1 [[email protected] ~]#
◆显示当前所有活动的连接
[[email protected] ~]# nmcli connection show --active NAME UUID TYPE DEVICE System eth0 3f906d5a-de3b-4f40-b64f-5dd2c026e0d4 802-3-ethernet eth0 eth1 7a38daa3-4e50-4513-af57-be6afd7b9ee8 802-3-ethernet eth1
◆显示由 NetworkManager 识别到设备及其状态
[[email protected] ~]# nmcli device status DEVICE TYPE STATE CONNECTION eth0 ethernet connected System eth0 eth1 ethernet connected eth1 lo loopback unmanaged --
◆创建新连接a1,IP 自动通过dhcp
[[email protected] ~]# nmcli connection add con-name a1 type ethernet ifname eth1 Connection ‘a1‘ (16154e90-86cc-4a21-97f6-eedb304de2c0) successfully added.
◆指定静态IP
[[email protected] ~]# nmcli connection add con-name b1 autoconnect no ifname eth1 type ethernet ip4 172.10.0.22 gw4 171.16.0.1 Connection ‘b1‘ (baadd5bf-f85d-4fb2-9d69-8d89f82ed7a3) successfully added.
◆添加DNS
[[email protected] ~]# nmcli connection modify b1 ipv4.dns 8.8.8.8 [[email protected] ~]# nmcli connection show b1 ..........省略............. 802-3-ethernet.wake-on-lan-password: -- ipv4.method: manual ipv4.dns: 8.8.8.8 ipv4.dns-search: ipv4.addresses: 172.10.0.22/32 ipv4.gateway: 171.16.0.1 ipv4.routes: ..........省略.............
注意:如果想使上述操作生效,则需执行systemctl restart network 或者nmcli connection reload
谢谢浏览,因为nmcli命令是在太多,这里不做过多的例子,nmcli支持命令不全,或者提示你下步的输入,如果哪点忘了直接tab补全,以后会不定时更新。
本文出自 “学無止境” 博客,请务必保留此出处http://dashui.blog.51cto.com/11254923/1851646
以上是关于Linux网络管理的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段14——Vue的axios网络请求封装
VSCode自定义代码片段14——Vue的axios网络请求封装
VSCode自定义代码片段14——Vue的axios网络请求封装