用于获取socket统计信息等,功能大致与netsata相同,ss工具是用于取代netstat的,因为很多用法相同;相比netstat而言,ss命令主要在选项上多支持了-o和-m选项,并且支持过滤功能;此外,在网络连接数量众多时,ss命令的执行性能要比netstat高得多。
语法格式:
ss [options] [ FILTER ]
其中,FILTER := [ state TCP-STATE ] [ EXPRESSION ],表示过滤条件;
EXPRESSION:
dport = :目的端口;
sport = :源端口;
常用选项:
-t:显示tcp相关的连接;
-u:显示udp相关的连接;
-w:显示raw socket相关的连接;
-a:显示所有状态的连接;
-l:显示处于监听状态的连接;
-n:以数字格式显示IP和Port;
-p:显示相应的进程及其PID;
-e:以长格式显示;
-m:显示内存用量;
-o:显示计数器信息;
示例:
显示源端口为22或目标端口为22的tcp连接:
[root@localhost ~]# ss -tan '( dport = :22 or sport = :22 )'
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
ESTAB 0 52 10.10.10.140:22 10.10.10.1:56108
LISTEN 0 128 :::22 :::*
显示连接状态为ESTABLISHED的连接:
[root@localhost ~]# ss -tan state established
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 52 10.10.10.140:22 10.10.10.1:56108
以上为iproute家族命令的介绍。此外,还可指定本地主机名以及DNS服务器的地址:
(1)DNS服务器的指定:
配置文件:/etc/resolv.conf
用法示例:
添加DNS服务器地址:114.114.114.114:
[root@localhost ~]# vim /etc/resolv.conf
nameserver 114.114.114.114
测试配置的DNS指向是否有效:
测试工具:dig/nslookup/host
①dig工具:
用法:
dig -t A FQDN:由FQDN解析出IP地址;(FQDN即为主机名)
dig -x IP:由IP地址反解出FQDN;
用法示例:
由FQDN解析出IP地址:
[root@localhost ~]# dig -t A public1.114dns.com.
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A public1.114dns.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64858
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;public1.114dns.com. IN A
;; ANSWER SECTION:
public1.114dns.com. 441 IN A 114.114.114.114 #解出地址,说明该DNS
服务器地址有效;
;; Query time: 38 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Sat Feb 11 19:38:48 CST 2017
;; MSG SIZE rcvd: 63
有时还可反解,不过大多数IP地址不支持反解:
[root@localhost ~]# dig -x 114.114.114.114 #由IP地址解析出FQDN;
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -x 114.114.114.114
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48274
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;114.114.114.114.in-addr.arpa. IN PTR
;; ANSWER SECTION:
114.114.114.114.in-addr.arpa. 330 IN PTR public1.114dns.com. #获取FQDN,反解成
功;
;; Query time: 39 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Sat Feb 11 19:42:21 CST 2017
;; MSG SIZE rcvd: 89
注意:dig工具在解析过程中不会检查本机HOST表(即/etc/hosts文件);
②nslookp工具:
用法示例:
由FQDN解析出IP地址:
[root@localhost ~]# nslookup 114.114.114.114
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
114.114.114.114.in-addr.arpa name = public1.114dns.com.
Authoritative answers can be found from:
由IP地址反解出FQDN:
[root@localhost ~]# nslookup 114.114.114.114
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
114.114.114.114.in-addr.arpa name = public1.114dns.com.
Authoritative answers can be found from:
③host工具:
用法示例:
由FQDN解析出IP地址:
[root@localhost ~]# host public1.114dns.com.
public1.114dns.com has address 114.114.114.114
由IP地址反解出FQDN:
[root@localhost ~]# host 114.114.114.114
114.114.114.114.in-addr.arpa domain name pointer public1.114dns.com.
(2)本地主机名的配置:
①hostname命令;
②hostnamectl命令(CentOS 7专用);
③配置文件:/etc/sysconfig/network;
①hostname命令
用法示例:
查看当前主机名:
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostname
②hostnamectl命令(CentOS 7专用)
用法示例:
显示当前主机名信息:
[root@localhost ~]# hostnamectl
Static hostname: localhost
Transient hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: dca382f93a984870b93aab37ceaf66dc
Boot ID: 033b1679890b4e6e9c1bafe6528e9c8e
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.el7.x86_64
Architecture: x86-64
将主机名改为:
[root@localhost ~]# hostnamectl set-hostname
[root@localhost ~]# hostnamectl #注意:该命令会修改配置文件,不会立即生效,但重启后
会永久生效;
Static hostname:
Pretty hostname:
Icon name: computer-vm
Chassis: vm
Machine ID: dca382f93a984870b93aab37ceaf66dc
Boot ID: 033b1679890b4e6e9c1bafe6528e9c8e
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.el7.x86_64
Architecture: x86-64
③配置文件:/etc/sysconfig/network
用法示例:
[root@localhost ~]# vim /etc/sysconfig/network
HOSTNAME=www.linuxidc.com #注意:此方法不会立即有效,但重启会一直有效;
网络属性配置文件:
①修改接口属性(IP/NETMASK/GW/DNS)的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE;
②静态路由的配置文件:/etc/sysconfig/network-scripts/route-IFACE;
①修改接口属性(IP/NETMASK/GW/DNS)的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE:
该配置文件通过大量参数来定义接口的属性,可通过文本编辑器vim来编辑,也可通过命令行修改此配置文件(在CentOS 6上为system-config-network(setup),在CentOS 7上还支持nmtui)。
配置文件参数:
DEVICE:此配置文件对应的设备的名称;
ONBOOT:在系统引导过程中,是否激活此接口;
BOOTPROTO:激活此接口时通过什么协议来配置此接口的属性;常用的有:dhcp, bootp,
static, none;
PEERDNS:如果BOOTPROTO的值为"dhcp",则是否允许dhcp server分配的DNS服务器指向覆盖本
地手动指定的DNS服务器指向;默认为允许(yes);
UUID:此设备的唯一标识;
IPV6INIT:是否初始化IPv6;
TYPE:接口类型,常见的有:Ethernet, Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:指定搜索域;
IPADDR:IP地址;
NETMASK:子网掩码;在CentOS 7上还支持使用PREFIX以长度方式指明子网掩码;
GATEWAY:默认网关;
USERCTL:是否允许普通用户控制此设备;
HWADDR:此设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制此接口;
修改好配置文件后,需要重启网络服务通过一些脚本读取该配置文件才能生效:
CentOS 6:
方式一:# /etc/init.d/network restart
方式二:# service network restart
CentOS 7:
方式一(推荐):# systemctl restart network.service
方式二:# service network restart
相关的网络服务有:
network
NetworkManager
扩展:给网络接口配置多个地址,给每个附加的地址一个网卡别名的实现:
用ifconfig命令直接配置:
[root@loaclhost ~]# ifconfig ens33:0 192.168.1.1/24
[root@loaclhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.140 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::e927:7013:71ec:ffd2 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c8:ff:4e txqueuelen 1000 (Ethernet)
RX packets 56804 bytes 12970225 (12.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 18808 bytes 2949415 (2.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:c8:ff:4e txqueuelen 1000 (Ethernet)
......(以下省略)......
注意:使用ifconfig命令直接配置网卡别名虽能立即生效,但无法永久生效;
要想永久生效,需要为其添加接口属性配置文件,可复制其他/etc/sysconfig/network-scripts/下的其他接口属性配置文件,然后修改配置即可;而其中配置文件至少包含以下几个部分:
DEVICE=IFACE_LABEL #指定网卡别名;
BOOTPROTO=static #网上别名不支持动态获取地址;支持static, none;
IPADDR= #IP地址;
NETMASK= #子网掩码;
删除原有其他接口的HWADDR
删除原有其他接口的UUID
因此,对于本例来讲:
[root@loaclhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/networ
k-scripts/ifcfg-ens33:0
[root@loaclhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
#保存并退出;
[root@loaclhost ~]# systemctl restart network #重启网络服务network;
[root@www ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.140 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::20c:29ff:fec8:ff4e prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:c8:ff:4e txqueuelen 1000 (Ethernet)
RX packets 56847 bytes 12975355 (12.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 18844 bytes 2952385 (2.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:c8:ff:4e txqueuelen 1000 (Ethernet)
#配置成功!
......(以下省略)......
②静态路由的配置文件:/etc/sysconfig/network-scripts/route-IFACE:
当需要用到非默认网关路由时,可通过此配置文件来配置路由条目;
支持两种配置方式:
(1)每行一个路由条目:
TARGET via GW
(2)每三行一个路由条目
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
#其中'#'为数字,表示第几组路由条目;
注意:两种配置方式不能混用;
用法示例:
[root@localhost ~]# route -n #配置前先查看路由表;
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.10.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
0.0.0.0 10.10.10.2 0.0.0.0 UG 100 0 0 ens33
[root@localhost ~]# vim /etc/sysconfig/network-scripts/route-ens33 #手动编辑路由配置文
件;
100.0.0.0/8 via 10.10.10.2 #采用每一行一个路由条目方式;
[root@localhost ~]# systemctl restart network #重启网络服务network;
[root@localhost ~]# route -n #查看路由表;
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.10.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
100.0.0.0 10.10.10.2 255.0.0.0 UG 100 0 0 ens33 #配置成
功;
0.0.0.0 10.10.10.2 0.0.0.0 UG 100 0 0 ens33
文本图形化编辑
[root@localhost ~]# nmtui
如果配置完成可点击"OK",如果放弃修改可直接退出"quit"。
除了以上介绍的静态指定方式之外,还可通过动态分配方式配置网络属性,一般使用dhcp(Dynamic Host Configure Protocol)协议。
采用动态分配方式只需在接口属性配置文件中指明即可,如下:
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=dhcp
PDF文档可以到Linux公社资源站下载:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2017年资料/3月/20日/Linux网络属性配置详解/
------------------------------------------分割线------------------------------------------