Linux中的网络属性配置

1、网络属性配置方式

(1)静态指定
1)ifcfg家族:(各发行版均适用)
ifconfig:配置IP,NETMASK
route:路由
netstat:状态及统计数据查看
2)iproute2家族:(各发行版均适用)
ip OBJECT:
addr:地址和掩码;
link:接口;
route:路由;
ss:状态及统计数据查看(比netstat命令在网络连接数量众多时性能更好);
3)CentOS 7:nm(Network Manager)家族
nmcli:命令行工具;
nmtui:text window 工具,文本窗口工具;
(2)动态分配:依赖于本地网络中有DHCP服务
DHCP:Dynamic Host Configure Procotol,动态主机配置协议;
(3)配置文件
1)RedHat及相关发行版:/etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
2)DNS服务器指定
配置文件:/etc/resolv.conf
3)本地主机名配置
临时配置命令:hostname(CentOS 6),hostnamectl(CentOS 7)
配置文件:/etc/sysconfig/network

2、网络接口命名方式

(1)传统命名
以太网:ethX,例如eth0,eth1,…
PPP网络:pppX,例如ppp0,ppp1,…
(2)可预测命名方案(CentOS 7):根据网络的固件(Fireware)和拓扑结构预测名字。
1)如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1,eno2, …
2)如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, …
3)如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, …
4)如果用户显式定义,也可根据MAC地址命名,例如enx122161ab2e10,…
5)上述均不可用,则仍使用传统方式命名;
(3)命名格式的组成:
en代表ethernet,wl代表wlan,ww代表wwan。
(4)名称类型:
o:集成设备的设备索引号;
s:扩展槽的索引号;
x:基于MAC地址的命名;
ps:基于总线及槽的拓扑结构进行命名。

3、ifcfg命令家族: ifconfig, route, netstat

(1)ifconfig命令:接口及地址查看和管理
ifconfig [INTERFACE]
 # ifconfig -a:显示所有接口,包括inactive状态的接口;
地址配置:
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/MASK [up|down]
# ifconfig IFACE IP netmask NETMASK
options:
[-]promisc
ifconfig eth1 promisc:eth1接口启用混杂模式;
ifconfig eth1 -promisc:eth1接口不使用混杂模式;
立即送往内核中的TCP/IP协议栈,并生效;
ifconfig eth1 0:删除eth1上的IP地址;
管理IPv6地址:
add addr/prefixlen
del addr/prefixlen
(2)route命令:路由查看及管理
1)路由查看:
# route -n:以数字IP地址形式显示,不反解IP地址和端口号;
# route:将数字IP地址形式反解成主机名;
2)路由添加:
route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If]

route add -net  10.0.0.0/8  gw  192.168.10.1  dev  eth1
route add  -net  0.0.0.0/0  gw 192.168.10.1  
route add  default  gw 192.168.10.1  

3)路由删除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

route  del  -net  10.0.0.0/8  gw 192.168.10.1
route  del  default    删除默认网关

(3)netstat命令
显示路由表:netstat -rn
-r:显示内核路由表
-n:数字格式,而不要反解
netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t:TCP协议的相关连接;
-u:UDP协议相关的连接;
–udplite:简装版的UDP;
–sctp:另一种流控协议,比tcp功能更强大;
–raw:裸套接字(raw socket)相关的连接;
–all:所有状态的连接;
-n:以数字格式显示IP和Port;
–extend:显示扩展格式;
–program:显示相关的进程及PID;
,连接均有其状态;FSM(Finate State Machine);
常用组合:-tan, -uan, -tnl, -unl, -tunlp
显示接口的统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]
所有接口:netstat -i
指定接口:netstat -I<IFace>
(4)ifup/ifdown命令
通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置。

4、配置主机名和DNS

(1)配置主机名
hostname命令:
查看主机名:hostname
配置主机名:hostname HOSTNAME
(当前系统有效,重启后无效)
hostnamectl命令(CentOS 7):
显示当前主机名信息:hostnamectl status
设定主机名,永久有效:hostnamectl set-hostname
配置文件:/etc/sysconfig/network
HOSTNAME=<HOSTNAME>
(此方法的设置不会立即生效,但以后会一直有效)
(2)配置DNS服务器指向:(最多可以有三台主机被指为DNS服务器)
配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP
测试DNS(host/nslookup/dig):
# dig -t A FQDN:把FQDN主机名解析为IP,能解析不一定能访问;
# dig -x IP:把IP解析为FQDN主机名;

5、ip route家族

(1)ip命令
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns },OBJECT可简写,各OBJECT的子命令也可简写。
uname -r : 显示内核版本;
rpm -qi iproute:显示iproute版本,与内核版本相同;
1)ip link
ip link set:
dev NAME (default):指明要管理的设备,dev关键字可省略;
up和down:启用和禁用
multicast on或multicast off:启用或禁用多播功能;
name NAME:重命名接口,先停止接口
mtu NUMBER:设置MTU的大小,默认为1500;
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
ip link show=ip link list
ip link help:显示简要使用帮助;
2)ip netns:管理网络命名空间;
ip netns list:列出所有的netns;
ip netns add NAME:创建指定的netns;
ip netns del NAME:删除指定的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令

ip netns list
ip netns add mynet
ip link set eno33554984 netns mynet
ip netns exec mynet ip link show

