分类 系统运维 下的文章

Nmon(得名于 Nigel 的监控器)是IBM的员工 Nigel Griffiths 为 AIX 和 Linux 系统开发的一款计算机性能系统监控工具。Nmon 可以把操作系统的统计数据展示在屏幕上或者存储到一份数据文件里,来帮助了解计算机资源的使用情况、调整方向和系统瓶颈。这个系统基准测试工具只需要使用一条命令就能得到大量重要的性能数据。使用 Nmon 可以很轻松的监控系统的 CPU、内存、网络、硬盘、文件系统、NFS、高耗进程、资源和 IBM Power 系统的微分区的信息。

Nmon 安装

Nmon 默认是存在于 Ubuntu 的仓库中的。你可以通过下面的命令安装 Nmon:

sudo apt-get install nmon

怎么使用Nmon来监控Linux的性能

安装完成后,通过在终端输入nmon 命令来启动 Nmon

nmon

你会看到下面的输出:

nmon-output

从上面的截图可以看到 nmon 命令行工具完全是交互式运行的,你可以使用快捷键来轻松查看对应的统计数据。你可以使用下面的 nmon 快捷键来显示不同的系统统计数据:

  • q : 停止并退出 Nmon
  • h : 查看帮助
  • c : 查看 CPU 统计数据
  • m : 查看内存统计数据
  • d : 查看硬盘统计数据
  • k : 查看内核统计数据
  • n : 查看网络统计数据
  • N : 查看 NFS 统计数据
  • j : 查看文件系统统计数据
  • t : 查看高耗进程
  • V : 查看虚拟内存统计数据
  • v : 详细模式

核查 CPU 处理器

如果你想收集关于 CPU 性能相关的统计数据,你应该按下键盘上的c键,之后你将会看到下面的输出:

nmon_cpu_output

核查高耗进程统计数据

如果想收集系统正在运行的高耗进程的统计数据,按键盘上的t键,之后你将会看到下面的输出:

nmon_process_output

核查网络统计数据

如果想收集 Linux 系统的网络统计数据,按下n键,你将会看到下面输出:

n_network_output

硬盘 I/O 图表

使用d 键获取硬盘相关的信息,你会看到下面输出:

nmon_disk_output

核查内核信息

Nmon 一个非常重要的快捷键是k键,用来显示系统内核相关的概要信息。按下k键之后,会看到下面输出:

nmon_kernel_output

获取系统信息

对每个系统管理员来说一个非常有用的快捷键是r键,可以用来显示计算机的系统结构、操作系统版本号和 CPU 等不同资源的信息。按下r键之后会看到下面输出:

nmon_system_output

总结

还有许多其他的工具做的和 Nmon 同样的工作,不过 Nmon 对一个 Linux 新手来说还是很友好的。如果你有什么问题,尽管评论。


via: https://www.maketecheasier.com/monitor-linux-system-performance/

作者:Hitesh Jethva 译者:sonofelice 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Glances 是一个用于监控系统的跨平台、基于文本模式的命令行工具。它是用 Python 编写的,使用 psutil 库从系统获取信息。你可以用它来监控 CPU、平均负载、内存、网络接口、磁盘 I/O,文件系统空间利用率、挂载的设备、所有活动进程以及消耗资源最多的进程。Glances 有很多有趣的选项。它的主要特性之一是可以在配置文件中设置阀值( careful 小心 warning 警告 critical 致命 ),然后它会用不同颜色显示信息以表明系统的瓶颈。

Glances 的功能

  • CPU 平均负载
  • 不同状态(如活动、休眠)进程的数量
  • 所有内存信息,如物理内存、交换空间、空闲内存
  • CPU 信息
  • 网络连接的上行/下行速度
  • 磁盘 I/O 读/写速度详细信息
  • 当前挂载设备的磁盘使用情况
  • 消耗资源最多的进程和他们的 CPU/内存使用情况

安装 Glances

Glances 在 Ubuntu 的软件仓库中,所以安装很简单。执行下面的命令安装 Glances:

sudo apt-get install glances

