centos 使用方法(centos7安装第三方软件)
各位老铁们,大家好,今天由我来为大家分享centos 使用方法,以及centos7安装第三方软件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
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下coreseek安装及使用方法
Coreseek中文全文检索引擎
Coreseek是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,用户可以免费下载使用
一,coreseek简介
官方
Coreseek是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景。商业使用(例如,嵌入到其他程序中)需要获得商业授权。
Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高相关度结果的中文全文搜索能力。CoreSeek可以非常容易的与SQL数据库和脚本语言集成。
在Sphinx发行版本中提供的原生搜索API支持PHP、Python、Perl、Rudy和Java。搜索API非常轻量化,可以在几个小时之内移植到新的语言上。第三方API接口和插件提供了对Perl、C#、Haskell、Ruby-on-Rails支持,以及对其他可能的语言或者框架的支持。
版本介绍
Coreseek 3.2稳定版
Coreseek 4.1测式版
Coreseek 5最新版
二,安装Coreseek
注:本文是以centos+mysql做为数据源支持为基础的coreseek安装教程.mysql安装略过.
1,下载coreseek 3.2稳定版,下载其他版本请去官网自行下载
cd/usr/local/src/
wget
tar xzvf coreseek-3.2.14.tar.gz
cd coreseek-3.2.14
安装coreseek之前需要先安装需要预装的软件:yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel(注:这是centos 64位
其他系统请参考
2,安装mmseg
$ cd mmseg-3.2.14
$./bootstrap#输出的warning信息可以忽略,如果出现error则需要解决
$./configure--prefix=/usr/local/mmseg3
$ make make install
$ cd..
##如果提示libtool: unrecognized option `--tag=CC',请查看libtool问题解决方案
##安装完成后,mmseg使用的词典和配置文件,将自动安装到/usr/local/mmseg3/etc中
##中文分词测试,如果显示不正常,请检查当前环境下的locale和UTF-8中文字符显示设置
$/usr/local/mmseg3/bin/mmseg-d/usr/local/mmseg3/etc src/t1.txt
中文/x分/x词/x测试/x
中国人/x上海市/x
Word Splite took: 1 ms.
3,安装coreseek
$ cd csft-3.2.14
##执行configure,进行编译配置:
$ sh buildconf.sh
$./configure--prefix=/usr/local/coreseek--without-unixodbc--with-mmseg--with-mmseg-includes=/usr/local/mmseg3/include/mmseg/--with-mmseg-libs=/usr/local/mmseg3/lib/--with-mysql
如查提示找不到mysql includes file则使用下面的编译命令
./configure--prefix=/usr/local/coreseek--without-unixodbc--with-mmseg--with-mmseg-includes=/usr/local/mmseg3/include/mmseg/--with-mmseg-libs=/usr/local/mmseg3/lib/--with-mysql-includes=/alidata/server/mysql/include/--with-mysql-libs=/alidata/server/mysql/bin/
make make install
4,测式coreseek
cd../testpack
$/usr/local/coreseek/bin/indexer-c etc/csft.conf
##以下为正常情况下的提示信息:
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]
Copyright(c) 2007-2010,
Beijing Choice Software Technologies Inc()
using config file'etc/csft.conf'...
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
##
##csft-4.0版显示:ERROR: nothing to do.
##
$/usr/local/coreseek/bin/indexer-c etc/csft.conf--all
##以下为正常索引全部数据时的提示信息:(csft-4.0版类似)
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]
Copyright(c) 2007-2010,
Beijing Choice Software Technologies Inc()
using config file'etc/csft.conf'...
indexing index'xml'...
collected 3 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 3 docs, 7585 bytes
total 0.075 sec, 101043 bytes/sec, 39.96 docs/sec
total 2 reads, 0.000 sec, 5.6 kb/call avg, 0.0 msec/call avg
total 7 writes, 0.000 sec, 3.9 kb/call avg, 0.0 msec/call avg
$/usr/local/coreseek/bin/indexer-c etc/csft.conf xml
##以下为正常索引指定数据时的提示信息:(csft-4.0版类似)
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]
Copyright(c) 2007-2010,
Beijing Choice Software Technologies Inc()
using config file'etc/csft.conf'...
indexing index'xml'...
collected 3 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 3 docs, 7585 bytes
total 0.069 sec, 109614 bytes/sec, 43.35 docs/sec
total 2 reads, 0.000 sec, 5.6 kb/call avg, 0.0 msec/call avg
total 7 writes, 0.000 sec, 3.9 kb/call avg, 0.0 msec/call avg
$/usr/local/coreseek/bin/search-c etc/csft.conf
##以下为正常测试搜索时的提示信息:(csft-4.0版类似)
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]
Copyright(c) 2007-2010,
Beijing Choice Software Technologies Inc()
using config file'etc/csft.conf'...
index'xml': query'': returned 3 matches of 3 total in 0.093 sec
displaying matches:
1. document=1, weight=1, published=Thu Apr 1 22:20:07 2010, author_id=1
2. document=2, weight=1, published=Thu Apr 1 23:25:48 2010, author_id=1
3. document=3, weight=1, published=Thu Apr 1 12:01:00 2010, author_id=2
words:
$/usr/local/coreseek/bin/search-c etc/csft.conf-a Twittter和Opera都提供了搜索服务
##以下为正常测试搜索关键词时的提示信息:(csft-4.0版类似)
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]
Copyright(c) 2007-2010,
Beijing Choice Software Technologies Inc()
using config file'etc/csft.conf'...
index'xml': query'Twittter和Opera都提供了搜索服务': returned 3 matches of 3 total in 0.038 sec
displaying matches:
1. document=3, weight=24, published=Thu Apr 1 12:01:00 2010, author_id=2
2. document=1, weight=4, published=Thu Apr 1 22:20:07 2010, author_id=1
3. document=2, weight=3, published=Thu Apr 1 23:25:48 2010, author_id=1
words:
1.'twittter': 1 documents, 3 hits
2.'和': 3 documents, 15 hits
3.'opera': 1 documents, 25 hits
4.'都': 2 documents, 4 hits
5.'提供': 0 documents, 0 hits
6.'了': 3 documents, 18 hits
7.'搜索': 2 documents, 5 hits
8.'服务': 1 documents, 1 hits
$/usr/local/coreseek/bin/searchd-c etc/csft.conf
##以下为正常开启搜索服务时的提示信息:(csft-4.0版类似)
Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]
Copyright(c) 2007-2010,
Beijing Choice Software Technologies Inc()
using config file'etc/csft.conf'...
listening on all interfaces, port=9312
三,配置coreseek支持mysql数据源
1,配置csft_mysql.conf文件
复制mysql配置文件到coreseek安装目录etc/下(比如/usr/local/coreseek/etc/)
cp/usr/local/src/coreseek-3.2.14/testpack/etc/csft_mysql.conf/usr/local/coreseek/etc/
cd/usr/local/coreseek/etc/
vi csft_mysql.conf
下面加红部分是需要你自己配置的
官方参考文档:数据源配置:mysql数据源
其他数据源请参考官方
==============================================================
#源定义
sourcephperz
{
type= mysql
sql_host=localhost
sql_user=root
sql_pass=xxxx
sql_db=phperz
sql_port= 3306
sql_query_pre= SET NAMES utf8
sql_query=SELECT id,title,descs,status from article
#sql_query第一列id需为整数
#title、content作为字符串/文本字段,被全文索引
sql_attr_uint=status#从SQL读取到的值必须为整数
#sql_attr_timestamp= date_added#从SQL读取到的值必须为整数,作为时间属性
sql_query_info_pre= SET NAMES utf8#命令行查询时,设置正确的字符集
sql_query_info=SELECT* FROM article WHERE id=$id#命令行查询时,从数据库读取原始数据信息
}
#index定义
indexphperz
{
source=phperz#对应的source名称
path=/usr/local/coreseek/var/data/phperz#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
docinfo= extern
mlock= 0
morphology= none
min_word_len= 1
html_strip= 0
#中文分词配置,详情请查看:
charset_dictpath=/usr/local/mmseg3/etc/#BSD、Linux环境下设置,/符号结尾
#charset_dictpath= etc/#Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...
charset_type= zh_cn.utf-8
}
#全局index定义
indexer
{
mem_limit= 128M
}
#searchd服务定义
searchd
{
listen= 9312
read_timeout= 5
max_children= 30
max_matches= 1000
seamless_rotate= 0
preopen_indexes= 0
unlink_old= 1
pid_file=/usr/local/coreseek/var/log/searchd_mysql.pid#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
log=/usr/local/coreseek/var/log/searchd_mysql.log#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
query_log=/usr/local/coreseek/var/log/query_mysql.log#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...
}
==============================================================
2,建立索引
路经部分需要改成你自己的地址
/usr/local/coreseek/bin/indexer-c/usr/local/coreseek/etc/csft_mysql.conf--all
可能出现的错误
ERROR: index'phperz': sql_connect: Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock'(2)(DSN=mysql://root:***@localhost:3306/phperz).
这是因为mysql的sock文件路经不正确导致的.
确认一下你的mysql.sock路经,建立一个软连接,比如
ln-s/tmp/mysql.sock/var/lib/mysql/mysql.sock
四,coreseek+php使用方式
复制安装止录下的/usr/local/src/coreseek-3.2.14/testpack/api/sphinxapi.php文件到你的项目里
你的程序里include sphinxapi.php
php使用方法见/usr/local/src/coreseek-3.2.14/testpack/api/test.php
另附我的使用方法:
===============================================================
$wd= trim($_GET['wd']);
include_once(JF_PATH./config/sph_cfg.php);
include_once(JF_PATH./include/sphinxapi.php);
$cl= new SphinxClient();
$cl-SetServer(SPH_SERVER_HOST, SPH_SERVER_POST);
$cl-SetConnectTimeout(3);
$cl-SetArrayResult(true);
$cl-SetMatchMode(1);
$cl-SetFilter(status, array(1));
$cl-SetLimits(0, 10);
$res=$cl-Query($wd, phperz_www);
if($res['matches']){
$rownum=$res['total'];
foreach($res['matches'] as$k=$v){
$re=$this-db-get_one(select* from article where id=.$v['id']);
if(!empty($re)){
$list[]=$re;
}
}
}
print_r($list);
===============================================================
五,coreseek日常维护
启动
/usr/local/coreseek/bin/searchd-c/usr/local/coreseek/etc/csft_mysql.conf
停止
/usr/local/coreseek/bin/searchd-c/usr/local/coreseek/etc/csft_mysql.conf--stop
建立索引
/usr/local/coreseek/bin/indexer-c/usr/local/coreseek/etc/csft_mysql.conf--all
重建索引
/usr/local/coreseek/bin/indexer-c/usr/local/coreseek/etc/csft_mysql.conf--all--rotate
你需要把启动命令加到开机自启动里
把重建索引命令加到计划任务里每天执行
本文为phperz原创,转载请注明出处.
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这个命令!