linux网络相关属性配置(一)
将linux主机接入至网络中
1.IP/NETMASK:本地通信
2.路由(网关):跨网络通信
3.DNS服务器地址:基于主机名的通信
配置方式
静态指定:
1)命令
ifcfg家族
ifconfig:IP/NETMASK
route:路由
netstat:查看状态及统计数
iproute2家族
ip OBJECT:
addr:地址和掩码
route:=路由
ss:查看状态及统计数
Centos7 nm
nmcli:命令行工具
nmtul:text window工具
注意:a)DNS服务器指定
配置文件:/etc/resolv.conf
b)主机名配置
hostname:临时指定主机名
配置文件/etc/sysconfig/network
hostnamectl(Centos7)
2)配置文件
RedHat及相关发行版
/etc/sysconfig/network-scripts/ifcfg-network_name
动态指定:依赖于本地网络中的DHCP服务
网络接口命名方式 :
传统命名方式:
以太网:ethX
PPP网络:PPPX
可预测命名方案
支持多种不同的命名机制:
fireware,拓扑结构
命名格式的组成
en:ethernet
wl:wlan
ww:wwan
名称的类型
o:集成设备的索引号
s:扩展槽的索引号
x:基于MAC地址的命名号
p:基于总线及槽的索引号
linux网络属性配置
ifcfg命令家族:ifconfig,route,netstat
ifconfig命令:
ifconfig [-v] [-a] [-s] [interface]
ifconfig -a 显示所有网络接口
ifconfig IFACE IP/NETMASK up 配置并激活网络接口
ifconfig IFACE IP netmask NETMASK 配置IP
注意:ifconfig是立即送往内核中的TCP/IP协议栈生效
route命令:路由查看及管理
路由条目类型
主机路由:目标地址为单个IP
网络路由:目标地址为IP网络
默认路由:目标为任意主机:0.0.0.0/0.0.0.0
route [-CFvnNee] [-A family |-4|-6]
查看路由
route -n 以数字方式显示路由条目
[root@Centos-7-24 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
目标地址 下一跳网关 目标掩码
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
网关显示为0.0.0.0表示为本地网络无需网关,直连路由
UG:up gateway
Metric:到达目标网络的开销
iface:由那个本地网络接口发出
添加路由
route [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
例:
route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth0 到达网络10.0.0.0需通下一跳192.168.10.1,本地etho发出
route add -net 0.0.0.0/0.0.0.0 gw 192.168.10/route add default gw 192.168.10.1 默认网关去往任意网络
删除路由
route [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
route del -net 10.0.0.0/8
netstat命令
netstat -rn:显示路由表
-r:显示内核路由表
-n:以数字方式显示
netstat [--tcp|-t] [--udp|-u] [--listening|-l] [--all|-a] [--numeric|-n]
-w:raw socket 相关连接
-l:处理监听状态的连接
-a:显示所有状态
-e:扩展格式
-p:显示相关的进程和PID
[root@Centos-7-24 ~]# netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
接收队列 发送队列 远程IP
tcp 0 96 10.0.0.24:22 10.0.0.1:14083 ESTABLISHED
常用组合 -tan -uan -tnl -unl -tunlp
netstat {--interfaces|-I|-i} [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users] [--continu‐
ous|-c] [delay] 显示接口的统计数据
所有接口
netstat -i
[root@Centos-7-24 ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 2118 0 0 0 1317 0 0 0 BMRU
ens37 1500 301 0 0 0 63 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 LRU
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 2118 0 0 0 1317 0 0 0 BMRU
ens37 1500 301 0 0 0 63 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 LRU
指定接口
netstat -I
[root@Centos-7-24 ~]# netstat -Iens33
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 15324 0 0 0 10175 0 0 0 BMRU
fup/ifdown命令:通过配置文件/etc/sysconfig/network-scripts/ifcifg-IFACE来识别接口并完成配置的
hostname命令
hostname:查看主机名
(centos6)hostname HOSTNAME 只当前有限
(centos7)hostnameclt set-hostname HOSTNAME 永久有限
status Show current hostname settings
set-hostname NAME Set system hostname
set-icon-name NAME Set icon name for host
set-chassis NAME Set chassis type for host
set-deployment NAME Set deployment environment for host
set-location NAME Set location for host
hostname 配置文件位置:/etc/sysconfig/network
注意:修改配置文件后不会立即生效,需激活
配置DNS服务器指向:最多可以指定3个
DNS配置文件位置:/etc/resolv.conf
DNS配置测试
dig -t A FQDN(主机名):将主机名解析为IP
dig -x IP:将IP反解为主机名
dig测试不会解析/etc/hosts文件内的FQDN
[root@Centos-7-24 ~]# dig -t A www.baidu.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> -t A www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59519
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 218 IN CNAME www.a.shifen.com.
www.a.shifen.com. 263 IN A 14.215.177.38
www.a.shifen.com. 263 IN A 14.215.177.39
;; Query time: 33 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Thu Oct 22 11:27:20 CST 2020
;; MSG SIZE rcvd: 101
iproute2家族
ip命令
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics |
token | macsec }
ip OBJECT:
ip link:网络接口配置
ip link set:配置网络接口属性
ip link set IFACE up/down
ip link set IFACE multicast on/off 启用多波
例:
ip link set dev ens33 up 启用ens33网络接口
ip link set name 更改网络接口名字
例:
[root@Centos-7-24 ~]# ip link set ens37 down
[root@Centos-7-24 ~]# ip link set ens37 name eth0
[root@Centos-7-24 ~]# ip link set ens37 name eth0
ip link show 显示设备特性
[root@Centos-7-24 ~]# ip link show/list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:81:9b:11 brd ff:ff:ff:ff:ff:ff
ip link help 显示简要命名用帮助
ip netns:管理网络名称空间
ip netns list 列出所有的netns
ip netns add NAME 创建指定的netns
ip netns del NAME 删除指定的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令
ip address 管理地址协议
ip address add 添加新地址
ip address {add|change|replace} IFADDR dev IFNAME [ LIFETIME ]
[ CONFFLAG-LIST ]
label NAME :为额外添加的地址指明接口别名;只有加上别名ifconfig才能显示网络接口信息
broadcast ADDRESS:广播地址;会根据IP和NETMASK自动计算得到
scope SCOPE_VALUE :作用域
global:全局可用
link:接口可用
host:本机可用
ip address delete 删除地址
ip address show 查看地址
ip address flush 清空地址
ip route命令
ip route add:添加路由
ip route change 修改路由
ip route replace 修改或添加路由
ip route get 指明获取单条路由
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
[root@Centos-7-24 ~]# ip route add 192.168.0.0/24 via 10.0.0.2 dev ens37
[root@Centos-7-24 ~]# ip route list
default via 10.0.0.2 dev ens33 proto static metric 100
default via 10.0.0.2 dev ens37 proto dhcp metric 101
10.0.0.0/24 dev ens37 proto kernel scope link src 10.0.0.30
10.0.0.0/24 dev ens33 proto kernel scope link src 10.0.0.24 metric 100
192.168.0.0/24 via 10.0.0.2 dev ens37 --通过ens37接口上的两个地址下一次为2去访问,可以指明网络接口SRC去访问
ip route delete:删除路由
[root@Centos-7-24 ~]# ip route del 192.168.0.0/24 dev ens37
ip route show/list:显示路由表
TYPE PRIFIX
[root@Centos-7-24 ~]# ip route show src 10.0.0.24
10.0.0.0/24 dev ens33 proto kernel scope link metric 100
ip route flush 清空路由表
TYPE PRIFIX
ip route get 获取指定单个路由
ip route get 192.168.0.0/24
ss命令
ss [options] [ FILTER ]
-t :TCP
-u:UDP
-w:raw socket 相关连接
-a所有状态连接
-n数字显示
-p相关程序及PID
-e扩展格式信息
-m内存用量
-o 计时器信息
TCP常见状态
TCP FSM
LISTEN:监听
ESTABLISHED 建立的连接
FIN_WAIT1:等待完成1
FIN_WAIT2:等待 完成2
SYS_SENT:发送同步信号
SYS_RECV:接收同步信号
CLOSED:关闭
EXPRESSION
dprot 目标端口
sprot 源端口中
例:'( dport =:22 or sport=:22 )'
[root@Centos-7-24 ~]# ss -tan state ESTABLISHED '( dport = :22 or sport = :22 )'
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 96 10.0.0.24:22 10.0.0.1:14083
通过修改配置文件来配置网络属性:
/etc/sysconfig/network-scripts/ifcfg-IFACE
通过大量参数来定义接口的属性,其可通VIM等文本编辑器直接修改,也可以使用专用的命令进行修改
(centos6 system-config-network(setup),centos7 nmtui)
/etc/sysconfig/network-scripts/route-IFACE路由
注:DEVICE名字必须与ifcfg-IFACE 名一致
ifcfg-IFACE文件参数:
ONBOOT:是否激活此接口
NETBOOT:是否支持网络引导
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp\bootp\static\none
TYPE:接口类型,常见的有Ethernet,Bridge
PEERDNS:如查BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许
网络服务:network/NetworkManager
chkconfig --list:查看所有服务的状态
管理网络服务
Centos 6 service SERVICE start/stop/status/restart
centos 7 systemctl start network
配置文件修改后,如需生效,要重启网络服务
systemctl restart network
能过配置文件配置非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE路由
支持两种配置方式,但不可混用
1)每行一个路由条目
TARGET via GW
vim route-ens37
例:
ip route 192.168.1.0/24 via 10.0.0.2
2)每三行一个路由条目
ADDRESS#=TRAGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
例:
vim route-ens37
ADDRESS0=20.0.0.0 第一组
NETMASK0=255.0.0.0
GATEWAY=192.168.10.2
给接口配置多个地址:
ip addr之外,ifconfig或配置文件都可以
1)ifconfig IFACE_LABEL IPADDR/NETMASK
IFACE_LABEL:eth0:0,eth0:1...
2)为别名添加配置文件
DEVICE=IFACE_LABEL
注:BOOTPROTO:网卡别名不支持动态获取地址
static,none
nmcli命令
nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent | monitor} [COMMAND] [ARGUMENTS...]
nmcli device {status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp} [ARGUMENTS...] 接口状态
[root@Centos-7-24 network-scripts]# nmcli device status --查看所有网络接口状态
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
ens37 ethernet connected Wired connection 1
lo loopback unmanaged --
connection 管理网络连接
nmcli connection {show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export} [ARGUMENTS...]
[root@Centos-7-24 network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 2ce372ec-7092-4d3b-80aa-623f315686ab ethernet ens33
Wired connection 1 94875288-78a4-3631-9f5f-aa159486c9d1 ethernet ens37
如何修改IP地址属性
#nmcli conn modify IFACE [+|-]setting.property value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
浙公网安备 33010602011771号