(LCTT 译注:若安装后无法正常使用,可考虑使用 pip 安装/升级 glances:sudo pip install --upgrade glances

Glances 使用方法

安装完成后,可以执行下面的命令启动 Glances:

glances

你将看到类似下图的输出:

glances monitor system output

要退出 Glances 终端,按 ESC 键或 Ctrl + C

默认情况下,时间间隔(LCTT 译注:显示数据刷新的时间间隔)是 1 秒,不过你可以在从终端启动 Glances 时自定义时间间隔。

要把时间间隔设为 5 秒,执行下面的命令:

glances -t 5

Glances 中不同颜色含义

Glances 中不同颜色的含义:

  • 绿色:正常(OK)
  • 蓝色:小心(careful)
  • 紫色:警告(warning)
  • 红色:致命(critical)

默认设置下,Glances 的阀值设置是:careful=50,warning=70,critical=90。你可以通过 “/etc/glances/” 目录下的默认配置文件 glances.conf 来自定义这些阀值。

Glances 的选项

Glances 提供了很多快捷键,可以在它运行时用来查找输出信息。

下面是一些常用的热键列表:

  • m : 按内存占用排序进程
  • p : 按进程名称排序进程
  • c : 按 CPU 占用率排序进程
  • i : 按 I/O 频率排序进程
  • a : 自动排序进程
  • d : 显示/隐藏磁盘 I/O 统计信息
  • f : 显示/隐藏文件系统统计信息
  • s : 显示/隐藏传感器统计信息
  • y : 显示/隐藏硬盘温度统计信息
  • l : 显示/隐藏日志
  • n : 显示/隐藏网络统计信息
  • x : 删除警告和严重日志
  • h : 显示/隐藏帮助界面
  • q : 退出
  • w : 删除警告记录

使用 Glances 监控远程系统

你也可以使用 Glances 监控远程系统。要在远程系统上使用它,使用下面的命令:

glances -s

你会看到类似下面的输出:

glances monitor remote system server

如你所见,Glances 运行在 61209 端口。

现在,到远程机器上执行下面的命令以连接到指定 IP 地址的 Glances 服务器上。假设 192.168.1.10 是你的 Glances 服务器 IP 地址。

glances -c -P 192.168.1.10

结论

对于每个 Linux 系统管理员来说,Glances 都是一个非常有用的工具。使用它,你可以轻松、高效地监控 Linux 系统。如果你有什么问题,自由地评论吧。


via: https://www.maketecheasier.com/glances-monitor-system-ubuntu/

作者:Hitesh Jethva 译者:bianjp 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

作为一名维护 Linux 生产服务器的系统管理员,你可能会遇到这样一些情形:你需要根据地理位置,选择性地阻断或允许网络流量通过。 例如你正经历一次由注册在某个特定国家的 IP 发起的 DoS 攻击;或者基于安全考虑,你想阻止来自未知国家的 SSH 登录请求;又或者你的公司对某些在线视频有分销权,它要求只能在特定的国家内合法发行;抑或是由于公司的政策,你需要阻止某个本地主机将文件上传至任意一个非美国的远程云端存储。

所有的上述情形都需要设置防火墙,使之具有基于国家位置过滤流量的功能。有几个方法可以做到这一点,其中之一是你可以使用 TCP wrappers 来为某个应用(例如 SSH,NFS, httpd)设置条件阻塞。但其缺点是你想要保护的那个应用必须以支持 TCP wrappers 的方式构建。另外,TCP wrappers 并不总是能够在各个平台中获取到(例如,Arch Linux 放弃了对它的支持)。另一种方式是结合基于国家的 GeoIP 信息,设置 ipset,并将它应用到 iptables 的规则中。后一种方式看起来更有希望一些,因为基于 iptables 的过滤器是与应用无关的,且容易设置。

在本教程中,我将展示 另一个基于 iptables 的 GeoIP 过滤器,它由 xtables-addons 来实现。对于那些不熟悉它的人来说, xtables-addons 是用于 netfilter/iptables 的一系列扩展。一个包含在 xtables-addons 中的名为 xt\_geoip 的模块扩展了 netfilter/iptables 的功能,使得它可以根据流量来自或流向的国家来进行过滤,IP 掩蔽(NAT)或丢包。若你想使用 xt\_geoip,你不必重新编译内核或 iptables,你只需要使用当前的内核构建环境(/lib/modules/uname -r/build)以模块的形式构建 xtables-addons。同时也不需要进行重启。只要你构建并安装了 xtables-addons , xt\_geoip 便能够配合 iptables 使用。

至于 xt\_geoip 和 ipset 之间的比较,xtables-addons 的官方网站 上是这么说的: 相比于 ipset,xt\_geoip 在内存占用上更胜一筹,但对于匹配速度,基于哈希的 ipset 可能更有优势。

在教程的余下部分,我将展示如何使用 iptables/xt\_geoip 来根据流量的来源地或流入的国家阻断网络流量

在 Linux 中安装 xtables-addons

下面介绍如何在各种 Linux 平台中编译和安装 xtables-addons。

为了编译 xtables-addons,首先你需要安装一些依赖软件包。

在 Debian,Ubuntu 或 Linux Mint 中安装依赖

$ sudo apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config

在 CentOS,RHEL 或 Fedora 中安装依赖

CentOS/RHEL 6 需要事先设置好 EPEL 仓库(为 perl-Text-CSV\_XS 所需要)。

$ sudo yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS

编译并安装 xtables-addons

xtables-addons官方网站 下载源码包,然后按照下面的指令编译安装它。

$ wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-2.10.tar.xz
$ tar xf xtables-addons-2.10.tar.xz
$ cd xtables-addons-2.10
$ ./configure
$ make
$ sudo make install

需要注意的是,对于基于红帽的系统(CentOS、RHEL、Fedora),它们默认开启了 SELinux,所以有必要像下面这样调整 SELinux 的策略。否则,SELinux 将阻止 iptables 加载 xt\_geoip 模块。

$ sudo chcon -vR --user=system_u /lib/modules/$(uname -r)/extra/*.ko
$ sudo chcon -vR --type=lib_t /lib64/xtables/*.so

为 xtables-addons 安装 GeoIP 数据库

下一步是安装 GeoIP 数据库,它将被 xt\_geoip 用来查询 IP 地址与国家地区之间的对应关系。方便的是,xtables-addons 的源码包中带有两个帮助脚本,它们被用来从 MaxMind 下载 GeoIP 数据库并将它转化为 xt\_geoip 可识别的二进制形式文件;它们可以在源码包中的 geoip 目录下找到。请遵循下面的指导来在你的系统中构建和安装 GeoIP 数据库。

$ cd geoip
$ ./xt_geoip_dl
$ ./xt_geoip_build GeoIPCountryWhois.csv
$ sudo mkdir -p /usr/share/xt_geoip
$ sudo cp -r {BE,LE} /usr/share/xt_geoip

根据 MaxMind 的说明,他们的 GeoIP 数据库能够以 99.8% 的准确率识别出 ip 所对应的国家,并且每月这个数据库将进行更新。为了使得本地安装的 GeoIP 数据是最新的,或许你需要设置一个按月执行的 cron job 来时常更新你本地的 GeoIP 数据库。

阻断来自或流向某个国家的网络流量

一旦 xt\_geoip 模块和 GeoIP 数据库安装好后,你就可以在 iptabels 命令中使用 geoip 的匹配选项。

$ sudo iptables -m geoip --src-cc country[,country...] --dst-cc country[,country...]

你想要阻断流量的那些国家是使用2个字母的 ISO3166 代码 来特别指定的(例如 US(美国)、CN(中国)、IN(印度)、FR(法国))。

例如,假如你想阻断来自也门(YE) 和 赞比亚(ZM)的流量,下面的 iptabels 命令便可以达到此目的。

$ sudo iptables -I INPUT -m geoip --src-cc YE,ZM -j DROP

假如你想阻断流向中国(CN) 的流量,可以运行下面的命令:

$ sudo iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

匹配条件也可以通过在 --src-cc--dst-cc 选项前加 ! 来达到相反的目的:

假如你想在你的服务器上阻断来自所有非美国的流量,可以运行:

$ sudo iptables -I INPUT -m geoip ! --src-cc US -j DROP

对于使用 Firewall-cmd 的用户

某些发行版本例如 CentOS/RHEL7 或 Fedora 已经用 firewalld 替代了 iptables 来作为默认的防火墙服务。在这些系统中,你可以类似使用 xt\_geoip 那样,使用 firewall-cmd 来阻断流量。利用 firewall-cmd 命令,上面的三个例子可被重新写为:

$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc YE,ZM -j DROP
$ sudo firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc CN -j DROP
$ sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip ! --src-cc US -j DROP

总结

在本教程中,我展示了使用 iptables/xt\_geoip 来根据流量的来源地或流入的国家轻松地阻断网络流量。假如你有这方面的需求,把它部署到你的防火墙系统中可以使之成为一个实用的办法。作为最后的警告,我应该提醒你的是:在你的服务器上通过基于 GeoIP 的流量过滤来禁止特定国家的流量并不总是万无一失的。GeoIP 数据库本身就不是很准确或齐全,且流量的来源或目的地可以轻易地通过使用 VPN、Tor 或其他任意易受攻击的中继主机来达到欺骗的目的。基于地理位置的过滤器甚至可能会阻止本不该阻止的合法网络流量。在你决定把它部署到你的生产环境之前请仔细考虑这个限制。


via: http://xmodulo.com/block-network-traffic-by-country-linux.html

作者:Dan Nanni 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Nginx 是一款自由开源的 HTTP 和反向代理服务器,也可以用作 POP3/IMAP 的邮件代理服务器。Nginx 是一款高性能的 web 服务器,其特点是功能丰富,结构简单以及内存占用低。 第一个版本由 Igor Sysoev 发布于2002年,到现在有很多大型科技公司在使用,包括 Netflix、 Github、 Cloudflare、 WordPress.com 等等。

在这篇教程里我们会“在 freebsd 10.2 系统上,安装和配置 Nginx 网络服务器作为 Apache 的反向代理”。 Apache 将在8080端口上运行 PHP ,而我们会配置 Nginx 运行在80端口以接收用户/访问者的请求。如果80端口接收到用户浏览器的网页请求,那么 Nginx 会将该请求传递给运行在8080端口上的 Apache 网络服务器和 PHP。

前提条件

  • FreeBSD 10.2
  • Root 权限

步骤 1 - 更新系统

使用 SSH 认证方式登录到你的 FreeBSD 服务器,使用下面命令来更新你的系统:

freebsd-update fetch
freebsd-update install

步骤 2 - 安装 Apache

Apache 是开源的、使用范围最广的 web 服务器。在 FreeBSD 里默认没有安装 Apache, 但是我们可以直接通过 /usr/ports/www/apache24 下的 ports 或软件包来安装,也可以直接使用 pkg 命令从 FreeBSD 软件库中安装。在本教程中,我们将使用 pkg 命令从 FreeBSD 软件库中安装:

pkg install apache24

步骤 3 - 安装 PHP

一旦成功安装 Apache,接着将会安装 PHP ,它来负责处理用户对 PHP 文件的请求。我们将会用到如下的 pkg 命令来安装 PHP:

pkg install php56 mod_php56 php56-mysql php56-mysqli

步骤 4 - 配置 Apache 和 PHP

一旦所有都安装好了,我们将会配置 Apache 运行在8080端口上, 并让 PHP 与 Apache 一同工作。 要想配置Apache,我们可以编辑“httpd.conf”这个配置文件, 对于 PHP 我们只需要复制 “/usr/local/etc/”目录下的 PHP 配置文件 php.ini。

进入到“/usr/local/etc/”目录,并且复制 php.ini-production 文件到 php.ini :

cd /usr/local/etc/
cp php.ini-production php.ini

下一步,在 Apache 目录下通过编辑“httpd.conf”文件来配置 Apache:

cd /usr/local/etc/apache24
nano -c httpd.conf

端口配置在第52行 :

Listen 8080

服务器名称配置在第219行:

ServerName 127.0.0.1:8080

在第277行,添加 DirectoryIndex 文件,Apache 将用它来服务对目录的请求:

DirectoryIndex index.php index.html

在第287行下,配置 Apache ,添加脚本支持:

<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

保存并退出。

现在用 sysrc 命令,来添加 Apache 为开机启动项目:

sysrc apache24_enable=yes

然后用下面的命令测试 Apache 的配置:

apachectl configtest

如果到这里都没有问题的话,那么就启动 Apache 吧:

service apache24 start

如果全部完毕,在“/usr/local/www/apache24/data”目录下创建一个 phpinfo 文件来验证 PHP 在 Apache 下顺利运行:

cd /usr/local/www/apache24/data
echo "<?php phpinfo(); ?>" > info.php

现在就可以访问 freebsd 的服务器 IP : 192.168.1.123:8080/info.php 。

Apache and PHP on Port 8080

Apache 及 PHP 运行在 8080 端口。

步骤 5 - 安装 Nginx

Nginx 可以以较低内存占用提供高性能的 Web 服务器和反向代理服务器。在这个步骤里,我们将会使用 Nginx 作为Apache 的反向代理,因此让我们用 pkg 命令来安装它吧:

pkg install nginx

步骤 6 - 配置 Nginx

一旦 Nginx 安装完毕,在“nginx.conf”文件里,我们需要做一个新的配置文件来替换掉原来的 nginx 配置文件。切换到“/usr/local/etc/nginx/”目录下,并且备份默认 nginx.conf 文件:

cd /usr/local/etc/nginx/
mv nginx.conf nginx.conf.oroginal

现在就可以创建一个新的 nginx 配置文件了:

nano -c nginx.conf

然后粘贴下面的配置:

user  www;
worker_processes  1;
error_log  /var/log/nginx/error.log;

events {
worker_connections  1024;
}

http {
include       mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log;

sendfile        on;
keepalive_timeout  65;

# Nginx cache configuration
proxy_cache_path    /var/nginx/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
proxy_temp_path     /var/nginx/cache/tmp;
proxy_cache_key     "$scheme$host$request_uri";

gzip  on;

server {
#listen       80;
server_name  _;

location /nginx_status {

stub_status on;
access_log off;
}

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /usr/local/www/nginx-dist;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:8080
#
location ~ \.php$ {
proxy_pass   http://127.0.0.1:8080;
include /usr/local/etc/nginx/proxy.conf;
}
}

include /usr/local/etc/nginx/vhost/*;

}

保存并退出。

下一步,在 nginx 目录下面,创建一个 proxy.conf 文件,使其作为反向代理 :

cd /usr/local/etc/nginx/
nano -c proxy.conf

粘贴如下配置:

proxy_buffering         on;
proxy_redirect          off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffers           100 8k;
add_header              X-Cache $upstream_cache_status;

保存并退出。

最后一步,为 nginx 的高速缓存创建一个“/var/nginx/cache”的新目录:

mkdir -p /var/nginx/cache

步骤 7 - 配置 Nginx 的虚拟主机

在这个步骤里面,我们需要创建一个新的虚拟主机域“saitama.me”,其文档根目录为“/usr/local/www/saitama.me”,日志文件放在“/var/log/nginx”目录下。

我们必须做的第一件事情就是创建新的目录来存放虚拟主机配置文件,我们创建的新目录名为“vhost”。创建它:

cd /usr/local/etc/nginx/
mkdir vhost

创建好 vhost 目录,然后我们就进入这个目录并创建一个新的虚拟主机文件。这里我取名为“saitama.conf”:

cd vhost/
nano -c saitama.conf

粘贴如下虚拟主机的配置:

server {
# Replace with your freebsd IP
listen 192.168.1.123:80;

# Document Root
root /usr/local/www/saitama.me;
index index.php index.html index.htm;

# Domain
server_name www.saitama.me saitama.me;

# Error and Access log file
error_log  /var/log/nginx/saitama-error.log;
access_log /var/log/nginx/saitama-access.log main;

# Reverse Proxy Configuration
location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;
include /usr/local/etc/nginx/proxy.conf;

# Cache configuration
proxy_cache my-cache;
proxy_cache_valid 10s;
proxy_no_cache $cookie_PHPSESSID;
proxy_cache_bypass $cookie_PHPSESSID;
proxy_cache_key "$scheme$host$request_uri";

}

# Disable Cache for the file type html, json
location ~* .(?:manifest|appcache|html?|xml|json)$ {
expires -1;
}

# Enable Cache the file 30 days
location ~* .(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
proxy_cache_valid 200 120m;
expires 30d;
proxy_cache my-cache;
access_log off;
}

}

保存并退出。

下一步,为 nginx 和虚拟主机创建一个新的日志目录“/var/log/”:

mkdir -p /var/log/nginx/

如果一切顺利,在文件的根目录下创建目录 saitama.me 用作文档根:

cd /usr/local/www/
mkdir saitama.me

步骤 8 - 测试

在这个步骤里面,我们只是测试我们的 nginx 和虚拟主机的配置。

用如下命令测试 nginx 的配置:

nginx -t

如果一切都没有问题,用 sysrc 命令添加 nginx 为开机启动项,并且启动 nginx 和重启 apache:

sysrc nginx_enable=yes
service nginx start
service apache24 restart

一切完毕后,在 saitama.me 目录下,添加一个新的 phpinfo 文件来验证 php 的正常运行:

cd /usr/local/www/saitama.me
echo "<?php phpinfo(); ?>" > info.php

然后访问这个域名: www.saitama.me/info.php

Virtualhost Configured saitamame

Nginx 作为 Apache 的反向代理运行了,PHP 也同样工作了。

这是另一个结果:

测试无缓存的 .html 文件。

curl -I www.saitama.me

html with no-cache

测试有三十天缓存的 .css 文件。

curl -I www.saitama.me/test.css

css file 30day cache

测试缓存的 .php 文件:

curl -I www.saitama.me/info.php

PHP file cached

全部搞定。

总结

Nginx 是最受欢迎的 HTTP 和反向代理服务器,拥有丰富的功能、高性能、低内存/RAM 占用。Nginx 也用于缓存, 我们可以在网络上缓存静态文件使得网页加速,并且缓存用户请求的 php 文件。 Nginx 容易配置和使用,可以将它用作 HTTP 服务器或者 apache 的反向代理。


via: http://linoxide.com/linux-how-to/install-nginx-reverse-proxy-apache-freebsd-10-2/

作者:Arul 译者:KnightJoker 校对:Carolinewxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

有时候你可能想在你的网卡上使用多个 IP 地址。遇到这种情况你会怎么办呢?买一个新的网卡并分配一个新的 IP?不,没有这个必要(至少在小型网络中)。现在我们可以在 Ubuntu 系统中为一个网卡分配多个 IP 地址。想知道怎么做到的?跟着我往下看,其实并不难。

这个方法也适用于 Debian 以及它的衍生版本。

临时添加 IP 地址

首先,让我们找到网卡的 IP 地址。在我的 Ubuntu 15.10 服务器版中,我只使用了一个网卡。

运行下面的命令找到 IP 地址:

sudo ip addr

样例输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:2a:03:4b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe2a:34e/64 scope link 
valid_lft forever preferred_lft forever

sudo ifconfig

样例输出:

enp0s3 Link encap:Ethernet HWaddr 08:00:27:2a:03:4b 
inet addr:192.168.1.103 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe2a:34e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:186 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:21872 (21.8 KB) TX bytes:9666 (9.6 KB)
lo Link encap:Local Loopback 
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:217 errors:0 dropped:0 overruns:0 frame:0
TX packets:217 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 
RX bytes:38793 (38.7 KB) TX bytes:38793 (38.7 KB)

正如你在上面输出中看到的,我的网卡名称是 enp0s3,它的 IP 地址是 192.168.1.103

现在让我们来为网卡添加一个新的 IP 地址,例如说 192.168.1.104

打开你的终端并运行下面的命令添加额外的 IP。

sudo ip addr add 192.168.1.104/24 dev enp0s3

用命令检查是否启用了新的 IP:

sudo ip address show enp0s3

样例输出:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.1.104/24 scope global secondary enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe2a:34e/64 scope link 
valid_lft forever preferred_lft forever

类似地,你可以添加任意数量的 IP 地址,只要你想要。

让我们 ping 一下这个 IP 地址验证一下。

sudo ping 192.168.1.104

样例输出

PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.
64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=0.901 ms
64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=0.571 ms
64 bytes from 192.168.1.104: icmp_seq=3 ttl=64 time=0.521 ms
64 bytes from 192.168.1.104: icmp_seq=4 ttl=64 time=0.524 ms

好极了,它能工作!

要删除 IP,只需要运行:

sudo ip addr del 192.168.1.104/24 dev enp0s3

再检查一下是否删除了 IP。

sudo ip address show enp0s3

样例输出:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe2a:34e/64 scope link 
valid_lft forever preferred_lft forever

可以看到已经没有了!!

正如你所知,重启系统后这些设置会失效。那么怎么设置才能永久有效呢?这也很简单。

添加永久 IP 地址

Ubuntu 系统的网卡配置文件是 /etc/network/interfaces

让我们来看看上面文件的具体内容。

sudo cat /etc/network/interfaces

输出样例:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp

正如你在上面输出中看到的,网卡启用了 DHCP。

现在,让我们来分配一个额外的地址,例如 192.168.1.104/24

编辑 /etc/network/interfaces

sudo nano /etc/network/interfaces

如下添加额外的 IP 地址。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp
iface enp0s3 inet static
 address 192.168.1.104/24

保存并关闭文件。

运行下面的命令使更改无需重启即生效。

sudo ifdown enp0s3 && sudo ifup enp0s3

样例输出:

Killed old client process
Internet Systems Consortium DHCP Client 4.3.1
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/enp0s3/08:00:27:2a:03:4e
Sending on LPF/enp0s3/08:00:27:2a:03:4e
Sending on Socket/fallback
DHCPRELEASE on enp0s3 to 192.168.1.1 port 67 (xid=0x225f35)
Internet Systems Consortium DHCP Client 4.3.1
Copyright 2004-2014 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/enp0s3/08:00:27:2a:03:4e
Sending on LPF/enp0s3/08:00:27:2a:03:4e
Sending on Socket/fallback
DHCPDISCOVER on enp0s3 to 255.255.255.255 port 67 interval 3 (xid=0xdfb94764)
DHCPREQUEST of 192.168.1.103 on enp0s3 to 255.255.255.255 port 67 (xid=0x6447b9df)
DHCPOFFER of 192.168.1.103 from 192.168.1.1
DHCPACK of 192.168.1.103 from 192.168.1.1
bound to 192.168.1.103 -- renewal in 35146 seconds.

注意:如果你从远程连接到服务器,把上面的两个命令放到一行非常重要,因为第一个命令会断掉你的连接。而采用这种方式可以保留你的 ssh 会话。

现在,让我们用下面的命令来检查一下是否添加了新的 IP:

sudo ip address show enp0s3

输出样例:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:2a:03:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 192.168.1.104/24 brd 192.168.1.255 scope global secondary enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe2a:34e/64 scope link 
valid_lft forever preferred_lft forever

很好!我们已经添加了额外的 IP。

再次 ping IP 地址进行验证。

sudo ping 192.168.1.104

样例输出:

PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.
64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=0.137 ms
64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=0.050 ms
64 bytes from 192.168.1.104: icmp_seq=3 ttl=64 time=0.054 ms
64 bytes from 192.168.1.104: icmp_seq=4 ttl=64 time=0.067 ms

好极了!它能正常工作。就是这样。

想知道怎么给 CentOS/RHEL/Scientific Linux/Fedora 系统添加额外的 IP 地址,可以点击下面的链接。

工作愉快!


via: http://www.unixmen.com/assign-multiple-ip-addresses-to-one-interface-on-ubuntu-15-10/

作者:SK 译者:ictlyh 校对:Caroline

本文由 LCTT 原创编译,Linux中国 荣誉推出

大家好,欢迎来阅读我们今天这篇 Apache Solr 的文章。简单的来说,Apache Solr 是一个最负盛名的开源搜索平台,配合运行在网站后端的 Apache Lucene,能够让你轻松创建搜索引擎来搜索网站、数据库和文件。它能够索引和搜索多个网站并根据搜索文本的相关内容返回搜索建议。

Solr 使用 HTTP 可扩展标记语言(XML),可以为 JSON、Python 和 Ruby 等提供应用程序接口(API)。根据 Apache Lucene 项目所述,Solr 提供了非常多的功能,让它很受管理员们的欢迎:

  • 全文检索
  • 分面导航 Faceted Navigation
  • 拼写建议/自动完成
  • 自定义文档排序/排列

前提条件:

在一个使用最小化安装包的全新 Ubuntu 14/15 系统上,你仅仅需要少量的准备,就开始安装 Apache Solor.

1)System Update 系统更新

使用一个具有 sudo 权限的非 root 用户登录你的 Ubuntu 服务器,在接下来的所有安装和使用 Solr 的步骤中都会使用它。

登录成功后,使用下面的命令,升级你的系统到最新的更新及补丁:

$ sudo apt-get update

2) 安装 JRE

要安装 Solr,首先需要安装 JRE (Java Runtime Environment) 作为基础环境,因为 solr 和 tomcat 都是基于Java.所以,我们需要安装最新版的 Java 并配置 Java 本地环境.

要想安装最新版的 Java 8,我们需要通过以下命令安装 Python Software Properties 工具包

$ sudo apt-get install python-software-properties

完成后,配置最新版 Java 8的仓库

$ sudo add-apt-repository ppa:webupd8team/java

现在你可以通过以下命令更新包源列表,使用‘apt-get’来安装最新版本的 Oracle Java 8。

$ sudo apt-get update

$ sudo apt-get install oracle-java8-installer

在安装和配置过程中,点击'OK'按钮接受 Java SE Platform 和 JavaFX 的 Oracle 二进制代码许可协议 Oracle Binary Code License Agreement

在安装完成后,运行下面的命令,检查是否安装成功以及查看安装的版本。

kash@solr:~$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

执行结果表明我们已经成功安装了 Java,并达到安装 Solr 最基本的要求了,接着我们进行下一步。

安装 Solr

有两种不同的方式可以在 Ubuntu 上安装 Solr,在本文中我们只用最新的源码包来演示源码安装。

要使用源码安装 Solr,先要从官网下载最新的可用安装包。复制以下链接,然后使用 'wget' 命令来下载。

$ wget http://www.us.apache.org/dist/lucene/solr/5.3.1/solr-5.3.1.tgz

运行下面的命令,将这个已归档的服务解压到 /bin 目录。

$ tar -xzf solr-5.3.1.tgz solr-5.3.1/bin/install_solr_service.sh --strip-components=2

运行脚本来启动 Solr 服务,这将会先创建一个 solr 的用户,然后将 Solr 安装成服务。

$ sudo bash ./install_solr_service.sh solr-5.3.1.tgz

Solr 安装

使用下面的命令来检查 Solr 服务的状态。

$ service solr status

Solr 状态

创建 Solr 集合:

我们现在可以使用 Solr 用户添加多个集合。就像下图所示的那样,我们只需要在命令行中指定集合名称和指定其配置集就可以创建多个集合了。

$ sudo su - solr -c "/opt/solr/bin/solr create -c myfirstcollection -n data_driven_schema_configs"

创建集合

我们已经成功的为我们的第一个集合创建了新核心实例目录,并可以将数据添加到里面。要查看库中的默认模式文件,可以在这里找到: '/opt/solr/server/solr/configsets/datadrivenschema\_configs/conf' 。

使用 Solr Web

可以使用默认的端口8983连接 Apache Solr。打开浏览器,输入 http://your\_server\_ip:8983/solr 或者 http://your-domain.com:8983/solr. 确保你的防火墙允许8983端口.

http://172.25.10.171:8983/solr/

Web访问Solr

在 Solr 的 Web 控制台左侧菜单点击 'Core Admin' 按钮,你将会看见我们之前使用命令行方式创建的集合。你可以点击 'Add Core' 按钮来创建新的核心。

添加核心

就像下图中所示,你可以选择某个集合并指向文档来向里面添加内容或从文档中查询数据。如下显示的那样添加指定格式的数据。

{
"number": 1,
"Name": "George Washington",
"birth_year": 1989,
"Starting_Job": 2002,
"End_Job": "2009-04-30",
"Qualification": "Graduation",
"skills": "Linux and Virtualization"
}

添加文件后点击 'Submit Document'按钮.

添加文档

总结

在 Ubuntu 上安装成功后,你就可以使用 Solr Web 接口插入或查询数据。如果你想通过 Solr 来管理更多的数据和文件,可以创建更多的集合。希望你能喜欢这篇文章并且希望它能够帮到你。


via: http://linoxide.com/ubuntu-how-to/configure-apache-solr-ubuntu-14-15/

作者:Kashif 译者:taichirain 校对:Caroline

本文由 LCTT 原创编译,Linux中国 荣誉推出