3)ip address
ip address add
ip addr add IFADDR dev IFACE
[label NAME]:为额外添加的地址指明接口别名;有label的话,secondary address可以在ifconfig中显示,没有label不显示;
[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
[scope SCOPE_VALUE]: 地址作用范围;
global:全局可用;
link:接口可用;
host:仅本机可用;
ip address delete:
ip addr delete IFADDR dev IFACE
ip address show:
ip addr list [IFACE]:显示接口的地址;
ip address flush:清空接口上的所有地址;
ip addr flush dev IFACE
4)ip route
ip route add
ip route change
ip route replace
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]

# ip route add 192.168.0.0/24  via 10.0.0.1  dev eth1 src  10.0.20.100
# ip  route  add default  via  GW

ip route delete:
ip route del TYPE PRIFIX
ip route show TYPE PREFIX
ip route flush TYPE PREFIX
ip route get:
ip route get TYPE PRIFIX

ip route  get  192.168.0.0/24

6、ss命令

该命令是设计用来取代netstat命令的。
ss [options] [ FILTER ]
选项:
-t:TCP协议的相关连接
-u:UDP相关的连接
-w:raw socket相关的连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
LISTEN(监听)、ESTABLISEHD(建立的连接)、FIN_WAIT_1、FIN_WAIT_2、SYN_SENT、SYN_RECV、CLOSED。
EXPRESSION:
dport=目的端口,sport = 源端口;

'( dport = :22 or sport = :22 )'
~]# ss   -tan    '(  dport = :22 or sport = :22  )'
~]# ss  -tan  state  ESTABLISHED      所有-tan中状态为ESTABLISHED的连接

7、nmcli命令

nmcli [ OPTIONS ] OBJECT { COMMAND | help }
COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }

nmcli device disconnect eno33554984
nmcli device status

connection - start, stop, and manage network connections
COMMAND := { show | up | down | add | edit | modify | delete | reload | load }

nmcli conn down eno33554984

modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>

如何修改IP地址等属性?
# nmcli  conn  modify  IFACE  [+|-]setting.property  value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
manual

eg. nmcli conn modify eno33554984 + ipv4.address 192.168.30.100

nmtui(CentOS7)和setup(CentOS6)命令修改的是配置文件,要想立即生效需要重启网络服务。

8、配置文件

IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE;
路由的相关配置文件:/etc/sysconfig/network-scripts/route-IFACE;
配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性,他们可以通过vim等文本编辑器直接修改,也可以使用专用的命令进行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
ifcfg-IFACE配置文件参数:
DEVICE:此配置文件对应的设备的名称;
ONBOOT:在系统引导过程中,是否激活此接口;
UUID:此设备的惟一标识;
IPV6INIT:是否初始化IPv6协议栈;
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
TYPE:接口类型,常见的有Ethernet, Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
DEFROUTE:是否为默认路由所用接口;
IPADDR: IP地址;
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
GATEWAY:默认网关;
USERCTL:是否允许普通用户控制此设备,激活或停掉;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向,默认为允许;
HWADDR:设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制接口;

网络服务:network或NetworkManager。
管理网络服务:
CentOS 6:service SERVICE {start|stop|restart|status}
CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]
chkconfig --list:检查哪些服务是开启或关闭的;
配置文件修改之后,如果要生效,需要重启网络服务;
CentOS 6:# service network restart
CentOS 7:# systemctl restart network.service

非默认网关路由配置文件:/etc/sysconfig/network-scripts/route-IFACE
支持两种配置方式,但不可混用:
1)每行一个路由条目:TARGET via GW
2)每三行一个路由条目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
给接口配置多个地址:ip addr,ifconfig或配置文件都可以;
设置接口别名,以用于显示多个地址:
1)ifconfig IFACE_LABEL IPADDR/NETMASK
IFACE_LABEL: eth0:0, eth0:1, …
2)为别名添加配置文件
DEVICE=IFACE_LABEL
BOOTPROTO:网卡别名不支持动态获取地址,获取地址方式为static或none。

9、网络客户端工具

(1)ping命令
ping [OPTION] destination
-c #:发送的ping包个数;
-w #:ping命令超时时长;
-W #:一次ping操作中,等待对方响应的超时时长;
-s #:指明ping包报文大小;
(2)hping命令: (package: hping3)
选项:
–fast
–faster
–flood
-i uX(指明时间,单位微秒)
(3)traceroute命令
该命令用于跟踪从源主机到目标主机之间经过的网关。
(4)ftp命令
ftp服务命令行客户端工具:
get:一次下载一个文件;
mget:一次下载多个文件;
put:一次上传一个文件;
mput:一次上传多个文件;
delete:一次删除一个文件;
mdelete:一次删除多个文件;
bye:结束访问ftp服务;
(5)lftp命令
lftp [-p port] [-u user[,pass]] [site]
get,mget,put,mput,rm( 删除单个文件),mrm(一次删除多个文件);
(6)lftpget命令
lftpget [-c] [-d] [-v] URL [URL...]:只支持HTTP协议;
-c:继续此前的下载;断点续传;
(7)wget命令
该命令是一种非交互式的网络下载器。
wget [option]... [URL]...
-b:在后台执行下载操作;没有进度,一般用于脚本中;
-q:静默模式,不显示下载进度;
-O file:下载的文件的保存位置;不能下载目录,只能下载文件;
-c:续传;
–limit-rate=amount:以指定的速率传输文件。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页