一、静态配置网络的几种方法
1、ifconfig [interface]
-a :查看包括未激活状态的所有接口
启用或禁用:ifconfig IFNAME up|down
或者启用:ifup IFNAME
禁用:ifdown IFNAME
设定IP地址:ifconfig IFACE IP/netmask [up]
注:CIDR格式掩码,如172.18.0.1/16
或者:ifconfig IFACE IP netmask NETMASK
注:完整格式掩码,如255.255.0.0
设定的地址会立即送往内核,立即生效,但不会永久有效。
route
route -n 以数字格式显示本机内核路由表
添加路由:route add [-net|-host] target [netmask Nm] [gw Gw][[dev] If]
-net 后面跟网络地址,表示网络路由
-host 后面跟主机地址,表示主机路由
例:route add -net 192.168.0.0/16 gw 172.18.0.1
route add -host 192.168.1.1 gw 172.18.0.1
route add default gw 172.18.0.1
删除路由:route del [-net|-host] target [gw Gw] [netmask Nm][[dev] If]
例:route del -net 0.0.0.0 gw 172.18.0.1
注:所有配置发往内核中的协议栈,立即生效,但不会永久生效。若想永久生效需更改对应的静态 路由的配置文件/etc/sysconfig/network-scripts/route-IFNAME
配置格式一:每一行定义一个路由条目
如:192.18.0.0/16 via 172.18.0.1
192.18.1.1 via 172.18.0.1
配置格式二:每三行定义一个路由条目
ADDRESS#=
NETMASK#=
GATEWAY#=
注: 这两种方式不能混用。
2、ip命令
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
①link :链接接口属性设置
set:设定接口属性
ip link set DEVICE {up|down}
promisc {on|off}: 是否支持混杂模式
name NEWNAME :更改接口名
show :显示接口状态,例如启动的特性,HWADDR等
ip link show DEVICE
②addr :管理接口地址
add:添加地址
del :删除地址
例:ip addr add 172.18.10.10/16 dev eth0
show :显示该网卡上的所有地址信息
ip addr show [dev IFNAME]
flush :清除所有协议地址
ip addr flush [dev IFNAME]
③route:管理路由
list | show :显示路由
add:添加路由
ip route add 目标网络(址) via 网关 [dev IFNAME]
例:设定默认网关
ip route add defalut via 172.18.0.1
del :删除路由
例:ip route del 172.18.10.0/16
3、修改网卡对应文件/etc/sysconfig/network-scripts/ifcfg-IFACE
常用参数说明:
DEVICE:此配置文件应用到的设备
HWADDR:对应的设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
NM_CONTROLLED: NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型;常见有的Ethernet, Bridge
UUID:设备的惟一标识
IPADDR:指明IP地址
NETMASK:子网掩码 或者PREFIX=CIDR格式掩码
GATEWAY: 默认网关
DNS1:第一个DNS服务器指向
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
修改配置文件后,需重启服务生效,永久有效。
CentOS 6重启操作:service network restart
CentOS 7重启操作:systemctl restart network.service
4、TUI工具
通过文本命令方式执行程序,具体操作如下
CentOS 6 系统:命令行输入setup命令,选择Network Configutations
CentOS 7 系统 : 命令行输入nmtui命令,选择Edit aconnection
二、网络状态探测常用工具
1、netstat
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
常用选项:
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口;
-e:扩展格式
-p: 显示相关进程及PID
-r: 显示内核路由表
实例:
列出所有端口 (包括监听和未监听的)
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口
列出所有处于监听状态的 Sockets
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听 udp 端口
netstat -lx #只列出所有监听 UNIX 端口
持续输出netstat信息
netstat -c #每隔一秒输出网络信息
显示系统不支持的地址族(Address Families)
netstat --verbose
并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
netstat -ap | grep ssh
找出运行在指定端口的进程:
netstat -an | grep ‘:80‘
2、ss [OPTION]... [FILTER]
netstat通过遍历proc来获取socket信息, ss使用netlink与内核tcp_diag模块通信获取socket信息。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
选项:
-h:显示帮助信息;
-V:显示指令版本信息;
-n:不解析服务名称,以数字方式显示;
-a:显示所有的套接字;
-l: 显示处于监听状态的套接字;
-o:显示计时器信息;
-m:显示套接字的内存使用情况;
-p:显示使用套接字的进程信息;
-i:显示内部的TCP信息;
-4:只显示ipv4的套接字;
-6:只显示ipv6的套接字;
-t:只显示tcp套接字;
-u:只显示udp套接字;
-d:只显示DCCP套接字;
-w:仅显示RAW套接字;
-x:仅显示UNIX域套接字。
常见用法
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established ‘( dport = :ssh or sport = :ssh)‘ 显示所有已建立的ssh连接
ss -o state established ‘( dport = :http or sport =:http )‘ 显示所有已建立的HTTP连接
ss -s 列出当前socket详细信息
原文地址:http://arm2012.blog.51cto.com/2418467/1957802