centos使用方法(centos如何安装软件)
大家好,感谢邀请,今天来为大家分享一下centos使用方法的问题,以及和centos如何安装软件的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
linux基础:Centos下修改IP地址的方法
探索CentOS中灵活的IP地址管理:从临时调整到永久变更
理解网卡命名规则
在CentOS 7的环境中,en标识了以太网接口,通常用于连接局域网。enX的X可能有三种类型的扩展,包括:
o(onboard)</-主板内置的网卡,其设备索引号由主板信息决定。
p(PCI)</-独立的PCI网卡,为扩展插槽中的独立设备。
s(hot-pluggable)</-热插拔网卡,如USB接口,其索引号对应于扩展槽的位置。
网卡后的数字是通过MAC地址和主板信息计算出的唯一标识。
临时IP的快速调整
对于临时更改IP,首先查看网络接口状态:
ifconfig
然后,可以通过以下命令将ens33接口的IP设置为192.168.1.64:
ifconfig ens33 192.168.1.64 netmask 255.255.255.0
重启网络服务以使更改生效(CentOS 6用service network restart,CentOS 7用systemctl restart network)。
扩展:多IP支持
要添加临时IP,可以使用ifconfig ens33:0,例如:
ifconfig ens33:0 192.168.1.64 netmask 255.255.255.0 up
管理这些临时IP时,记得在不需要时使用ifconfig ens33:0 del删除。
步入新时代:NetworkManager的使用
CENTOS 7倾向于使用NetworkManager进行网络管理,取代了先前的network服务。它是一个动态的事件驱动系统,提供了更统一的网络配置体验。
systemctl status NetworkManager
了解网络配置文件,如
/etc/sysconfig/network-scripts/ifcfg-ens33:存储IP地址、子网掩码等信息。
/etc/sysconfig/network-scripts/ifcfg-lo:回环地址配置文件。
/etc/resolv.conf:DNS配置文件。
/etc/hosts:主机和IP绑定的静态记录。
/etc/hostname:主机名设置。
永久性IP变更
对于持久的IP更改,有两种方法:
方法1: nmtui</
启用编辑连接
选择对应网卡进入编辑模式
修改网卡配置
保存并退出,最后重启网络服务
方法2:修改配置文件</
使用vim/etc/sysconfig/network-scripts/ifcfg-ens33
编辑完毕后,使用ESC,然后输入wq!,并重启网络服务
配置文件详解
关键配置参数包括:
DEVICE</:设备名称
HWADDR</:MAC地址
BOOTPROTO</:地址配置协议,如dhcp、static等
NM_CONTROLLED</:是否受NetworkManager管理
ONBOOT</:是否在系统启动时启用
TYPE</:接口类型
UUID</:设备唯一标识
IPADDR</:IP地址
NETMASK</:子网掩码
GATEWAY</:默认网关
DNS1/DNS2</:DNS服务器地址
USERCTL</:普通用户是否可操作
IPV4_FAILURE_FATAL</:IP配置失败时的行为
CentOS网络状态工具ss命令使用方法
ss命令用于显示socket状态.他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计.它比其他工具展示等多tcp和state信息.它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息:
所有的TCP sockets
所有的UDP sockets
所有ssh/ftp/ttp/https持久连接
所有连接到Xserver的本地进程
使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤
所有的state FIN-WAIT-1 tcpsocket连接以及更多
很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令.熟悉这个工具有助于您更好的发现与解决系统性能问题.本人强烈建议使用ss命令替代netstat部分命令,例如netsat-ant/lnt等.
展示他之前来做个对比,统计服务器并发连接数
netstat
# time netstat-ant| grep EST| wc-l
3100
real 0m12.960s
user 0m0.334s
sys 0m12.561s
# time ss-o state established| wc-l
3204
real 0m0.030s
user 0m0.005s
sys 0m0.026s
结果很明显ss统计并发连接数效率完败netstat,在ss能搞定的情况下,你还会在选择netstat吗,还在犹豫吗,看以下例子,或者跳转到帮助页面.
常用ss命令:
ss-l显示本地打开的所有端口
ss-pl显示每个进程具体打开的socket
ss-t-a显示所有tcp socket
ss-u-a显示所有的UDP Socekt
ss-o state established'( dport=:smtp or sport=:smtp)'显示所有已建立的SMTP连接
ss-o state established'( dport=:http or sport=:http)'显示所有已建立的HTTP连接
ss-x src/tmp/.X11-unix/*找出所有连接X服务器的进程
ss-s列出当前socket详细信息:
显示sockets简要信息
列出当前已经连接,关闭,等待的tcp连接
# ss-s
Total: 3519(kernel 3691)
TCP: 26557(estab 3163, closed 23182, orphaned 194, synrecv 0, timewait 23182/0), ports 1452
Transport Total IP IPv6
* 3691--
RAW 2 2 0
UDP 10 7 3
TCP 3375 3368 7
INET 3387 3377 10
FRAG 0 0 0
列出当前监听端口
# ss-l
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 10:::5989:::*
0 5*:rsync*:*
0 128:::sunrpc:::*
0 128*:sunrpc*:*
0 511*:http*:*
0 128:::ssh:::*
0 128*:ssh*:*
0 128:::35766:::*
0 128 127.0.0.1:ipp*:*
0 128::1:ipp:::*
0 100::1:smtp:::*
0 100 127.0.0.1:smtp*:*
0 511*:https*:*
0 100:::1311:::*
0 5*:5666*:*
0 128*:3044*:*
ss列出每个进程名及其监听的端口
# ss-pl
ss列所有的tcp sockets
# ss-t-a
ss列出所有udp sockets
# ss-u-a
ss列出所有http连接中的连接
# ss-o state established'( dport=:http or sport=:http)'
以上包含对外提供的80,以及访问外部的80
用以上命令完美的替代netstat获取http并发连接数,监控中常用到
ss列出本地哪个进程连接到x server
# ss-x src/tmp/.X11-unix/*
ss列出处在FIN-WAIT-1状态的http、https连接
# ss-o state fin-wait-1'( sport=:http or sport=:https)'
ss常用的state状态:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
all: All of the above states
connected: All the states except for listen and closed
synchronized: All the connected states except for syn-sent
bucket: Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.
big: Opposite to bucket state.
ss使用IP地址筛选
ss src ADDRESS_PATTERN
src:表示来源
ADDRESS_PATTERN:表示地址规则
如下:
ss src 120.33.31.1#列出来之20.33.31.1的连接
#列出来至120.33.31.1,80端口的连接
ss src 120.33.31.1:http
ss src 120.33.31.1:80
ss使用端口筛选
ss dport OP PORT
OP:是运算符
PORT:表示端口
dport:表示过滤目标端口、相反的有sport
OP运算符如下:
= or le:小于等于= or ge:大于等于
== or eq:等于
!= or ne:不等于端口
or lt:小于这个端口 or gt:大于端口
OP实例
ss sport=:http也可以是 ss sport=:80
ss dport=:http
ss dport \:1024
ss sport \:1024
ss sport \:32000
ss sport eq:22
ss dport!=:22
ss state connected sport=:http
ss \( sport=:http or sport=:https \)
ss-o state fin-wait-1 \( sport=:http or sport=:https \) dst 192.168.1/24
为什么ss比netstat快:
netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多
ss命令帮助
# ss-h
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h,--help this message
-V,--version output version information
-n,--numeric don't resolve service names
-r,--resolve resolve host names
-a,--all display all sockets
-l,--listening display listening sockets
-o,--options show timer information
-e,--extended show detailed socket information
-m,--memory show socket memory usage
-p,--processes show process using socket
-i,--info show internal TCP information
-s,--summary show socket usage summary
-4,--ipv4 display only IP version 4 sockets
-6,--ipv6 display only IP version 6 sockets
-0,--packet display PACKET sockets
-t,--tcp display only TCP sockets
-u,--udp display only UDP sockets
-d,--dccp display only DCCP sockets
-w,--raw display only RAW sockets
-x,--unix display only Unix domain sockets
-f,--family=FAMILY display sockets of type FAMILY
-A,--query=QUERY,--socket=QUERY
QUERY:={all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D,--diag=FILE Dump raw information about TCP sockets to FILE
-F,--filter=FILE read filter information from FILE
FILTER:= [ state TCP-STATE ] [ EXPRESSION ]
Centos系统 ip命令使用方法
[root@Linux~]# ip [option] [动作] [命令]
参数:
option:设定的参数,主要有:
-s:显示出该设备的统计数据(statistics),例如总接受封包数等;
动作:就是是可以针对哪些网络参数进行动作,包括有:
link:关于设备(device)的相关设定,包括 MTU, MAC地址等等
addr/address:关于额外的 IP设定,例如多 IP的实现等等;
route:与路由有关的相关设定
上面的语法我们可以知道, ip除了可以设定一些基本的网络参数之外,还能够进行额外的 IP设定,包括多 IP的实现,真是太完美了!下面我们就分三个部分(link, addr, route)来介绍这个 ip命令。
关于设备(device)的相关设定: ip link
ip link可以设定与设备(device)有关的相关设定,包括 MTU以及该网络设备的 MAC等等,当然也可以启动(up)或关闭(down)某个网络设备。整个语法是这样的:
[root@linux~]# ip [-s] link show==单纯的查阅该设备相关的信息
[root@linux~]# ip link set [device] [动作与参数]
参数:
show:仅显示出这个设备的相关内容,如果加上-s会显示更多统计数据;
set:可以开始设定项目, device指的是 eth0, eth1等等设备代号;
动作与参数:包括以下动作:
up|down:启动(up)或关闭(down)某个设备,其他参数使用预设的以太网参数;
address:如果这个设备可以更改 MAC,用这个参数修改;
name:给予这个设备一个特殊的名字;
mtu:设置最大传输单元。
范例一:显示出所有的设备信息
[root@linux~]# ip link show
1: lo: LOOPBACK,UP,10000 mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: BROADCAST,MULTICAST,UP,10000 mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
3: sit0: NOARP mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
[root@linux~]# ip-s link show eth0
2: eth0: BROADCAST,MULTICAST,UP,10000 mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
484011792 2247372 0 0 0 0
TX: bytes packets errors dropped carrier collsns
2914104290 2867753 0 0 0 0
使用 ip link show可以显示出整个设备的硬件相关信息,如上所示,包括 MAC地址、MTU等等,比较有趣的应该是那个 sit0的设备了,那个 sit0的设备是将IPv4和 IPv6的封包进行转换,对于我们仅使用 IPv4的网络是没有作用的。 lo及 sit0都是主机内部自行设定的。而如果加上-s的参数后,则这个网卡的相关统计信息就会被列出来,包括接收(RX)及传送(TX)的封包数量等等,详细的内容与 ifconfig所输出的结果相同。
范例二:启动、关闭与设定设备的相关信息
[root@linux~]# ip link set eth0 up
#启动eth0这个设备;
[root@linux~]# ip link set eth0 down
#关闭eth0这个设备;
[root@linux~]# ip link set eth0 mtu 1000
#更改 MTU为1000 bytes,单位就是 bytes。
更新网卡的 MTU使用 ifconfig也可以实。如果是要更改『网卡代号、 MAC地址的信息』的话,那可就得使用 ip了,设定前需要先关闭该网卡,否则会不成功。如下所示:
范例三:修改网卡代号、MAC等参数
[root@linux~]# ip link set eth0 name vbird
SIOCSIFNAME: Device or resource busy
#因为该设备目前是启动的,所以不能这样做设定。你应该要这样做:
[root@linux~]# ip link set eth0 down==关闭设备
[root@linux~]# ip link set eth0 name vbird==重新设定
[root@linux~]# ip link show==查看信息
2. vbird: BROADCAST,MILTICASE mtu 900 qdisc pfifo_fast qlen 1000
link/ehter 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff
#呵呵,连网卡代号都可以改变!不过,玩玩后记得改回来啊!
#因为我们的 ifcfg-eth0还是使用原本的设备代号!避免有问题,要改回来
[root@linux~]# ip link set vbird name eth0==设备改回来
[root@linux~]# ip link set eth0 address aa:aa:aa:aa:aa:aa
[root@linux~]# ip link show eth0
#如果你的网卡支持MAC更改的话,
#那么上面这个命令就可以更改你的网卡MAC了!
#不过,还是那句老话,测试完之后请立刻改回来!
在这个设备的硬件相关信息设定,上面包括 MTU, MAC以及传输的模式等等,都可以在这里设定。有趣的是那个 address的项目,那个项目后面接的可是MAC地址而不是IP地址很容易搞错啊!切记切记!更多的硬件参数可以使用 man ip查阅一下与 ip link有关的设定。
关于额外的 IP相关设定: ip address
如果说 ip link是与 OSI七层模型的第二层数据链路层有关的话,那么 ip address(ip addr)就是与第三层网络层有关的了。主要是在设定与 IP有关的各项参数,包括 netmask, broadcast等等。
[root@linux~]# ip address show==查看IP参数
[root@linux~]# ip address [add|del] [IP参数] [dev?备名] [相关参数]
参数:
show:单纯的显示出设备的 IP信息;
add|del:进行相关参数的增加(add)或删除(del)设定,主要有:
IP参数:主要就是网域的设定,例如 192.168.100.100/24之类的设定;
dev:这个 IP参数所要设定的设备,例如 eth0, eth1等等;
相关参数:如下所示:
broadcast:设定广播位址,如果设定值是+表示让系统自动计算;
label:该设备的别名,例如eth0:0;
scope:这个设备的领域,通常是以下几个大类:
global:允许来自所有来源的连线;
site:仅支持IPv6,仅允许本主机的连接;
link:仅允许本设备自我连接;
host:仅允许本主机内部的连接;
所以当然是使用 global了。预设也是 global!
范例一:显示出所有设备的 IP参数:
[root@linux~]# ip address show
1: lo: LOOPBACK,UP,10000 mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: BROADCAST,MULTICAST,UP,10000 mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff
inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
inet6 fe80::250:fcff:fe22:9acb/64 scope link
valid_lft forever preferred_lft forever
3: sit0: NOARP mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
下面我们进一步来新增虚拟的网络设备:
范例二:新增一个设备,名称假设为 eth0:vbird
[root@linux~]# ip address add 192.168.50.50/24 broadcast+/
dev eth0 label eth0:vbird
[root@linux~]# ip address show eth0
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
inet 192.168.50.50/24 brd 192.168.50.255 scope global eth0:vbird
inet6 fe80::240:d0ff:fe13:c346/64 scope link
valid_lft forever preferred_lft forever
#看上面的输出多出了一行,增加了新的设备,名称是 eth0:vbird
#至于那个 broadcast+也可以写成 broadcast 192.168.50.255。
[root@linux~]# ifconfig
eth0:vbir Link encap:Ethernet HWaddr 00:40:D0:13:C3:46
inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:5 Base address:0x3e00
#如果使用 ifconfig就能够看到这个怪东西了!
范例三:将刚刚的设备删除
[root@linux~]# ip address del 192.168.50.50/24 dev eth0
#删除比较简单。
--------------------------------------------------------------------------------
关于路由的设定: ip route
这个项目就是路由的查看与设定。事实上ip route的功能几乎与 route这个命令一样,但是,它还可以进行额外的参数设置,例如 MTU的规划等等,相当的强悍啊!
[root@linux~]# ip route show==单纯的显示出路由的设定
[root@linux~]# ip route [add|del] [IP或网域] [via gateway] [dev设备]
参数:
show:单纯的显示出路由表,也可以使用 list;
add|del:增加(add)或删除(del)路由;
IP或网域:可使用 192.168.50.0/24之类的网域或者是单纯的 IP;
via:从那个 gateway出去,不一定需要;
dev:由那个设备连出去,需要;
mtu:可以额外的设定 MTU的数值;
范例一:显示出目前的路由资料
[root@linux~]# ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
169.254.0.0/16 dev eth1 scope link
default via 192.168.1.254 dev eth1
如上表所示,最简单的功能就是显示出目前的路由信息,其实跟 route这个命令相同。必须注意的几点:
proto:此路由的路由协定,主要有 redirect, kernel, boot, static, ra等,其中 kernel指的是直接由核心判断自动设定。
scope:路由的范围,主要是 link,是与本设备有关的直接连接。
再来看一下如何进行路由的增加与删除:
范例二:增加路由,主要是本机直接可沟通的网域
[root@linux~]# ip route add 192.168.5.0/24 dev eth0
#针对本机直接沟通的网域设定好路由,不需要透过外部的路由器
[root@linux~]# ip route show
192.168.5.0/24 dev eth0 scope link
....以下省略....
范例三:增加可以通往外部的路由,需透过 router;
[root@linux~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0
[root@linux~]# ip route show
192.168.5.0/24 dev eth0 scope link
....其他省略....
192.168.10.0/24 via 192.168.5.100 dev eth0
#仔细,因为我有 192.168.5.0/24的路由存在(与我的网卡直接相关),
#所以才可以将 192.168.10.0/24的路由丢给 192.168.5.100
#那部主机来帮忙传递!与之前提到的 route命令是一样的限制!
范例四:增加预设路由
[root@linux~]# ip route add default via 192.168.1.2 dev eth0
#那个 192.168.1.2就是我的预设路由器(gateway);
#记住,只要一个预设路由就OK了;
范例五:删除路由
[root@linux~]# ip route del 192.168.10.0/24
[root@linux~]# ip route del 192.168.5.0/24
事实上,这个 ip的命令实在是太博大精深了!刚接触 Linux网络的朋友,可能会看到有点晕!您先会使用 ifconfig, ifup, ifdown与 route即可,等以后有经验了之后,再继续回来玩 ip这个好玩的命令吧!有兴趣的话,也可以自行参考 ethtool这个命令!