LINUX 红帽系列系统网络管理常用方法

一、静态配置网络的几种方法

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详细信息

时间: 2024-10-10 18:31:03

LINUX 红帽系列系统网络管理常用方法的相关文章

Linux运维系统工程师系列---14

进程管理 什么是程序?program 程序:完成某个功能的一段代码的集合 什么是进程? 进程是程序运行之后,在内存中的状态 如何产生一个进程? 执行一个程序或者命令就可以产生一个进程 提到进程,不得不说一个目录 /proc:是一个虚拟的文件系统,这个目录下的文件和目录都是保存在内存里的 [[email protected] ~]# ll -d /proc/ dr-xr-xr-x. 157 root root 0 Oct 10 00:33 /proc/ 大小是0,根本没有占用磁盘空间,就是假的.

Linux运维系统工程师与java基础学习系列-8

Java天生骄傲系列-8 函数的应用(重点掌握) 如何定义函数 例1: package test.myeclipse;                 publicclass test1 { publicstaticvoid main(String[]args) { int Sum = getSum(); System.out.println("Sum="+Sum); } publicstaticint getSum() { return 3+4; } } 运行结果:Sum=7 例2:

Linux运维系统工程师与java基础学习系列-4

Java天生骄傲系列-4 程序流程控制 判断 选择 循环 判断结构: If语句三种格式: 1.  if(条件表达式) { 执行语句: } 2.  if(条件表达式) { 执行语句: } else { 执行语句: } 3.  if(条件表达式) { 执行语句: } else if (条件表达式) { 执行语句: } --. else { 执行语句: } if(条件表达式) { 执行语句: } 牛刀小试: package test.myeclipse; publicclass test1 { pub

Linux运维系统工程师系列---15

系统日志 何谓日志? 相当于系统中的账本,会将系统中发生的事情,按照时间先后顺序,分门别类的记录到不通的文件里. 日志的用途? 当系统发生问题,或者查询历史信息的时候,我们会查询日志. 1)解决系统方面的错误 2)解决网络方面的问题 3)记录重要的事件 4)解决安全方面问题,一般分析日志,看看有无风险 日志的种类: 1)系统自带日志 2)文件系统日志  ext3/ext4 3)应用程序自带的日志,比如ssh,dhcp,http都有相应的日志 1.日志简介 Linux系统日志默认存放位置 /var

Linux运维系统工程师系列之shell脚本一则小随笔

shell随笔 一.   学好shell编程的知识储备 前面讲过,给大家留作业Linux系统命令应用: Vi/vim 编辑器的熟练使用,SSH客户端软件的设置: 基础的服务,系统服务ntp,crond,网络服务:nfs,rsync,inotify,sersync,ssh,lanmp. 补充:清空日志的三种方法: echo  " " > filename.log >filename.log cat  /dev/null > filename.log 注:工作中有的时候不

Linux运维系统工程师与java基础学习系列-2

Java天生骄傲系列-2 运算符 1.   算术运算符 注: 1)"+"号除了用于加法运算以外,还用作字符串连接符: 2)字符串数据和任何数据使用+都是相连接,最终都会变成字符串. package day4javatest.myeclipse;         publicclass day4test1 { /** * @param args */ publicstaticvoid main(String[]args) { // TODO Auto-generated method s

Linux运维系统工程师系列---13

定制安装 定制安装,也叫源码安装,需要自己编译源代码的安装方式 步骤: 1.解压源代码包 2.配置 configure 3.编译 make 4.安装 make install 接下来开始做实验,希望朋友们自己动手实践,有啥不清楚的可以直接提问我,我看到会及时回复. 1.解压源码包 [[email protected] base]# cd /root/Desktop/ [[email protected] Desktop]# ls gnome-terminal.desktop  MPlayer-1

Linux运维系统工程师与java基础学习系列-1

Java天生骄傲系列-1 1     Eclipse的使用(略): 2 在eclipse下Java程序的编写和运行,及Java运行环境的配置略: 3 快捷键的配置,常用快捷键(略): 注:当程序有错误的时候,我们才会采取debug的方式去运行程序! 4 程序的调试和运行:以断点的方式去查看程序出现的问题. 断点调试常用功能(快捷键): F5(跳入)      F6(跳过)      F7(跳出) drop to frame:跳到当前方法的第一行: resume:跳到下一个断点(如果没有下一个,则

Linux运维系统工程师与java基础学习系列-5

Java天生骄傲系列-5 程序流程控制(续): 选择结构 switch语句 格式: Switch(表达式) { case取值1: 执行语句: break; case取值2: 执行语句: break; -- default: 执行语句: break; } 牛刀小试1:         package test.myeclipse; publicclass test1 { publicstaticvoid main(String[] args) { int x=3; switch(x) { case