Merge pull request #11 from LCTT/master

Update the repo
This commit is contained in:
ZTinoZ 2015-07-08 09:26:56 +08:00
commit f60f0e651b
125 changed files with 3264 additions and 2129 deletions

View File

@ -1,43 +1,44 @@
用于提高网站安全性和自定义网站的 25 个有用 Apache .htaccess 技巧
25 个有用 Apache .htaccess 技巧
================================================================================
网站是我们生活中重要的一部分。它们是实现扩大业务、分享知识以及其它更多功能的方式。之前受制于只能提供静态内容,随着动态客户端和服务器端脚本语言的引入和现有静态语言的持续改进,例如从 html 到 html5动态网站成为可能剩下的也许在不久的将来也会实现。
网站是我们生活中重要的一部分。它们是实现扩大业务、分享知识以及其它更多功能的方式。早期受制于只能提供静态内容,随着动态客户端和服务器端脚本语言的引入和现有静态语言的持续改进,例如从 html 到 html5动态网站成为可能剩下的也许在不久的将来也会实现。
有了网站,随之而来的是对能向全球大规模用户显示站点的单元的需求。这个需求通过托管网站的服务器实现。这包括一系列的服务器例如Apache HTTP Server、Joomla 以及 允许个人拥有自己网站的 WordPress。
对于网站,随之而来的是需要一个能向全球大规模用户显示站点的某个东西。这个需求可以通过托管网站的服务器实现。这包括一系列的服务器例如Apache HTTP Server、Joomla 以及 允许个人拥有自己网站的 WordPress。
![Apache htaccess 小技巧](http://www.tecmint.com/wp-content/uploads/2015/01/htaccess-tricks.jpg)
25 个 htaccess 小技巧
*25 个 htaccess 小技巧*
想要拥有一个网站,可以创建一个自己的本地服务器,或者联系任何上面提到的或其它服务器管理员来托管他的网站。但实际问题也从这点开始。网站的性能主要取决于以下因素:
- 网站消耗的带宽。
- 针对黑客网站有多安全。
- 面对黑客,网站有多安全。
- 对数据库进行数据检索时的优化。
- 显示导航菜单和提供更多 UI 功能时的用户友好性。
除此之外,保证托管网站服务器成功的多种因素还包括:
- 对于一个流行站点的数据压缩量。
- 同时为多个请求同一或不同站点的用户服务的能力。
- 同时为多个请求同一或不同站点的用户服务的能力。
- 保证网站上输入的机密数据安全例如Email、信用卡信息等等。
- 允许更多的选项用于增强站点的动态性。
这篇文章讨论一个服务器提供的用于增强网站性能和提高针对坏机器人、热链接等的安全性的功能。例如 .htaccess 文件。
这篇文章讨论一个服务器提供的用于增强网站性能和提高针对坏机器人、热链等的安全性的功能:.htaccess 文件。
### .htaccess 是什么? ###
htaccess (hypertext access超文本访问) 是为网站所有者提供用于控制服务器环境变量以及其它参数的选项,从而增强他们网站的功能的文件。这些文件可以在网站目录树的任何一个目录中,并向该目录以及目录中的文件和子目录提供功能。
这些功能是什么呢?其实这些是服务器的指令,例如命令服务器执行特定任务的行,这些命令只对该文件所在目录中的文件和子目录有效。这些文件默认是隐藏的,因为所有操作系统和网站服务器默认配置为忽略。但让隐藏文件可见可以让你看到这些特殊文件。后续章节的话题将讨论能控制什么类型的参数。
这些功能是什么呢?其实这些是服务器的指令,例如命令服务器执行特定任务的行,这些命令只对该文件所在目录中的文件和子目录有效。这些文件默认是隐藏的,因为所有操作系统和网站服务器默认配置为忽略它们,但如果查看隐藏文件的话,你就可以看到这些特殊文件。后续章节的话题将讨论能控制什么类型的参数。
注意:如果 .htaccess 文件保存在 /apache/home/www/Gunjit/ 目录,那么它会向该目录中的所有文件和子目录提供命令,但如果该目录包含一个名为 /Gunjit/images/ 子目录,且该子目录中也有一个 .htaccess 文件,那么这个子目录中的命令会覆盖父目录中 .htaccess 文件(或者层次结构中更上层文件)提供的命令。
注意:如果 .htaccess 文件保存在 /apache/home/www/Gunjit/ 目录,那么它会向该目录中的所有文件和子目录提供命令,但如果该目录包含一个名为 /Gunjit/images/ 子目录,且该子目录中也有一个 .htaccess 文件,那么这个子目录中的命令会覆盖父目录中 .htaccess 文件(或者目录层次结构中更上层文件)提供的命令。
### Apache Server 和 .htaccess 文件 ###
Apache HTTP Server 俗称为 Apache是为了表示对一个有卓越战争策略技能的美洲土著部落的尊敬而命名。它是用 C/C++ 和 XML 建立的基于 [NCSA HTTPd 服务器][1] 的跨平台 Web 服务器,它在万维网的成长和发展中起到了关键作用。
Apache HTTP Server 俗称为 Apache是为了表示对一个有卓越战争策略技能的美洲土著部落的尊敬而命名。它基于 [NCSA HTTPd 服务器][1] ,是用 C/C++ 和 XML 建立的跨平台 Web 服务器,它在万维网的成长和发展中起到了关键作用。
最常用于 UNIXApache 也能用于多种平台,包括 FreeBSD、Linux、Windows、Mac OS、Novel Netware 等。在 2009 年Apache 成为第一个为超过一亿站点提供服务的服务器。
最常用于 UNIXApache 也能用于多种平台,包括 FreeBSD、Linux、Windows、Mac OS、Novel Netware 等。在 2009 年Apache 成为第一个为超过一亿站点提供服务的服务器。
Apache 服务器对于 www/ 目录中的每个用户有一个单独的 .htaccess 文件。尽管这些文件是隐藏的,但如果需要的话可以使它们可见。在 www/ 目录中有很多子目录,每个子目录通过用户名或所有者名称命名,包含了一个站点。除此之外你可以在每个子目录中有一个 .htaccess 文件,像之前所述用于配置子目录中的文件。
Apache 服务器可以让 www/ 目录中的每个用户有一个单独的 .htaccess 文件。尽管这些文件是隐藏的,但如果需要的话可以使它们可见。在 www/ 目录中可以有很多子目录,每个子目录通过用户名或所有者名称命名,包含了一个站点。除此之外你可以在每个子目录中有一个 .htaccess 文件,像之前所述用于配置子目录中的文件。
下面介绍如果配置 Apache 服务器上的 htaccess 文件。
@ -65,19 +66,19 @@ Apache 服务器对于 www/ 目录中的每个用户有一个单独的 .htaccess
在这种情况下最好咨询托管管理员,如果他们允许访问 .htaccess 文件的话。
### 用于站的 25 个 Apache Web 服务器 .htaccess 小技巧 ###
### 用于站的 25 个 Apache Web 服务器 .htaccess 小技巧 ###
#### 1. 如何在 .htaccess 文件中启用 mod_rewrite ####
mod_rewrite 选项允许你使用重定向并通过重定向到其它 URL 隐藏你真实的 URL。这个选项非常有用允许你用短的容易记忆的 URL 替换长 URL。
mod_rewrite 选项允许你使用重定向并通过重定向到其它 URL 隐藏你真实的 URL。这个选项非常有用允许你用短的容易记忆的 URL 替换长 URL。
要允许 mod_rewrite只需要在你的 .htaccess 文件的第一行添加如下一行。
Options +FollowSymLinks
该选项允许你跟踪符号链接从而在站点中启用 mod_rewrite。后面会介绍用短 URL 替换。
该选项允许你跟踪符号链接从而在站点中启用 mod_rewrite。后面会介绍用短 URL 替换。LCTT 译注:+FollowSymLinks 只是启用 mod_rewrite 的前提之一,还需要在全局和虚拟机中设置 `RewriteEngine on` 才能启用重写模块。)
#### 2. 如允许或禁止对站点的访问 ####
#### 2. 如允许或禁止对站点的访问 ####
通过使用 order、allow 和 deny 关键字htaccess 文件可以允许或者禁止对站点或目录中子目录或文件的访问。
@ -109,13 +110,13 @@ mod_rewrite 选项允许你使用重定向并通过重定向到其它 URL 隐藏
#### 3. 为不同错误码生成 Apache 错误文档 ####
一些简单行,我们可以解决当用户/客户端请求一个站点上不可用的网页时服务器产生的错误码的错误文档,例如我们大部分人见过的浏览器中显示的 404 Page not found.htaccess 文件指定了发生这些错误情况时采取何种操作。
用简单行,我们可以解决当用户/客户端请求一个站点上不可用的网页时服务器产生的错误码的错误文档,例如我们大部分人见过的浏览器中显示的 404 Page not found.htaccess 文件指定了发生这些错误情况时采取何种操作。
要做到这点,需要添加下面的行到 .htaccess 文件:
ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>
ErrorDocument 是一个关键字error-code 可以是 401、403、404、500 或任何有效的表示错误的代码,最后 path-of-document 表示本地机器上的路径(如果你使用的是你自己的本地服务器) 或 服务器上的路径(如果你使用任何其它服务器来托管网站)
ErrorDocument 是一个关键字error-code 可以是 401、403、404、500 或任何有效的表示错误的代码,最后 path-of-document 表示本地机器上的路径(如果你使用的是你自己的本地服务器) 或服务器上的路径(如果你使用任何其它服务器来托管网站)
**例子:**
@ -123,13 +124,13 @@ mod_rewrite 选项允许你使用重定向并通过重定向到其它 URL 隐藏
上面一行设置客户请求任何无效页面,服务器报告 404 错误时显示 error-docs 目录下的 error-404.html 文档。
ErrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"
ErrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"
上面的表示也正确,其中字符串表示一个普通的 html 文件。
上面的表示也正确,其中字符串相当于一个普通的 html 文件。
#### 4. 设置/取消 Apache 服务器环境变量 ####
在 .htaccess 文件中你可以设置或者取消站点所有者用来更改服务器设置的全局环境变量。要设置或取消环境变量,你需要在你的 .htaccess 文件中添加下面的行。
在 .htaccess 文件中你可以设置或者取消站点所有者可以更改的全局环境变量。要设置或取消环境变量,你需要在你的 .htaccess 文件中添加下面的行。
**设置环境变量**
@ -141,29 +142,29 @@ ErrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>
#### 5. 为文件定义不同 MIME 类型 ####
MIME(Multipurpose Internet Multimedia Extensions,,多用途 Internet 多媒体扩展) 是浏览器运行任何页面默认能识别的类型。你可以在 .htaccess 文件中为你的站点定义 MIME 类型,然后服务器就可以识别你定义类型的文件并运行。
MIME(多用途 Internet 多媒体扩展)是浏览器运行任何页面所默认识别的类型。你可以在 .htaccess 文件中为你的站点定义 MIME 类型,然后服务器就可以识别你定义类型的文件并运行。
<IfModule mod_mime.c>
AddType application/javascript js
AddType application/x-font-ttf ttf ttc
</IfModule>
这里mod_mime.c 是用于控制定义不同 MIME 类型的模块,如果在你的系统中已经安装了这个模块,那么你就可以用该模块去为你站点中不同的扩展定义不同的 MIME 类型,从而服务器可以理解这些文件。
这里mod_mime.c 是用于控制定义不同 MIME 类型的模块,如果在你的系统中已经安装了这个模块,那么你就可以用该模块去为你站点中不同的扩展定义不同的 MIME 类型,从而服务器可以理解这些文件。
#### 6. 如何在 Apache 中限制上传和下载的大小 ####
.htaccess 文件允许你拥有控制一个特定用户从你的站点上传或下载数据量大小的功能。要做到这点你只需要添加下面的行到你的 .htaccess 文件:
.htaccess 文件允许你能够控制某个用户从你的站点(通过 PHP单次上传数据量的大小LCTT 译注:原文有误,修改)。要做到这点你只需要添加下面的行到你的 .htaccess 文件:
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
上面的行设置最大上传大小、最大推送数据大小、最大执行时间,例如允许用户在本地机器运行站点的最大时间、限制的最大输入时间。
上面的行设置最大上传大小、最大POST 提交数据大小、最长执行时间(例如,允许用户在他的本地机器上单次执行一个请求的最大时间)、限制的最大输入时间。
#### 7. 让用户在站点上播放 .mp3 和其它文件之前预先下载 ####
#### 7. 让用户不能你的站点上在线播放 .mp3 和其它文件 ####
大部分情况下,人们在下载检查音乐质量之前会在网站上播放等等。作为一个聪明的销售者,你可以添加一个简单的功能,不允许任何用户在线播放音乐或视频,而是必须下载后才能播放。这非常有用,因为在线播放音乐和视频会消耗很多带宽。
大部分情况下,人们在下载检查音乐质量之前会在网站上播放等等。作为一个聪明的销售者,你可以添加一个简单的功能,不允许任何用户在线播放音乐或视频,而是必须下载完成后才能播放。这非常有用,因为(无缓冲的)在线播放音乐和视频会消耗很多带宽。
要添加下面的行到你的 .htaccess 文件:
@ -171,23 +172,23 @@ MIME(Multipurpose Internet Multimedia Extensions,,多用途 Internet 多媒体
#### 8. 为站点设置目录索引 ####
大部分网站开发者都知道第一个显示的页面,例如一个站点的主页面,被命名为 index.html。我们大部分也见过这个。但是如何设置呢
大部分网站开发者都知道第一个显示的页面是哪个,例如一个站点的首页,被命名为 index.html。我们大部分也见过这个。但是如何设置呢
.htaccess 文件提供了一种方式用于列出一个客户端请求访问网站的主页面时会顺序扫描的一些网页集,相应地如果找到了列出的页面中的任何一个就会作为站点的主页面并显示给用户。
.htaccess 文件提供了一种方式用于列出一个客户端请求访问网站的主页面时会顺序扫描的一些网页集,相应地如果找到了列出的页面中的任何一个就会作为站点的主页面并显示给用户。
需要添加下面的行产生所需的效果。
DirectoryIndex index.html index.php yourpage.php
上面一行指定如果有任何访问主页面的请求到来,首先会在目录中顺序搜索上面列出的网页:如果发现了 index.html 则显示为主页面,否则会处理下一个页面,例如 index.php如此直到你在列表中输入的最后一个页面。
上面一行指定如果有任何访问首页的请求到来,首先会在目录中顺序搜索上面列出的网页:如果发现了 index.html 则显示为主页面,否则会下一个页面,例如 index.php如此直到你在列表中输入的最后一个页面。
#### 9. 如何为文件启用 GZip 压缩以节省网站带宽 ####
重站点通常比只占少量空间的轻量级站点运行更慢是常见的现象。这是因为对于繁重站点需要时间加载大量的脚本文件和图片用于在客户端的 Web 浏览器上显示。
忙的站点通常比只占少量空间的轻量级站点运行更慢,这是常见的现象。因为对于繁忙的站点需要时间加载巨大的脚本文件和图片以在客户端的 Web 浏览器上显示。
当浏览器请求一个 web 页面时,服务器提供给浏览器该页面并局部显示该 web 页面,浏览器需要下载该页面然后在页面内部运行脚本,这是一种常见机制
通常的机制是这样的,当浏览器请求一个 web 页面时,服务器提供给浏览器该页面,并在浏览器端显示该 web 页面,浏览器需要下载该页面并运行页面内的脚本
这里 GZip 压缩所做的就是节省单个用户的服务时间从而提高带宽。服务器上站点的源文件以压缩形式保存,当用户请求到来的时候,这些文件以压缩形式传送,然后在服务器上解压并执行。这改进了带宽限制。
这里 GZip 压缩所做的就是节省单个用户的服务时间而不用增加带宽。服务器上站点的源文件以压缩形式保存,当用户请求到来的时候,这些文件以压缩形式传送,然后在客户端上解压LCTT 译注:原文此处有误)。这改善了带宽限制。
下面的行允许你压缩站点的源文件,但要求在你的服务器上安装 mod_deflate.c 模块。
@ -202,7 +203,7 @@ MIME(Multipurpose Internet Multimedia Extensions,,多用途 Internet 多媒体
#### 10. 处理文件类型 ####
服务器默认的有一些特定情况。例如:在服务器上运行 .php 文件,显示 .txt 文件。像这些我们可以以源代码形式只显示一些可执行 cgi 脚本或文件而不是执行它们。
服务器默认的有一些特定情况。例如:在服务器上运行 .php 文件,显示 .txt 文件。像这些我们可以以源代码形式只显示一些可执行 cgi 脚本或文件而不是执行它们LCTT 译注:这是为了避免攻击者通过上传恶意脚本,进而在服务器上执行恶意脚本进行破坏和窃取)
要做到这点在 .htaccess 文件中有如下行。
@ -213,7 +214,7 @@ MIME(Multipurpose Internet Multimedia Extensions,,多用途 Internet 多媒体
#### 11. 为 Apache 服务器设置时区 ####
.htaccess 文件可用于为服务器设置时区可以看出它的能力和重要性。这可以通过设置一个服务器为每个托管站点提供的一系列全局环境变量中的 TZ 完成。
.htaccess 文件可用于为服务器设置时区可以看出它的能力和重要性。这可以通过设置一个服务器为每个托管站点提供的一系列全局环境变量中的 TZ 完成。
由于这个原因,我们可以在网站上看到根据我们的时区显示的时间。也许服务器上其他拥有网站的人会根据他居住地点的位置设置时区。
@ -223,9 +224,9 @@ MIME(Multipurpose Internet Multimedia Extensions,,多用途 Internet 多媒体
#### 12. 如果在站点上启用缓存控制 ####
浏览器很有趣的一个功能是,已经观察到多次同时打开一个网站,和第一次打开相比之后会更快。但为什么会这样呢?事实上,浏览器在它的缓存中保存了一些通常访问的页面用于加快后面的访问。
浏览器很有趣的一个功能是,很多时间你可以看到,当多次同时打开一个网站和第一次打开相比前者会更快。但为什么会这样呢?事实上,浏览器在它的缓存中保存了一些通常访问的页面用于加快后面的访问。
但保存多长时间呢?这取决于你自己。例如,你的 .htaccess 文件中设置的缓存控制时间。.htaccess 文件指定了站点的网页可以在浏览器缓存中保存的时间,时间到期后需要重新验证,例如页面会从缓存中删除然后在下次用户访问站点的时候重建。
但保存多长时间呢?这取决于你自己。例如,你的 .htaccess 文件中设置的缓存控制时间。.htaccess 文件指定了站点的网页可以在浏览器缓存中保存的时间,时间到期后需要重新验证缓存,页面可能会从缓存中删除然后在下次用户访问站点的时候重建。
下面的行为你的站点实现缓存控制。
@ -243,7 +244,7 @@ MIME(Multipurpose Internet Multimedia Extensions,,多用途 Internet 多媒体
通常 .htaccess 文件中的内容会对该文件所在目录中的所有文件和子目录起作用,但是你也可以对特殊文件设置一些特殊权限,例如只禁止对某个文件的访问等等。
要做到这点,你需要在文件中以类似方式添加 <File> 标记:
要做到这点,你需要在文件中以类似方式添加 \<Files> 标记:
<files conf.html="">
Order allow, deny
@ -256,26 +257,26 @@ MIME(Multipurpose Internet Multimedia Extensions,,多用途 Internet 多媒体
#### 14. 启用在 cgi-bin 目录以外运行 CGI 脚本 ####
通常服务器运行的 CGI 脚本都保存在 cgi-bin 目录中,但是你可以启用在你需要的目录运行 CGI 脚本,只需要在所需的目录中添加下面的行到 .htaccess 文件,如果没有改文件就创建一个,并添加下面的行:
通常服务器运行的 CGI 脚本都保存在 cgi-bin 目录中,但是你可以在你需要的目录运行 CGI 脚本,只需要在所需的目录中的 .htaccess 文件添加下面的行,如果没有该文件就创建一个,并添加下面的行:
AddHandler cgi-script .cgi
Options +ExecCGI
#### 15.如何用 .htaccess 在站点上启用 SSI ####
服务器端包括顾名思义的和服务器部分相关的东西。但是什么呢?通常当我们在站点上有很多页面的时候,我们在主页上会有一个显示到其它页面链接的导航菜单,我们可以启用 SSI(Server Size Includes) 选项允许导航菜单中显示的所有页面完全包含在主页面中。
服务器端包括SSI顾名思义是和服务器部分相关的东西。这是什么呢?通常当我们在站点上有很多页面的时候,我们在主页上会有一个显示到其它页面链接的导航菜单,我们可以启用 SSI 选项允许导航菜单中显示的所有页面完全包含在主页面中。
SSI 允许包含多个页面,好像他们包含的内容就是一个单一页面的一部分,因此任何需要的编辑都只有一个文件,从而可以节省很多磁盘空间。除了 .shtml 文件,服务器默认启用了该选项。
SSI 允许多个页面包含同样的内容,因此只需要编辑一个文件就行,从而可以节省很多磁盘空间。对于 .shtml 文件,服务器默认启用了该选项。
如果你想要对 .html 启用该选项,你需要添加下面的行:
AddHandler server-parsed .html
之后 html 文件会导向 SSI。
样 html 文件中如下部分会被替换为 SSI。
<!--#inlcude virtual= “gk/document.html”-->
<!--#inlcude virtual="gk/document.html"-->
#### 16. 如何防止网站目录列表 ####
#### 16. 如何防止网站列出目录列表 ####
为防止任何客户端在本地机器罗列服务器上的网站目录列表,添加下面的行到你不想列出的目录的文件中。
@ -290,16 +291,28 @@ SSI 允许包含多个页面,好像他们包含的内容就是一个单一页
AddDefaultCharset UTF-8
DefaultLanguage en-US
#### 18. 重定向一个非 www URL 到 www URL ####
在开始解释之前,首先看看如何启用该功能,添加下列行到 .htaccess 文件。
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^abc\.net$
RewriteRule (.*) http://www.abc.net/$1 [R=301,L]
上面的行启用重写引擎,然后在第二行检查所有涉及到主机 abc.net 或 环境变量 HTTP_HOST 为 “abc.net” 的 URL。
对于所有这样的 URL代码永久重定向它们(如果启用了 R=301 规则)到新 URL http://www.abc.net/$1其中 $1 是主机为 abc.net 的非 www URL。非 www URL 是大括号内的内容,并通过 $1 引用。
**重写 URL 的重定向规则**
重写功能仅意味着用短而易记的 URL 替换长而难以记忆的 URL。但是在开始这个话题之前这里有一些本文后面会使用的特殊字符的规则和约定。
重写功能简单的说,就是用短而易记的 URL 替换长而难以记忆的 URL。但是在开始这个话题之前这里有一些本文后面会使用的特殊字符的规则和约定。
**特殊符号:**
符号 含义
^ - 字符串开头
$ - 字符串结尾
| - 或 [a|b] a 或 b
| - 或 [a|b] a 或 b
[a-z] - a 到 z 的任意字母
+ - 之前字母的一次或多次出现
* - 之前字母的零次或多次出现
@ -309,30 +322,19 @@ SSI 允许包含多个页面,好像他们包含的内容就是一个单一页
常量 含义
NC - 区分大小写
L - 最后的规则 停止处理更多规则
L - 最后的规则 停止处理后面规则
R - 临时重定向到新 URL
R=301 - 永久重定向到新 URL
F - 禁止发送 403 头给用户
P - 代理 获取远程内容代替部分并返回
G - Gone, 不再存在
P - 代理 - 获取远程内容代替部分并返回
G - Gone 不再存在
S=x - 跳过后面的 x 条规则
T=mime-type - 强制指定 MIME 类型
E=var:value - 设置环境变量 var 的值为 value
H=handler - 设置处理器
PT - Pass through 如果 URL 有额外的头
QSA - 从到替换 URL 的请求追加查询字符串
PT - Pass through - 用于 URL 还有额外的头
QSA - 将查询字符串追加到替换 URL
#### 18. 重定向一个非 www URL 到 www URL ####
在开始解释之前,首先看看启用该功能需要添加到 .htaccess 文件的行。
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^abc\.net$
RewriteRule (.*) http://www.abc.net/$1 [R=301,L]
上面的行启用 Rewrite Engine 然后在第二行检查所有涉及到主机 abc.net 或 环境变量 HTTP_HOST 为 “abc.net” 的 URL。
对于所有这样的 URL代码永久重定向它们(如果启用了 R=301 规则)到新 URL http://www.abc.net/$1其中 $1 是主机为 abc.net 的非 www URL。非 www URL 是大括号内的内容,并通过 $1 引用。
#### 19. 重定向整个站点到 https ####
@ -342,7 +344,7 @@ SSI 允许包含多个页面,好像他们包含的内容就是一个单一页
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
上面的行启用 re-write engine 然后检查环境变量 HTTPS 的值。如果设置了那么重写所有网站页面到 https。
上面的行启用重写引擎,然后检查环境变量 HTTPS 的值。如果设置了那么重写所有网站页面到 https。
#### 20.一个自定义重写例子 ####
@ -359,11 +361,11 @@ SSI 允许包含多个页面,好像他们包含的内容就是一个单一页
AccessFileName htac.cess
#### 22. 如何为你的网站禁用图片链 ####
#### 22. 如何为你的网站禁用图片链 ####
网站大的带宽消耗的另外一个重要问题是热链接问题,这是其它站点用于显示你网站的图片而链接到你的网站的链接,这会消耗你的带宽。这问题也被成为 ‘带宽盗窃’。
网站带宽消耗比较大的另外一个重要问题是盗链问题,这是其它站点用于显示你网站的图片而链接到你的网站的链接,这会消耗你的带宽。这问题也被成为 ‘带宽盗窃’。
一个常见现象是当一个网站要显示其它网站所包含的图片时,由于该链接你的网站需要被加载,消耗你站点的带宽而显示其它站点的图片。为了防止出现这种情况,例如 .gif、.jpeg 图片等,下面的代码行会有所帮助:
一个常见现象是当一个网站要显示其它网站所包含的图片时,由于该链接需要从你的网站加载内容,消耗你站点的带宽而为其它站点显示图片。为了防止出现这种情况,比如对于 .gif、.jpeg 图片等,下面的代码行会有所帮助:
RewriteEngine ON
RewriteCond %{HTTP_REFERER} !^$
@ -374,20 +376,19 @@ SSI 允许包含多个页面,好像他们包含的内容就是一个单一页
#### 23. 如何将用户重定向到维护页面 ####
如果你的网站需要进行维护并且你想向所有需要访问该网站的你的所有客户通知这个消息,对于这种情况,你可以添加下面的行到你的 .htaccess 文件,从而只允许管理员访问并替换所有有 .jpg、.css、.gif、.js 等的页面
如果你的网站需要进行维护并且你想向所有需要访问该网站的你的所有客户通知这个消息,对于这种情况,你可以添加下面的行到你的 .htaccess 文件,从而只允许管理员访问并替换所有访问 .jpg、.css、.gif、.js 等的页面内容
RewriteCond %{REQUEST_URI} !^/admin/ [NC]
RewriteCond %{REQUEST_URI} !^((.*).css|(.*).js|(.*).png|(.*).jpg) [NC]
RewriteRule ^(.*)$ /ErrorDocs/Maintainence_Page.html
[NC,L,U,QSA]
RewriteRule ^(.*)$ /ErrorDocs/Maintainence_Page.html [NC,L,U,QSA]
这些行检查请求 URL 是否包含任何例如以 /admin/ 开头的管理页面的请求,或任何到 .png, .jpg, .js, .css 页面的请求,对于任何这样的请求,用 ErrorDocs/Maintainence_Page.html 替换那个页面。
#### 24. 映射 IP 地址到域名 ####
名称服务器是将特定 IP 地址转换为域名的服务器。映射也可以在 .htaccess 文件中用以下形式指定。
名称服务器是将特定 IP 地址转换为域名的服务器。这种映射也可以在 .htaccess 文件中用以下形式指定。
为了将地址 L.M.N.O 映射到域名 www.hellovisit.com
# 为了将IP地址 L.M.N.O 映射到域名 www.hellovisit.com
RewriteCond %{HTTP_HOST} ^L\.M\.N\.O$ [NC]
RewriteRule ^(.*)$ http://www.hellovisit.com/$1 [L,R=301]
@ -414,7 +415,7 @@ via: http://www.tecmint.com/apache-htaccess-tricks/
作者:[Gunjit Khera][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

View File

@ -1,12 +1,13 @@
20款优秀的Linux终端仿真器
20 款优秀的 Linux 终端仿真器
================================================================================
终端仿真器是一款用其它显示结构重现可视终端的计算机程序。换句话说就是终端仿真器能使哑终端看似像一台客户机连接上了服务器。终端仿真器允许最终用户像文本用户界面和命令行界面一样连接控制台和应用程序。
终端仿真器是一款用其它显示架构重现可视终端的计算机程序。换句话说就是终端仿真器能使哑终端看似像一台连接上了服务器的客户机。终端仿真器允许最终用户用文本用户界面和命令行来访问控制台和应用程序。LCTT 译注:终端仿真器原意指对大型机-哑终端方式的模拟,不过在当今的 Linux 环境中,通常指通过远程或本地方式连接的伪终端,俗称“终端”。)
![Linux Terminal Emulators](http://www.tecmint.com/wp-content/uploads/2014/01/Linux-Terminal-Emulators1.jpeg)
20款Linux终端仿真器
*20款Linux终端仿真器*
你能从开源世界中找到大量的终端仿真器来使用,有些拥有大量的特性而有些则反之。为了能更好地理解它们所能提供的质量,我们收集了一份不可思议的Linux终端仿真器清单。每一款都列出了它们各自的描述和特性以及软件界面截图和下载链接。
你能从开源世界中找到大量的终端仿真器,它们有些拥有大量的特性而有些则反之。为了能更好地了解它们的特性,我们收集了一份优秀的Linux终端仿真器清单。每一款都列出了它们各自的描述和特性以及软件界面截图和下载链接。
### 1. Terminator ###
@ -14,21 +15,21 @@ Terminator是一款先进且强大的终端仿真器它支持多终端窗口
#### Terminator的特性 ####
- 自定义外形和配色方案,根据你的需要设置尺寸。
- 使用插件来获取更多功能。
- 自定义配置和配色方案,根据你的需要设置尺寸。
- 使用插件来提供更多功能。
- 快捷键可以加快普通操作。
- 可以把终端窗口分裂成几个虚拟终端并把它们重新设置成你需要的尺寸。
- 可以把终端窗口分割成几个虚拟终端并把它们根据需要重新调整尺寸。
![Terminator Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Terminator-Emulator.jpeg)
Terminator Terminal
*Terminator 终端*
- [Terminator Homepage][1]
- [Download and Installation Instructions][2]
- [Terminator 主页][1]
- [下载和安装指引][2]
### 2. Tilda ###
Tilda是一款漂亮的基于GTK+的下拉式终端敲击键你就可以呼出一个新的或隐藏着的Tilda窗口。你也可以添加你所选择的颜色来更改文本颜色和终端背景颜色。
Tilda是一款漂亮的下拉式终端,基于GTK+,一键单击你就可以呼出一个新的或隐藏着的Tilda窗口。你也可以你所选择的颜色来更改文本颜色和终端背景颜色。
#### Tilda的特性 ####
@ -38,72 +39,72 @@ Tilda是一款漂亮的基于GTK+的下拉式终端,敲击一个键你就可
![Tilda Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Tilda-Emulator.jpeg)
Tilda Terminal
*Tilda 终端*
- [Tilda Homepage][3]
- [Tilda 主页][3]
### 3. Guake ###
Guake是一款基于python的下拉式终端诞生于GNOME桌面环境。就能调出再按一下就能隐藏。它的设计构思来源于FPS (第一人称射击) 游戏例如Quake其目标显而易见
Guake是一款基于python的下拉式终端诞生于GNOME桌面环境。一键调出再按一下就能隐藏。它的设计构思来源于FPS (第一人称射击) 游戏 Quake其主要目标是容易访问
Guake与Yakuaka和Tilda非常相似不过它是一个集上述二者的优点于一体的基于GTK的程序。Guake完全是用Python和小片的C写成的(全局热键部分)。
Guake与Yakuaka和Tilda非常相似不过它是一个集上述二者的优点于一体的基于GTK的程序。Guake完全是用Python和C的片段写成的(全局热键部分)。
![Guake Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Guake-Terminal.jpeg)
Guake Terminal
*Guake 终端*
- [Guake Homepage][4]
- [Guake 主页][4]
### 4. Yakuake ###
Yakuake (Yet Another Kuake) 是一款基于KDE的下拉式终端仿真器它与Guake再功能上非常相似。它的射击构思也是受FPS游戏的启发例如Quake
Yakuake (Yet Another Kuake) 是一款基于KDE的下拉式终端仿真器它与Guake在功能上非常相似。它的设计构思也是受FPS游戏Quake的启发
Yakuake主要是一款KDE应用程序它能非常轻松地安装在KDE桌面上但是如果你试着将它安装在GNOME桌面上你将会安装大量的依赖包。
Yakuake从根本上说是一款KDE应用程序它能非常轻松地安装在KDE桌面上但是如果你试着将它安装在GNOME桌面上你将会安装大量的依赖包。
#### Yakuake的特性 ####
- 从屏幕顶端弹回顺畅
- 选项卡式界面
- 顺畅地从屏幕顶端弹出
- 标签式界面
- 可配置的尺寸和动画速度
- 可定制
![Yakuake Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Yakuake-Terminal.jpeg)
Yakuake Terminal
*Yakuake 终端*
- [Yakuake Homepage][5]
- [Yakuake 主页][5]
### 5. ROXTerm ###
ROXterm又是一款轻量级终端仿真器旨在提供与GNOME终端相似的特性。它原本创造出来是为了通过不使用Gnome库从而拥有更少的占用空间和更快的启动速度并使用独立的小程序来建立配置界面(GUI), 但是随着时间的流逝,它的角色就转变为给那些高级用户带来更高层的特性。
ROXterm是又一款轻量级终端仿真器旨在提供与“GNOME终端”相似的特性。它原本创造出来是为了避免使用Gnome库从而更少占用空间和更快启动并使用独立的小程序来显示配置界面(GUI), 但是随着时间的流逝,它的角色就转变为给那些高级用户带来更高层的特性。
然而它比GNOME终端更加具有可制定性并且对于那些经常使用终端的高级用户更令人期望。它能和GNOME桌面环境完美结合并在终端中提供像拖拽项目那样的特性。
然而它比GNOME终端更加具有可制定性并且对于那些经常使用终端的高级用户更令人期望。它能和GNOME桌面环境完美结合并在终端中提供像拖拽项目那样的特性。
![Roxterm Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Roxterm-Terminal.jpeg)
Roxterm Terminal
*Roxterm 终端*
- [ROXTerm Homepage][6]
- [ROXTerm 主页][6]
### 6. Eterm ###
Eterm是最轻量级的一款彩色终端仿真器是作为xterm的替代品而被设计出来。它是以一种选择自由的思想、避免臃肿、灵活性和自由在用户手中是触手可及的理念而开发出来的
Eterm是最轻量级的一款彩色终端仿真器是作为xterm的替代品而被设计出来。它是以一种自由选择的理念设计的,带来了更强大、灵活、用户自主把控的终端
![Eterm Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Eterm-Terminal.jpeg)
Eterm Terminal
*Eterm 终端*
- [Eterm Homepage][7]
- [Eterm 主页][7]
### 7. Rxvt ###
代表着扩展虚拟终端的Rxvt是一款彩色终端仿真器为那些不需要一些特性例如Tektronix 4014仿真和toolkit-style可配置性的高级用户而生的xterm替代品。
Rxvt 的意思是扩展虚拟终端,它是一款彩色终端仿真器,是为那些不需要一些诸如Tektronix 4014仿真和toolkit-style可配置性等特性的高级用户而生的xterm替代品。
![Rxvt Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Rxvt-Terminal.jpeg)
Rxvt Terminal
*Rxvt 终端*
- [Rxvt Homepage][8]
- [Rxvt 主页][8]
### 8. Wterm ###
@ -111,9 +112,9 @@ Wterm是另一款以rxvt项目为基础的轻量级彩色终端仿真器。它
![wterm Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/wterm-Terminal-.jpeg)
wterm Terminal
*wterm 终端*
- [Wterm Homepage][9]
- [Wterm 主页][9]
### 9. LXTerminal ###
@ -121,16 +122,16 @@ LXTerminal是一款基于VTE的终端仿真器默认运行于没有任何多
#### LXTerminal的特性 ####
- 多标签支持
- 支持普通命令如cp, cd, dir, mkdir, mvdir
- 多标签支持
- 支持常规命令如cp, cd, dir, mkdir, mvdir
- 隐藏菜单栏以保证足够界面空间
- 更改配色方案
![lxterminal Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/lxterminal-Terminal.jpeg)
lxterminal Terminal
*lxterminal 终端*
- [LXTerminal Homepage][10]
- [LXTerminal 主页][10]
### 10. Konsole ###
@ -147,85 +148,83 @@ Konsole是另一款强大的基于KDE的免费终端仿真器最初由Lars Do
- 终端中的活动通知警告
- 增量搜索
- 支持Dolphin文件管理器
- 普通文本和HTML格式输出出口
- 支持导出显示为普通文本和HTML格式
![Konsole Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Konsole-Terminal.jpeg)
Konsole Terminal
*Konsole 终端*
- [Konsole Homepage][11]
- [Konsole 主页][11]
### 11. TermKit ###
TermKit是一款漂亮简洁的终端其目标是用在Google Chrome和Chromium中广泛被使用的WebKit渲染引擎在基于应用程序的命令行中构建出GUI视图。TermKit起初是为Mac和Windows设计的但是由于TermKit被Floby给fork并做了修改现在你可以将它安装在Linux发行版上并感受TermKit带来的魅力。
TermKit是一款漂亮简洁的终端其目标是用WebKit渲染引擎在基于应用程序的命令行中构建出GUI视图LCTT 译注这个描述比较模糊请参考截图或安装一个体验下WebKit渲染引擎在Google Chrome和Chromium中广泛使用。TermKit起初是为Mac和Windows设计的但是由于Floby对TermKit 构建了分支现在你可以将它安装在Linux发行版上并感受TermKit带来的魅力。
![TermKit Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/TermKit-Terminal.jpeg)
TermKit Terminal
*TermKit 终端*
- [TermKit Homepage][12]
- [TermKit 主页][12]
### 12. st ###
st是一款简单的X Window终端实现接口
st是一款简单的X Window终端。
![st terminal](http://www.tecmint.com/wp-content/uploads/2014/01/st-terminal.png)
st terminal
*st 终端*
- [st Homepage][13]
- [st 主页][13]
### 13. Gnome-Terminal ###
### 13. Gnome 终端 ###
GNOME终端是一款在GNOME桌面环境下的嵌入式终端仿真器由Havoc Pennington和其他一些人共同开发。它允许用户在GNOME环境下的同时使用一个真实的Linux shell来运行命令。GNOME终端是模拟的xterm终端仿真器并带来了一些相似的特性。
GNOME终端是一款在GNOME桌面环境下自带的终端仿真器由Havoc Pennington和其他一些人共同开发。它允许用户在GNOME环境下可以使用一个真实的Linux shell来运行命令。GNOME终端是模仿了xterm终端仿真器并有一些相似的特性。
Gnome终端支持多用户,用户可以为他们的账户创建多个用户,每个用户能自定义配置选项,如字体、颜色、背景图片、行为习惯等等并能分别给它们取名。它也支持鼠标事件、url探测、多标签等。
Gnome终端支持多配置文件,用户可以为他们的账户创建多个配置文件,每个配置文件能自定义配置选项,如字体、颜色、背景图片、行为习惯等等,并能分别给每个配置文件取名。它也支持鼠标事件、url探测、多标签等。
![Gnome Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Gnome-terminal.jpg)
Gnome Terminal
*Gnome 终端*
- [Gnome Terminal][14]
- [Gnome 终端][14]
### 14. Final Term ###
Final Term是一款漂亮的开源终端仿真器在这一个界面里蕴藏着一些令人激动的功能和特性。虽然它仍然有待改进,但是它提供了一些重要的特性比如Semantic文本菜单、智能的命令行实现、GUI终端控制、全能的快捷键、彩色支持等等。以下动图抓取并演示了它们的一些特性点开来看看吧。
Final Term是一款漂亮的开源终端仿真器在这一个单独的界面里蕴藏着一些令人激动的特性和方便的功能。虽然它仍然有待改进,但是它提供了一些重要的特性比如“语义”文本菜单、智能的命令行补全、GUI终端控制、全能的快捷键、彩色支持等等。以下动图抓取并演示了它们的一些特性点开来看看吧。
![FinalTerm Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/FinalTerm.gif)
FinalTerm Terminal
*FinalTerm 终端*
- [Final Term][15]
### 15. Terminology ###
Terminology是一款新的现代化终端仿真器为Enlightenment桌面创造但也能用于其它桌面环境。它有一些独一无二的棒极了的特性这是其它终端仿真器所不具备的。
Terminology是一款新的现代化终端仿真器为Enlightenment桌面创造但也能用于其它桌面环境。它有一些独一无二的棒极了的特性这是其它终端仿真器所不具备的。
抛开这些特性terminology甚至还提供了你无法从其它仿真器看到的东西比如图像、视频和文档的缩略图预览它允许你从Terminology直接就能看到那些文件。
你可以来看看Terminology的开发人员制作的小视频(视频画质不太清晰但足以让你了解Terminology了)。
<iframe width="630" height="480" frameborder="0" allowfullscreen="" src="//www.youtube.com/embed/ibPziLRGvkg"></iframe>
你可以来看看Terminology的开发人员制作的小视频(视频画质不太清晰但足以让你了解Terminology了) https://www.youtube.com/ibPziLRGvkg
- [Terminology][16]
### 16. Xfce4 terminal ###
### 16. Xfce4 终端 ###
Xfce终端是一款轻量级的现代化终端仿真器它简单易用为Xfce桌面环境设计。它最新的一个版本有许多新的炫酷特性比如搜索会话、标签颜色转换器、像Guake或Yakuake一样的下拉式控制台等等。
Xfce终端是一款轻量级的现代化终端仿真器它简单易用为Xfce桌面环境设计。它最新的一个版本有许多新的炫酷特性,比如搜索对话框、标签颜色转换器、像Guake或Yakuake一样的下拉式控制台等等。
![Xfce Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/xfce-terminal.jpg)
Xfce Terminal
*Xfce 终端*
- [Xfce4 Terminal][17]
- [Xfce4 终端][17]
### 17. xterm ###
xterm应用程序是一款标准的在X Window系统上的终端仿真器。它保持了DEC VT102和Tektronix 4014让应用能直接使用X Window系统
xterm应用是一款标准的在X Window系统上的终端仿真器。它保持了对DEC VT102和Tektronix 4014终端的兼容以支持那些不能直接使用窗口系统的应用
![xterm Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/xterm.jpg)
xterm Terminal
*xterm 终端*
- [xterm][18]
@ -233,36 +232,36 @@ xterm Terminal
LilyTerm是一款基于libvte的开源终端仿真器这款不太出名的仿真器追求的是快速和轻量级。LilyTerm也包括一些关键特性
- 支持标签移动、着色以及标签重新排序
- 支持标签、彩色以及标签重新排序
- 通过快捷键管理标签
- 支持背景透明化和饱和度调整
- 支持为特定用户创建配置文件
- 支持用户创建配置文件
- 若干个自定义选项
- 广泛支持UTF-8
![Lilyterm Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/Lilyterm.jpg)
Lilyterm Terminal
*Lilyterm 终端*
- [LilyTerm][19]
### 19. Sakura ###
Sakura是另一款不知名的Unix风格终端仿真器按照命令行模式和基于文本的终端程序开发。Sakura基于GTK和livte自身特性不多不过还是有一些自定义选项比如多标签支持、自定义文本颜色、字体和背景图片、快速命令处理等等。
Sakura是另一款不知名的Unix风格终端仿真器是为命令行模式和基于文本的终端程序开发。Sakura基于GTK和livte自身特性不多不过还是有一些自定义选项比如多标签支持、自定义文本颜色、字体和背景图片、快速命令处理等等。
![Sakura Terminal](http://www.tecmint.com/wp-content/uploads/2014/01/sakura.jpg)
Sakura Terminal
*Sakura 终端*
- [Sakura][20]
### 20. rxvt-unicode ###
rxvt-unicode (也称为urxvt) 是另一个高度可定制、轻量级和快速的终端仿真器支持xft和unicode由Marc Lehmann开发。它有许多显著特性比如支持Unicode上的国际语言能显示多种字体类型并支持Perl扩展。
rxvt-unicode (也称为urxvt) 是另一个高度可定制、轻量级和快速的终端仿真器支持xft和unicode由Marc Lehmann开发。它有许多显著特性比如通过Unicode支持国际化语言能显示多种字体类型并支持Perl扩展。
![rxvt unicode](http://www.tecmint.com/wp-content/uploads/2014/01/rxvt-unicode.png)
rxvt unicode
*rxvt unicode*
- [rxvt-unicode][21]
@ -274,7 +273,7 @@ via: http://www.tecmint.com/linux-terminal-emulators/
作者:[Ravi Saive][a]
译者:[ZTinoZ](https://github.com/ZTinoZ)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,122 @@
如何在 Linux 上 使用 ONLYOFFICE 协同编辑文档
================================================================================
> “多年前由一些紧张兮兮的、带有强迫症的助理开发的 Bulletin只是一个放在共享文件夹中只有 Emily 和我可以访问的 Word 文档而已。同一时间我们只有一个人可以打开它并添加消息、想法,或者给条目列表上增加问题。然后我们再打印出更新后的版本并放到我桌子架上的剪贴板,并在完成时删除旧的内容。”(——《穿普拉达的女王》,劳伦·魏丝伯格著
直到今天人们仍然在使用这样的“协同编辑”,只有一个人可以打开共享文件,对其进行更改,然后告诉其它人什么时候修改了什么。
ONLYOFFICE 是一款集成了文档、电子邮件、事件、任务和客户关系管理工具的开源在线办公套件。
使用 ONLYOFFICE 办公套件,一组人可以同时编辑文本、电子表格或者在浏览器上进行展示。可以直接在他们的文档上留下评论并用其中集成的聊天工具和其他人沟通。最后,可以保存文档为 PDF 文件并打印。作为额外的增强功能,它还能浏览文档历史并在如果需要时恢复到之前的修订/版本。
在这篇教程中,我会介绍如何使用 [免费版 ONLYOFFICE][1] 部署你自己的在线办公套件,免费版 ONLYOFFICE 是 ONLYOFFICE 在 GNU AGPL v3 协议下发布的自托管版本。
### 在 Linux 上安装 ONLYOFFICE ###
安装 ONLYOFFICE 要求在你的 Linux 系统上要有 mono4.0.0 或更高版本、nodejs、libstdc++6、nginx 和 mysql-server。为了简化安装过程并避免依赖错误我使用 Docker 安装 ONLYOFFICE。在这种情况下只需要安装一种依赖 - [Docker][2]。
提醒一下Docker 是一个在软件容器中自动部署应用的开源项目。如果在你的 Linux 系统上 Docker 不可用,首先根据 [基于 Debian][3] 或 [基于 Red-Hat][4] 系统的 Docker 安装指令安装它。
注意,你需要 Docker 1.4.1 或更高版本。要检查安装的 Docker 版本,可以使用下面的命令。
$ docker version
在一个 Docker 容器中试用 ONLYOFFICE只需要执行下面的命令
$ sudo docker run -i -t -d --name onlyoffice-document-server onlyoffice/documentserver
$ sudo docker run -i -t -d -p 80:80 -p 443:443 --link onlyoffice-document-server:document_server onlyoffice/communityserver
这些命令会下载为了能正常运行带有所有所需依赖的 [官方 ONLYOFFICE Docker 镜像][5]。
也可以在 Linux 服务器上单独安装 [ONLYOFFICE 在线编辑器][6],并通过提供的 API 轻松地集成到你的站点或云应用。
### 运行自行托管的在线 Office ###
要打开你的在线 office在你浏览器的地址栏输入 localhosthttp://IP地址/)。会打开欢迎页面:
![](https://farm9.staticflickr.com/8815/18116525656_795821c73b_c.jpg)
输入一个密码并指定下次访问你的 office 所使用的电子邮件地址。
### 在线编辑文档 ###
首先点击 Document 链接打开 **the My Documents** 文件夹。
![](https://farm8.staticflickr.com/7781/17956640089_d3df0b18cd_c.jpg)
#### STEP 1. 选择需要编辑的文档 ####
要在这里新建一个新文档,点击左上角的 “Create” 按钮,从下拉列表中选择文件类型。要编辑保存在你硬盘中的文件,点击 **Create** 按钮旁边的 **Upload** 按钮上传文件到 **Document**
![](https://farm9.staticflickr.com/8836/17956640109_ed8be735df_c.jpg)
#### STEP 2. 共享文档 ####
如果你在 **My Documents** 文件夹中,用右边的 **Share** 按钮,或者如果你在文档中,用 **File >> Document Info ... >> Change Access Rights**
在打开的 **Sharing Settings** 窗口,点击左边的 **People outside portal** 链接,打开到文档的访问,并通过启用 **Full Access** 单选按钮给予完全访问权限。
最后,选择一种方式共享到你文档的链接,通过 email 或者你可用的一种社交网络Google+、Facebook 或 Twitter 发送。
![](https://farm8.staticflickr.com/7766/17522306273_c8a9022c75_c.jpg)
#### STEP 3. 开始协同编辑 ####
邀请的人只需要根据提供的链接就可以开始协同编辑文档。
它会自动用不用颜色的虚线将你的合作者编辑的文本段落标记出来。
![](https://farm8.staticflickr.com/7790/18139370292_7ef57aae8f_c.jpg)
只要你的其中一个协作者保存了他/她的更改,你会看到在顶部工具栏左上角出现了一个提示标签,表示这里有更新。
![](https://farm8.staticflickr.com/7778/18143984831_3dd42a9672_c.jpg)
点击 **Save** 图标保存更改并更新。然后会高亮所有的更新。
![](https://farm8.staticflickr.com/7796/17955172970_e53460b8a6_c.jpg)
#### STEP 4. 和协作者互动 ####
要写评论,用鼠标选择一个文本段落,右击并从上下文菜单中选择 **Add comment** 选项。
![](https://farm8.staticflickr.com/7771/17956640359_c4e2858dc8_c.jpg)
要和协作者实时互动,可以使用集成的聊天工具。**Chat** 面板会列出所有正在编辑文档的用户。点击左侧边栏的 **Chat** 图标打开它。在 **Chat** 面板的合适区域输入你的信息开始讨论。
![](https://farm8.staticflickr.com/7794/18116394026_d93b00e4f8_c.jpg)
### 有用的提示 ###
最后,这里有一些你充分利用 ONLYOFFICE 的有用提示。
#### Tip #1. 在云存储服务例如 ownCloud 上编辑文档 ####
如果你将文档存储在其它网络资源上,例如 Box、Dropbox、Google Drive、OneDrive、SharePoint 或 ownCloud你可以轻松地和 ONLYOFFICE 同步。
在打开的 Documents 模块,点击 **Add the account** 下面的其中一个图标Google、Box、DropBox、OneDrive、ownCloud 或 Add account并输入所需数据。
#### Tip #2. 在 iPad 上编辑文档 ####
要随时随地对文件进行修改,我使用 iPad 的 ONLYOFFICE Documents 应用。你可以从 [iTune][7] 下载并安装它,然后你需要输入你的 ONLYOFFICE 地址、email 和密码来访问你的文档。功能设置几乎一样。
为了评估 ONLYOFFICE 在线编辑器的功能,你可以使用供个人使用的 [云版本][8]。
--------------------------------------------------------------------------------
via: http://xmodulo.com/edit-documents-collaboratively-linux.html
作者:[Tatiana Kochedykova][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/tatiana
[1]:http://www.onlyoffice.org/
[2]:http://xmodulo.com/recommend/dockerbook
[3]:http://xmodulo.com/manage-linux-containers-docker-ubuntu.html
[4]:http://xmodulo.com/docker-containers-centos-fedora.html
[5]:https://registry.hub.docker.com/u/onlyoffice/communityserver/
[6]:http://onlyoffice.org/sources#document
[7]:https://itunes.apple.com/us/app/onlyoffice-documents/id944896972
[8]:https://personal.onlyoffice.com/

View File

@ -0,0 +1,70 @@
在 Ubuntu 中给你的照片加上 Instagram 风格的滤镜程序
================================================================================
拿起你的自拍杆跟我来。
### XnRetro 照片编辑器 ###
**XnRetro** 是一个可以让你快速给你照片添加“类 Instagram”效果的程序。
你肯定知道我说的这些效果:划痕、噪点、相框、过度处理、复古和怀旧色调(因为在这个数字过客的时代,我们一定知道无穷无尽的自拍永远也找不回怀旧的自己。)
无论你认为这些效果是愚蠢的艺术还是创作的捷径,这些滤镜非常流行,可以帮助那些平实无奇的照片添加个性。
![](http://www.omgubuntu.co.uk/wp-content/uploads/2015/05/instagram-app.jpg)
*XnRetro是一个照片编辑应用*
#### XnRetro的功能 ####
**XnRetro 有下面那些功能**
- 20 种色彩滤镜
- 15 种光影效果(虚化、泄露等等)
- 28 种画框和边线
- 5 种插图 (带力度控制)
- 对比度、伽马校正、饱和度等图像调整
- 矩形修剪选项
![](http://www.omgubuntu.co.uk/wp-content/uploads/2015/05/Screen-Shot-2015-05-10-at-23.30.01-e1431297068833.png)
*灯光效果调整*
(理论上)你可以保存编辑过的 .jpg 或者 .png 文件,并且直接在 app 中分享到社交媒体上。
我说“理论上”的意思是保存.jpg图像无法正常在 linux 版的程序上工作(你可以保存 .png 的图像)。相似问题还有,大多数内置的社交链接失效或者无法导出。
要使用**15 种光影效果**,你需要在 XnRetro 的light文件夹下将 .jpg 文件重新保存成 .png 文件。编辑light.xml来匹配新的文件名点击保存那么灯光效果就可以没有问题的加载进 XnRetro 了。
**XnRetro 值得安装么?**
XnRetro 并不是完美的。它看上去很老土、很难正确的安装,**并且已经几年没有更新了**。
但它还可以使用,除了保存 .jpg 文件外。同时也是那些像 Gimp 或者 Shotwell 的那些‘正规’的图片调整工具的一个灵活替代品。
虽然像 [Pixlr Touch Up][1] 和 [Polarr][2] 这样的 web 应用和 Chrome Apps 也提供相似的功能,但你也许正在寻找真正原生的解决方案。
习惯了 XnRetro 就很难离开它。
### 下载 Ubuntu 下的 XnRetro ###
XnRetro 没有可用的 .deb 安装包。它以二进制文件的形式发行这意味着你需要每次双击程序来运行。它也只有32位的版本。
你可以使用下面的 XnRetro下载链接。下载完成后你需要解压压缩包并进入。双击里面的xnretro程序。
- [下载 Linux 版 XnRetro (32位, tar.gz)][3]
--------------------------------------------------------------------------------
via: http://www.omgubuntu.co.uk/2015/05/instagram-photo-filters-ubuntu-desktop-app
作者:[Joey-Elijah Sneddon][a]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://plus.google.com/117485690627814051450/?rel=author
[1]:http://www.omgchrome.com/?s=pixlr
[2]:http://www.omgchrome.com/the-best-chrome-apps-of-2014/
[3]:http://www.xnview.com/en/xnretro/#downloads

View File

@ -0,0 +1,172 @@
12 个全球认可的 Linux 认证
================================================================================
大家好今天我们将会认识一些非常有价值的全球认可的Linux认证。Linux认证是不同的Linux专业机构在全球范围内进行的认证程序。Linux认证可以让Linux专业人才可以在服务器领域或者相关公司等等这些地方更容易获得Linux相关的工作。Linux认证评估一个人在Linux的各个领域里的专业程度。有很多不错的Linux专业机构提供不同的Linux认证。但是在公司谋取一份工作时全球仅有少数被非常认可的Linux认证含金量很高这些工作包括管理服务器虚拟化安装系统与软件配置程序应用支持和其他Linux操作系统相关的东西。随着全球使用Linux操作系统的服务器的增长拉动了对于Linux专业人才的需求。为了更好的证明Linux专业技术水平在全球看来更好的、著名的认证总是有着更高的优先级。
这里是一些全球认可的Linux认证我们接下来将会一一谈到。
### 1. CompTIA Linxu+ ###
CompTIA Linux+ 是LPILinux Professional InstituteLinux专业委员会主办的一个Linux认证在全世界范围内提供培训。其提供的Linux相关知识可以用于从事一大批Linux相关专业的工作如Linux管理员、高级网络管理员、系统管理员、Linux数据库管理员和Web管理员。如果任何人想从事安装和维护Linux操作系统该课程会帮助他达到认证要求并且通过提供对Linux系统更宽阔的认识能够为通过考试做好准备。LPI的CompTIA Linux+认证的主要目的就是提供给证书持有者足够扎实的关于安装软件、操作、管理和设备排障的知识。我们可以付出一定的费用、时间和努力完成CompTIA Linux+,同时获得三个业内认可的证书:**LPI LPIC-1**和**SUSE Certified Linux Administrator CLA**证书。
- **认证代码** : LX0-103LX0-1042015年3月30日启动或者LX0-101LX0-102
- 题目数量每次考试60道题
- 题目类型:多选
- 考试时长90分钟
- 要求A+Network+并且有至少12个月的Linux管理经验
- 分数线500 对于200-800的范围来说
- 语言:英语,将来会有德语,葡萄牙语,繁体中文,西班牙。
- 有效期:认证后三年有效
**注意**不同系列的考试不能合并。如果你考的是LX0-101那么你必须考LX0-102完成认证。同样的LX0-103和LX0-104又是一个系列。LX0-103和LX0-104系列是LX0-101和LX0-102系列的升级版。
### 2. LPIC ###
LPIC全称Linux专业委员会认证 Linux Professional Institute Certification是Linux专业委员会的一个Linux认证程序。这是一个多级别的认证程序要求在每个级别通过一系列通常是两个的认证考试。该认证有三个级别包括初级水平认证 **LPIC-1** ,高级水平认证 **LPIC-2**和最高水平认证 **LPIC-3**。前两个认证侧重于 **Linux系统管理**,而最后一个认证侧重一些专业技能,包括虚拟化和安全。为了得到 **LPIC-3** 认证,一个持有有效的 **LPIC-1** 与**LPIC-2** 认证的考生必须通过300复杂环境测试、303安全测试、304虚拟化测试和高可用性测试中的一个。**LPIC-1**认证按照证书持有者可以通过运行Linux使用命令行界面和基本的网络知识安装维护配置等任务而设计LPIC-2测试考生是否作为管理中小型混合网络的候选人。LPIC-3认证是为企业级Linux专业技能设计所设计代表了最高的专业水平和不针对特定 Linux 发行版的行业认证。
- **认证代码**LPIC-1101和102LPIC-2201和202和LPIC-3300303或者304
- 题目类型60个多项选择
- 考试时长90分钟
- 要求:无,建议有 Linux Essentials 认证
- 分数线500在200-800的范围内
- 语言LPIC-1英语德语意大利语葡萄牙语西班牙语现代汉语简体汉语繁体日语
- LPIC-2英语德语葡萄牙语日语
- LPIC-3英语日语
- 有效期:退休之后五年内仍然有效
### 3.Oracle Linux OCA ###
Oracle联合认证OCA为个人而定制适用于那些想证明其部署和管理Oracle Linux操作系统的知识牢固的人。该认证专业知识仅仅针对Oracle Linux发行版这个系统完全是为Oracle产品特别剪裁的可以运行Oracle设计的系统包括Oracle Exadata数据库服务器Oracle Exalytics In-Memory 服务器Oracle Exalogic 均衡云和Oracle数据库应用等。Oracle Linux的“坚不可摧企业内核”为企业应用带来了高性能、高扩展性和稳定性。OCA认证覆盖了如管理本地磁盘设备、管理文件系统、安装和移除Solaris包与补丁优化系统启动过程和系统进程。这是拿到OCP证书系列的第一步。OCA认证以其前身为Sun Certified Solaris AssociateSCSAS而为人所知。
- **认证代码**OCA
- 题目类型75道多项选择
- 考试时长120分钟
- 要求:无
- 分数线64%
- 有效期:永远有效
### 4. Oracle Linux OCP ###
Oracle专业认证(OCP)是Oracle公司为Oracle Linux提供的一个认证覆盖更多的进阶知识和技能对于一个Oracle Linux管理员来说。它囊括的知识有配置网络接口、管理交换分区配置、崩溃转储、管理软件、数据库和重要文件。OCP认证是技术性专业知识和专业技能的基准测试这些知识与技能需要在公司里广泛用于开发、部署和管理应用、中间件和数据库。Oracle Linux OCP的工作机会在增长这得益于工作市场和经济发展。根据考试纲领证书持有者有能力胜任安全管理、为Oracle 数据库准备Oracle Linux系统、排除故障和进行恢复操作、安装软件包、安装和配置内核模块、维护交换空间、完成用户和组管理、创建文件系统、配置逻辑卷管理LVM、文件分享服务等等。
- **认证代码**OCP
- 题目类型60至80道多项选择题
- 考试时长120分钟
- 要求Oracle Linux OCA
- 分数线64%
- 有效期:永远有效
### 5. RHCSA ###
RHCSA是红帽公司作为红帽认证系统工程师推出的一个认证程序。RHCSA们是指一些拥有在著名的红帽Linux环境下完成核心系统管理技能和能力的人。这是一个入门级的认证程序关注在系统管理上的实际胜任能力包括安装、配置一个红帽Linux系统接入一个可用的网络提供网络服务。一个红帽认证的系统管理员可以理解和使用基本的工具用以处理文件、目录、命令行环境和文档操作运行中的系统包括以不同的启动级别启动、识别进程、开启和停止虚拟机和控制服务使用分区和逻辑卷配置本地存储创建和配置文件系统和文件系统属性包括权限、加密、访问控制列表和网络文件系统部署配置和维护系统包括软件安装、更新和核心服务管理用户和组包括使用一个中心的目录用于验证安全性的工作包括基本的基本防火墙和SELinux配置。要获得RHCE和其他认证首先得认证过RHCSA。
- **认证代码**RHCSA
- 课程代码RH124RH134和RH199
- 考试代码EX200
- 考试时长21-22小时取决于选择的课程
- 要求无。有一些Linux基础知识更好
- 分数线300总分210过70%
- 有效期3年
### 6. RHCE ###
RHCE也叫做红帽认证工程师是一个中到高级水平的认证程序为一些想要学习更多技能和知识成为一个负责红帽企业Linux的高级系统管理员的RHCSA开设的RHCE应该有能力、知识和技能来配置静态路由、包过滤、NAT、设定内核运行参数、配置一个ISCSI初始化程序生成并发送系统用量报告、使用shell脚本自动完成系统维护任务、配置系统日志包括远程日志、提供网络服务如HTTP/HTTPS、FTP、NFS、SMB、SMTP、SSH和NTP等等。推荐希望获得更多高级水平的认证的RHCSA们、已经完成系统管理员III和III、或者已经完成RHCE 快速跟进培训的人们参加认证。
- **认证代码**RHCE
- 课程代码RH124RH134RH254和RH199
- 考试代码EX200和EX300
- 考试时长21-22个小时取决于所选课程
- 要求一个RHCSA证书
- 分数线300总分210过70%
- 有效期3年
### 7. RHCA ###
RHCA即红帽认证架构师是红帽公司的一个认证程序。它的关注点在系统管理的实际能力包括安装和配置一个红帽Linux系统并加入到一个可用网络中运行网络服务。RHCA是所有红帽认证中最高水平的认证。考生需要选择他们希望针对的领域或者选择合格的红帽认证的任意组合来创建一个他们自己的领域。这里有三个主要的领域数据中心、云和应用平台。精通数据中心领域的RHCA能够运行、管理数据中心而熟悉云的可以创建、配置和管理私有云和混合云、云应用平台以及使用红帽企业Linux平台的灵活存储方案精通应用平台集合的RHCA拥有技能如安装、配置和管理红帽JBoss企业应用平台和应用云应用平台和混合云环境借助红帽的OpenShift企业版使用红帽JBoss数据虚拟化技术从多个资源里组合数据。
- **认证代码**RHCA
- 课程代码CL210CL220.CL280RH236RH318RH413RH436RH442JB248和JB450
- 考试代码EX333EX401EX423或者EX318EX436和EX442
- 考试时长21-22个小时取决于所选课程
- 要求未过期的RHCE证书
- 分数线300总分210过70%
- 有效期3年
### 8. SUSE CLA ###
SUSE认证Linux管理员SUSE CLA是SUSE推出的一个初级认证关注点在SUSE Linux企业服务器环境下的日常任务管理。为了获得SUSE CLA认证不用必须完成课程任务只需要通过考试就能获得认证。SUSE CLA们能够、也有技术去使用Linux桌面、定位并利用帮助资源、管理Linux文件系统、用Linux Shell和命令行工作、安装SLE 11 SP22、管理系统安装、硬件、备份和恢复、用YaST管理Linux、Linux进程和服务、存储、配置网络、远程接入、SLE 11 SP2监控任务自动化和管理用户访问和安全工作。我们可以同时获得SUSE CLALPIC-1和CompTIA Linux认证因为SUSELinux Professional Institute和CompATI合作提供了这个同时获得三个Linux认证的机会。
- **认证代码**SUSE CLA
- 课程代码31153116
- 考试代码050-720050-710
- 问题类型:多项选择
- 考试时长90分钟
- 要求:无
- 分数线512
### 9. SUSE CLP ###
SUSE认证Linux专业人员CLP是一个认证程序为那些希望获得关于SUSE Linux企业服务器更多高级且专业的知识的人而服务。SUSE CLP是通过SUSE CLA认证后的下一步。应该通过CLA的考试并拥有证书然后通过完成CLP的考试才能获得CLP的认证。通过SUSE CLP认证的人员有能力完成安装和配置SLES 11系统、维护文件系统、管理软件包、进程、打印、配置基础网络服务、samba、Web服务器、使用IPv6、创建和运行bash shell脚本。
- **认证代码**SUSE CLP
- 课程代码31153116和3117
- 考试代码050-721050-697
- 考试类型:手写
- 考试时长180分钟
- 要求SUSE CLA 认证
### 10. SUSE CLE ###
SUSE认证Linux工程师(CLE)是一个工程师级别的高级认证为那些已经通过CLE考试的人准备。为了获得CLE认证人们需要已经获得SUSE CLA和CLP的认证。获得CLE认证的人员拥有架设复杂SUSE Linux企业服务器环境的技能。CLE认证过的人可以配置基本的网络服务、管理打印、配置和使用Open LDAP、samba、IPv6、完成服务器健康检测和性能调优、创建和执行shell脚本、部署SUSE Linux企业板、通过Xen实现虚拟化等等。
- **认证代码**SUSE CLE
- 课程代码3107
- 考试代码050-723
- 考试类型:手写
- 考试时长120分钟
- 要求SUSE CLP 10或者11证书
### 11. LFCS ###
Linux基金会认证系统管理员LFCS认证考生使用Linux和通过终端环境使用Linux的知识。LFCS是Linux基金会的一个认证程序为使用Linux操作系统工作的系统管理员和工程师准备。Linux基金会联合业内专家、Linux内核社区测试考生的核心领域、关键技能、知识和应用能力。通过LFCS认证的人员拥有一些技能、知识和能力包括在命令行下编辑和操作文件、管理和处理文件系统与存储的错误、聚合分区作为LVM设备、配置交换分区、管理网络文件系统、管理用户帐号/权限和属组、创建并执行bash shell脚本、安装/升级/移除软件包等等。
- **认证代码**LFCS
- 课程代码LFCS201LFCS220可选
- 考试代码LFCS 考试
- 考试时长2小时
- 要求:无
- 分数线74%
- 语言:英语
- 有效期:两年
### 12. LFCE ###
Linux基金会认证工程师LFCE是Linux基金会为Linux工程师推出的认证。相比于LFCS通过LFCE认证的人员在Linux方面拥有更大范围的技能。这是一个工程师级别的高级认证程序。LFCE认证的人具备一些网络管理方面的技能和能力如配置网络服务、配置包过滤、监控网络性能、IP流量、配置文件系统和文件服务、网络文件系统、从仓库安装/升级软件包、管理网络安全、配置iptables、http服务、代理服务、邮件服务等等。由于其为高级工程级别的认证程序所以普遍认为相比LFCS学习和通过的难度更大些。
- **认证代码**LFCE
- 课程代码LFS230
- 考试代码LFCE 考试
- 考试时长2小时
- 要求认证过LFCS
- 分数线72%
- 语言:英语
- 有效期2年
### 我们发现的情况(这仅仅是我们的观点)###
最近的调查表明在不同的高端招聘代理中称80%的Linux工作描述更倾向于红帽的认证。如果你是一个学生/新手并且想学习Linux那么我们建议选择越来越流行的Linux基金会认证或者CompTIA Linux也可以是一个选择。如果你已经了解了oracle或suse或者在他们的产品上工作那oracle/suse的认证会更好些如果你在公司里工作了这些认证会对你的职业生涯成长有帮助:-)
### 总结 ###
在这个世界上成千上万的大公司正在运行跑着Linux操作系统的服务器和主框架机为了在这些服务器上管理、配置和工作总是存在着对Linux技术/专业知识高度认证的需求。这些国际上承认的认证对某些人在Linux的职业生涯扮演很重要的角色。这些遍布全球的公司运行着Linux需要Linux工程师、系统管理员和已经获得认证且在Linux相关领域干得不错的人员。全球认可的Linux认证对于专业知识和职业生涯的辉煌都是重中之重所以好好准备考试并获得认证对于在Linux建立职业生涯是一个很好的选择。如果你有任何问题想法反馈请写在下方的评论框里让我们好知道哪些东西需要添加或者改进。谢谢:-)
--------------------------------------------------------------------------------
via: http://linoxide.com/linux-how-to/12-globally-recognized-linux-certifications/
作者:[Arun Pyasi][a]
译者:[wi-cuckoo](https://github.com/wi-cuckoo)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://linoxide.com/author/arunp/

View File

@ -0,0 +1,77 @@
在Ubuntu中安装Unity 8桌面预览版
================================================================================
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/06/Unity_8.jpeg)
如果你一直关注新闻那么就知道Ubuntu将会切换到带有[Unity 8][2]桌面的[Mir显示服务器][1]。然而,在尚未确定运行在 Mir 上的Unity 8是否会出现在[Ubuntu 15.10 Willy Werewolf][3]之前有了一个Unity 8的预览版本可供你体验和测试。通过官方PPA可以很容易地**安装Unity 8到Ubuntu 14.04,14.10和15.04中**。
到目前为止,开发者已经可以通过[ISO][4]主要途径获得该Unity 8预览来进行测试。不过Canonical也通过[LXC容器][5]发布了它。通过该方法你可以使用Unity 8桌面会话让它像其它桌面环境一样运行在Mir显示服务器上。就像你[在Ubuntu中安装Mate桌面][6]然后从LightDm登录屏幕选择桌面会话一样。
想要试试Unity 8让我们来看怎样安装它吧。
**注意: 它是一个实验性预览,可能不是所有人都可以让它正确工作的。**
### 安装Unity 8桌面到Ubuntu ###
下面是安装并使用Unity 8的步骤
#### 步骤 1 安装Unity 8到Ubuntu 12.04和14.04 ####
如果你正运行着Ubuntu 12.04和14.04那么你必须使用官方PPA来安装Unity 8。使用以下命令进行安装
sudo apt-add-repository ppa:unity8-desktop-session-team/unity8-preview-lxc
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install unity8-lxc
#### 步骤 1 安装Unity 8到Ubuntu 14.10和15.04 ####
如果你正运行着Ubuntu 14.10或15.04那么Unity 8 LXC已经在源中准备好。你只需要运行以下命令
sudo apt-get update
sudo apt-get install unity8-lxc
#### 步骤 2 设置Unity 8桌面预览LXC ####
安装Unity 8 LXC后该对它进行设置下面的命令就可达到目的
sudo unity8-lxc-setup
它将花费一些时间来设置所以耐心点。它会下载ISO然后解压缩接着完成最后一些必要的设置来让它工作。它也会安装一个LightDM的轻度修改版本。这一切都搞定后需要重启。
#### 步骤 3 选择Unity 8 ####
重启后在登录屏幕点击你的登录旁边的Ubuntu图标
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/08/Change_Desktop_Environment_Ubuntu.jpeg)
你应该可以在这看到Unity 8的选项选择它
![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2015/06/Select_Unity8.jpeg)
### 卸载Unity 8 LXC ###
如果你发现Unity 8毛病太多或者你不喜欢它那么你可以以相同的方式切换回默认Unity版本。此外你也可以通过下面的命令移除Unity 8
sudo apt-get remove unity8-lxc
该命令会将Unity 8选项从LightDM屏幕移除但是配置仍然保留着。
以上就是你在Ubuntu中安装带有Mir的Unity 8的全部过程试玩后请分享你关于Unity 8的想法哦
--------------------------------------------------------------------------------
via: http://itsfoss.com/install-unity-8-desktop-ubuntu/
作者:[Abhishek][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://itsfoss.com/author/abhishek/
[1]:http://en.wikipedia.org/wiki/Mir_%28software%29
[2]:https://wiki.ubuntu.com/Unity8Desktop
[3]:http://itsfoss.com/ubuntu-15-10-codename/
[4]:https://wiki.ubuntu.com/Unity8DesktopIso
[5]:https://wiki.ubuntu.com/Unity8inLXC
[6]:http://itsfoss.com/install-mate-desktop-ubuntu-14-04/

View File

@ -0,0 +1,285 @@
15 个有用的 MySQL/MariaDB 性能调整和优化技巧
================================================================================
MySQL 是一个强大的开源关系数据库管理系统(简称 RDBMS。它发布于 1995 年20年前。它采用结构化查询语言SQL这可能是数据库内容管理中最流行的选择。最新的 MySQL 版本是 5.6.25,于 2015 年 5 月 29 日发布。
关于 MySQL 一个有趣的事实是它的名字来自于 Michael WideniusMySQL 的创始人)的女儿“ My”。尽管有许多关于 MySQL 有趣的传闻,不过本文主要是向你展示一些有用的实践,以帮助你管理你的 MySQL 服务器。
![MySQL 性能优化](http://www.tecmint.com/wp-content/uploads/2015/06/MySQL-Performance-Tuning1.png)
*MySQL 性能优化*
2009 年 4 月MySQL 被 Oracle 收购。其结果是MySQL 社区分裂,创建了一个叫 MariaDB 的分支 。创建该分支的主要原因是为了保持这个项目可以在 GPL 下的自由。
今天MySQL 和 MariaDB 是用于类似 WordPress、Joomla、Magento 和其他 web 应用程序的最流行的 RDMS 之一(如果不是最多的)。
这篇文章将告诉你一些基本的,但非常有用的关于如何优化 MySQL/MariaDB 性能的技巧。注意,本文假定您已经安装了 MySQL 或 MariaDB。如果你仍然不知道如何在系统上安装它们你可以按照以下说明去安装
- [在 RHEL/CentOS 7 上安装 LAMP][1]
- [在 Fedora 22 上安装 LAMP][2]
- [在 Ubuntu 15.04 安装 LAMP][3]
- [在 Debian 8 上安装 MariaDB][4]
- [在 Gentoo Linux 上安装 MariaDB][5]
- [在 Arch Linux 上安装 MariaDB][6]
**重要提示** 在开始之前,不要盲目的接受这些建议。每个 MySQL 设置都是不同的,在进行任何更改之前需要慎重考虑。
你需要明白这些:
- MySQL/MariaDB 配置文件位于 `/etc/my.cnf`。 每次更改此文件后你需要重启 MySQL 服务,以使更改生效。
- 这篇文章使用 MySQL 5.6 版本。
### 1. 启用 InnoDB 的每张表一个数据文件设置 ###
首先,有一个重要的解释, InnoDB 是一个存储引擎。MySQL 和 MariaDB 使用 InnoDB 作为默认存储引擎。以前MySQL 使用系统表空间来保存数据库中的表和索引。这意味着服务器唯一的目的就是数据库处理,它们的存储盘不用于其它目的。
InnoDB 提供了更灵活的方式,它把每个数据库的信息保存在一个 `.ibd` 数据文件中。每个 .idb 文件代表它自己的表空间。通过这样的方式可以更快地完成类似 “TRUNCATE” 的数据库操作,当删除或截断一个数据库表时,你也可以回收未使用的空间。
这样配置的另一个好处是你可以将某些数据库表放在一个单独的存储设备。这可以大大提升你磁盘的 I/O 负载。
MySQL 5.6及以上的版本默认启用 `innodb_file_per_table`。你可以在 /etc/my.cnf 文件中看到。该指令看起来是这样的:
innodb_file_per_table=1
### 2. 将 MySQL 数据库数据存储到独立分区上 ###
**注意**:此设置只在 MySQL 上有效, 在 MariaDB 上无效。
有时候操作系统的读/写会降低你 MySQL 服务器的性能,尤其是如果操作系统和数据库的数据位于同一块磁盘上。因此,我建议你使用单独的磁盘(最好是 SSD用于 MySQL 服务。
要完成这步,你需要将新的磁盘连接到你的计算机/服务器上。对于这篇文章,我假定磁盘挂在到 /dev/sdb。
####下一步是准备新的分区:
# fdisk /dev/sdb
现在按 “N” 来创建新的分区。接着按 “P”使其创建为主分区。在此之后从 1-4 设置分区号。之后,你可以选择分区大小。这里按 enter。在下一步你需要配置分区的大小。
如果你希望使用全部的磁盘,再按一次 enter。否则你可以手动设置新分区的大小。准备就绪后按 “w” 保存更改。现在,我们需要为我们的新分区创建一个文件系统。这可以用下面命令轻松地完成:
# mkfs.ext4 /dev/sdb1
现在我们会挂载新分区到一个目录。我在根目录下创建了一个名为 “ssd” 的目录:
# mkdir /ssd/
挂载新分区到刚才创建的目录下:
# mount /dev/sdb1 /ssd/
你可以在 /etc/fstab 文件中添加如下行设置为开机自动挂载:
/dev/sdb1 /ssd ext3 defaults 0 0
####现在我们将 MySQL 移动到新磁盘中
首先停止 MySQL 服务:
# service mysqld stop
我建议你​​同时停止 Apache/nginx以防止任何试图写入数据库的操作
# service httpd stop
# service nginx stop
现在复制整个 MySQL 目录到新分区中:
# cp /var/lib/mysql /ssd/ -Rp
这可能需要一段时间,具体取决于你的 MySQL 数据库的大小。一旦这个过程完成后重命名 MySQL 目录:
# mv /var/lib/mysql /var/lib/mysql-backup
然后创建一个符号链接:
# ln -s /ssd/mysql /var/lib/mysql
现在启动你的 MySQL 和 web 服务:
# service mysqld start
# service httpd start
# service nginx start
以后你的数据库将使用新的磁盘访问。
### 3. 优化使用 InnoDB 的缓冲池 ###
InnoDB 引擎在内存中有一个缓冲池用于缓存数据和索引。这当然有助于你更快地执行 MySQL/MariaDB 查询语句。选择合适的内存大小需要一些重要的决策并对系统的内存消耗有较多的认识。
下面是你需要考虑的:
- 其它的进程需要消耗多少内存。这包括你的系统进程,页表,套接字缓冲。
- 你的服务器是否专门用于 MySQL 还是你运行着其它非常消耗内存的服务。
在一个专用的机器上,你可能会把 60-70 的内存分配给 `innodb_buffer_pool_size`。如果你打算在一个机器上运行更多的服务,你应该重新考虑专门用于 `innodb_buffer_pool_size` 的内存大小。
你需要设置 my.cnf 中的此项:
innodb_buffer_pool_size
### 4. 在 MySQL 中避免使用 Swappiness ###
“交换”是一个当系统移动部分内存到一个称为 “交换空间” 的特殊磁盘空间时的过程。通常当你的系统用完物理内存后就会出现这种情况,系统将信息写入磁盘而不是释放一些内存。正如你猜测的磁盘比你的内存要慢得多。
该选项默认情况下是启用的:
# sysctl vm.swappiness
vm.swappiness = 60
运行以下命令关闭 swappiness
# sysctl -w vm.swappiness=0
### 5. 设置 MySQL 的最大连接数 ###
`max_connections` 指令告诉你当前你的服务器允许多少并发连接。MySQL/MariaDB 服务器允许有 SUPER 权限的用户在最大连接之外再建立一个连接。只有当执行 MySQL 请求的时候才会建立连接,执行完成后会关闭连接并被新的连接取代。
请记住,太多的连接会导致内存的使用量过高并且会锁住你的 MySQL 服务器。一般小网站需要 100-200 的连接数,而较大可能需要 500-800 甚至更多。这里的值很大程度上取决于你 MySQL/MariaDB 的使用情况。
你可以动态地改变 `max_connections` 的值而无需重启MySQL服务器
# mysql -u root -p
mysql> set global max_connections = 300;
### 6. 配置 MySQL 的线程缓存数量 ###
`thread_cache_size` 指令用来设置你服务器缓存的线程数量。当客户端断开连接时,如果当前线程数小于 `thread_cache_size`,它的线程将被放入缓存中。下一个请求通过使用缓存池中的线程来完成。
要提高服务器的性能,你可以设置 `thread_cache_size` 的值相对高一些。你可以通过以下方法来查看线程缓存命中率:
mysql> show status like 'Threads_created';
mysql> show status like 'Connections';
你可以用以下公式来计算线程池的命中率:
100 - ((Threads_created / Connections) * 100)
如果你得到一个较低的数字,这意味着大多数 mysql 连接使用新的线程,而不是从缓存加载。在这种情况下,你需要增加 `thread_cache_size`
这里有一个好处是可以动态地改变 `thread_cache_size` 而无需重启 MySQL 服务。你可以通过以下方式来实现:
mysql> set global thread_cache_size = 16;
### 7. 禁用 MySQL 的 DNS 反向查询 ###
默认情况下当新的连接出现时MySQL/MariaDB 会进行 DNS 查询解析用户的 IP 地址/主机名。对于每个客户端连接,它的 IP 都会被解析为主机名。然后,主机名又被反解析为 IP 来验证两者是否一致。
当 DNS 配置错误或服务器出现问题时,这很可能会导致延迟。这就是为什么要关闭 DNS 的反向查询的原因,你可以在你的配置文件中添加以下选项去设定:
[mysqld]
# Skip reverse DNS lookup of clients
skip-name-resolve
更改后你需要重启 MySQL 服务。
### 8. 配置 MySQL 的查询缓存容量 ###
如果你有很多重复的查询并且数据不经常改变 请使用缓存查询。 人们常常不理解 `query_cache_size` 的实际含义而将此值设置为 GB 级,这实际上会降低服务器的性能。
背后的原因是,在更新过程中线程需要锁定缓存。通常设置为 200-300 MB应该足够了。如果你的网站比较小的你可以尝试给 64M 并在以后及时去增加。
在你的 MySQL 配置文件中添加以下设置:
query_cache_type = 1
query_cache_limit = 256K
query_cache_min_res_unit = 2k
query_cache_size = 80M
### 9. 配置临时表容量和内存表最大容量 ###
`tmp_table_size``max_heap_table_size` 这两个变量的大小应该相同,它们可以让你避免磁盘写入。`tmp_table_size` 是内置内存表的最大空间。如果表的大小超出限值将会被转换为磁盘上的 MyISAM 表。
这会影响数据库的性能。管理员通常建议在服务器上设置这两个值为每 GB 内存给 64M。
[mysqld]
tmp_table_size= 64M
max_heap_table_size= 64M
### 10. 启用 MySQL 慢查询日志 ###
记录慢查询可以帮助你定位数据库中的问题并帮助你调试。这可以通过在你的 MySQL 配置文件中添加以下值来启用:
slow-query-log = 1
slow-query-log-file = /var/lib/mysql/mysql-slow.log
long_query_time = 1
第一个变量启用慢查询日志,第二个告诉 MySQL 实际的日志文件存储位置。使用 `long_query_time` 来定义完成 MySQL 查询多少用时算长。
### 11. 检查 MySQL 的空闲连接 ###
空闲连接会消耗资源,可以的话应该被终止或者刷新。空闲连接是指处于 “sleep” 状态并且保持了很长一段时间的连接。你可以通过运行以下命令查看空闲连接:
# mysqladmin processlist -u root -p | grep “Sleep”
这会显示处于睡眠状态的进程列表。当代码使用持久连接到数据库时会出现这种情况。使用 PHP 调用 mysql_pconnect 可以打开这个连接,执行完查询之后,删除认证信息并保持连接为打开状态。这会导致每个线程的缓冲都被保存在内存中,直到该线程结束。
首先你要做的就是检查代码问题并修复它。如果你不能访问正在运行的代码,你可以修改 `wait_timeout` 变量。默认值是 28800 秒,而你可以安全地将其降低到 60
wait_timeout=60
### 12. 为 MySQL 选择正确的文件系统 ###
选择正确的文件系统对数据库至关重要。在这里你需要考虑的最重要的事情是 - 数据的完整性,性能和易管理性。
按照 MariaDB 的建议最好的文件系统是XFS、ext4 和 Btrfs。它们都是可以使用超大文件和大容量存储卷的企业级日志型文件系统。
下面你可以找到一些关于这三个文件系统的有用信息:
| 文件系统 | XFS | Ext4 | Btrfs |
|---------------|-----|------|-------|
| 文件系统最大容量 | 8EB | 1EB | 16EB |
| 最大文件大小 | 8EB | 16TB | 16EB |
我们的这篇文章详细介绍了 Linux 文件系统的利与弊: [Linux 文件系统解析][7]。
### 13. 设置 MySQL 允许的最大数据包 ###
MySQL 把数据拆分成包。通常一个包就是发送到客户端的一行数据。`max_allowed_packet` 变量定义了可以被发送的最大的包。
此值设置得过低可能会导致查询速度变得非常慢,然后你会在 MySQL 的错误日志看到一个错误。建议将该值设置为最大包的大小。
### 14. 测试 MySQL 的性能优化 ###
你应该定期检查 MySQL/MariaDB 的性能。这将帮助你了解资源的使用情况是否发生了改变或需要进行改进。
有大量的测试工具可用,但我推荐你一个简单易用的。该工具被称为 mysqltuner。
使用下面的命令下载并运行它:
# wget https://github.com/major/MySQLTuner-perl/tarball/master
# tar xf master
# cd major-MySQLTuner-perl-993bc18/
# ./mysqltuner.pl
你将收到有关 MySQL 使用的详细报告和推荐提示。下面是默认 MariaDB 安装的输出样例:
![MySQL 性能优化](http://www.tecmint.com/wp-content/uploads/2015/06/MySQL-Performance-Tuning.png)
### 15. 优化和修复 MySQL 数据库 ###
有时候 MySQL/MariaDB 数据库中的表很容易崩溃,尤其是服务器意外关机、文件系统突然崩溃或复制过程中仍然访问数据库。幸运的是,有一个称为 'mysqlcheck' 的免费开源工具,它会自动检查、修复和优化 Linux 中数据库的所有表。
# mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
# mysqlcheck -u root -p --auto-repair --check --optimize databasename
就是这些!我希望上述文章对你有用,并帮助你优化你的 MySQL 服务器。一如往常,如果你有任何疑问或评论,请在下面的评论部分提交。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/mysql-mariadb-performance-tuning-and-optimization/
作者:[Marin Todorov][a]
译者:[strugglingyouth](https://github.com/strugglingyouth)
校对:[ictlyh](https://github.com/ictlyh)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/marintodorov89/
[1]:http://www.tecmint.com/install-lamp-in-centos-7/
[2]:http://www.tecmint.com/install-lamp-linux-apache-mysql-php-on-fedora-22/
[3]:http://www.tecmint.com/install-lamp-on-ubuntu-15-04/
[4]:http://www.tecmint.com/install-mariadb-in-debian/
[5]:http://www.tecmint.com/install-lemp-in-gentoo-linux/
[6]:http://www.tecmint.com/install-lamp-in-arch-linux/
[7]:http://www.tecmint.com/linux-file-system-explained/

View File

@ -1,12 +1,12 @@
使用SNMP和Cacti监控Linux服务器
使用 SNMP Cacti 监控 Linux 服务器
================================================================================
SNMP或者叫简单网络管理协议用于收集设备内部发生的数据如负载、磁盘状态、带宽之类。像Cacti这样的网络监控工具用这些数据来生成图标以达到监控的目的。
SNMP简单网络管理协议用于收集设备内部发生的数据如负载、磁盘状态、带宽之类。像Cacti这样的网络监控工具用这些数据来生成图标以达到监控的目的。
在一个典型的Cacti和SNMP部署中会有一台或多台启用了SNMP的设备以及一台独立的用来从那些设备收集SNMP回馈的监控服务器。请记住所有需要监控的设备必须启用SNMP。在本教程中出于演示目的我们将在同一台Linux服务器上配置Cacti和SNMP。
### 在Debian或Ubuntu上配置SNMP ###
要安装SNMP代理snmpd到基于Debian的系统,请运行以下命令:
在基于Debian的系统上安装SNMP代理snmpd请运行以下命令
root@server:~# apt-get install snmpd
@ -16,10 +16,10 @@ SNMP或者叫简单网络管理协议用于收集设备内部发生的数
----------
# this will make snmpd listen on all interfaces
# 使snmpd 监听再所有接口上
agentAddress udp:161
# a read only community 'myCommunity' and the source network is defined
# 定义一个只读的 community 'myCommunity' 和源网络
rocommunity myCommunity 172.17.1.0/24
sysLocation Earth
@ -41,10 +41,10 @@ SNMP或者叫简单网络管理协议用于收集设备内部发生的数
----------
# A user 'myUser' is being defined with the community string 'myCommunity' and source network 172.17.1.0/24
# 定义一个使用 community 'myCommunity' 和源网络 172.17.1.0/24 的用户 'myUser'
com2sec myUser 172.17.1.0/24 myCommunity
# myUser is added into the group 'myGroup' and the permission of the group is defined
# 将 myUser 加到 'myGroup' 组,定义组权限
group myGroup v1 myUser
group myGroup v2c myUser
view all included .1
@ -69,7 +69,7 @@ SNMP可以通过运行snmpwalk命令进行测试。如果SNMP已经配置成功
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (2097) 0:00:20.97
~~ OUTPUT TRUNCATED ~~
~~ 输出截断 ~~
iso.3.6.1.2.1.92.1.1.2.0 = Gauge32: 1440
iso.3.6.1.2.1.92.1.2.1.0 = Counter32: 1
@ -79,9 +79,9 @@ SNMP可以通过运行snmpwalk命令进行测试。如果SNMP已经配置成功
### 配置带有SNMP的Cacti ###
在本教程中我们将在同一台Linux服务器上设置Cacti和SNMP。所以去[安装Cacti][2]到刚刚配置SNMP的Linux服务器上吧。
在本教程中我们将在同一台Linux服务器上设置Cacti和SNMP。所以到刚刚配置SNMP的Linux服务器上去[安装Cacti][2]吧。
安装完后Cacti网页接口可以通过“http://172.17.1.44/cacti”来访问当然在你的环境中请将IP地址换成你的服务器的地址。
安装完后Cacti网页界面可以通过“http://172.17.1.44/cacti ”来访问当然在你的环境中请将IP地址换成你的服务器的地址。
![](http://farm6.staticflickr.com/5512/10972747655_0298f6ce6c_z.jpg)
@ -99,7 +99,7 @@ SNMP可以通过运行snmpwalk命令进行测试。如果SNMP已经配置成功
Cacti将根据先前配置的SNMP字符串注册设备。在本教程中我们将只添加启用了SNMP的本地服务器。
要添加设备我们必须以管理员登录然后转到Cacti管理员面板中的控制台。点击控制台 > 设备。
要添加设备我们必须以管理员登录然后转到Cacti管理员面板中的控制台。点击 控制台 > 设备。
![](http://farm8.staticflickr.com/7411/10972747855_b464972e56_z.jpg)
@ -111,7 +111,7 @@ Cacti将根据先前配置的SNMP字符串注册设备。在本教程中
![](http://farm8.staticflickr.com/7400/10972747935_df03500de7_z.jpg)
由于设备已经添加,我们来指定想要创建的图表模板。你可以在该页的最后章节中找到本节内容。
现在设备已经添加,我们来指定想要创建的图表模板。你可以在该页面的最后部分中找到这块内容。
![](http://farm4.staticflickr.com/3773/10972747955_083101e6ab_z.jpg)
@ -123,7 +123,7 @@ Cacti将根据先前配置的SNMP字符串注册设备。在本教程中
![](http://farm8.staticflickr.com/7374/10972920484_ed6b33b8b8_z.jpg)
### 接口图表和64位计数器 ###
### 接口图表和64位计数器 ###
默认情况下Cacti在SNMP查询中使用32位计数器。32位计数器对于大多数带宽图表而言已经足够了但是对于超过100Mbps的带宽它就无能为力了。如果已经知道带宽会超过100Mbps建议你使用64位计数器。使用64位计数器一点也不麻烦。
@ -173,9 +173,9 @@ via: http://xmodulo.com/monitor-linux-servers-snmp-cacti.html
作者:[Sarmed Rahman][a]
译者:[GOLinux](https://github.com/GOLinux)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/sarmed
[1]:http://xmodulo.com/install-configure-cacti-linux.html
[1]:https://linux.cn/article-4683-1.html

View File

@ -1,12 +1,12 @@
如何用Nagios监控服务
如何用 Nagios 监控通用服务
================================================================================
Nagios内置了很多脚本来监控服务。本篇会使用其中一些来检查通用服务如MySql、Apache、DNS等等。
为了保证本篇集中在系统监控,我们不会配置hostgroup或者模板它们已经在 [前面的教程][1]中覆盖了,它们可以满足这些条件了。
为了保证本篇集中在系统监控,我们不会在这里配置主机组或者模板,它们已经在 [前面的教程][1]中覆盖了,它们可以满足需要了。
### 在命令行中运行Nagios ###
通常建议在添加到Nagios前在命令行中运行Nagios服务检测脚本。它会给出执行是否成功以及脚本的输出将会看上去的样子。
通常建议在添加到Nagios前,先在命令行中运行Nagios服务检测脚本。它会给出执行是否成功以及脚本的输出将会看上去的样子。
这些脚本存储在 /etc/nagios-plugins/config/ ,可执行文件在 /usr/lib/nagios/plugins/。
@ -39,9 +39,9 @@ Nagios内置了很多脚本来监控服务。本篇会使用其中一些来检
- Server 1 (10.10.10.1) : MySQL, Apache2
- Server 2 (10.10.10.2) : Postfix, Apache2
- Server 3 (10.10.10.3): DNS
- Server 3 (10.10.10.3) : DNS
首先服务器被定义在了Nagios中。
首先,这些服务器被定义在了Nagios中。
root@nagios:~# vim /etc/nagios3/conf.d/example.cfg
@ -79,43 +79,43 @@ Nagios内置了很多脚本来监控服务。本篇会使用其中一些来检
开始检测MySQL时需要记住MySQL默认只监听回环接口127.0.0.1。这增加了数据库的安全。手动调节需要告诉MySQL该监听什么其他接口。下面是该怎么做。
这个设置在所有的MySQL服务器上已经做了
这个设置要在所有的MySQL服务器上完成
root@nagios:~# vim /etc/mysql/my.cnf
下面这行被注释掉了来监听所有接口。
下面这行被注释掉以监听所有网络接口。
#bind-address = 127.0.0.1
同样MySQL将不会运行任何主机来连接到它。在本机和任意主机都创建了用户nagios。这个用户接着在所有的数据库中被授予所有的权限这将在会用在监控中。
同样MySQL也不会让任意主机来连接它。需要为localhost和“任意”主机创建MySQL用户nagios接着在所有的数据库中为这个用户授予ALL权限这将在会用在监控中。
下面的设置对所有的MySQL服务器都已经设置。
root@nagios:~# mysql -u root p
## MySQL root password here ##
## MySQL root 密码 ##
'nagios@localhost'用户在MySQL服务器中创建了
在MySQL服务器中创建'nagios@localhost'用户。
mysql> CREATE USER 'nagios'@'localhost' IDENTIFIED BY 'nagios-pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'localhost';
'nagios@any-host'用户创建了。
创建'nagios@任意主机'用户。LCTT 译注实际上这两个是同一个用户只是分别授权给localhost和任意主机的访问因为它们所用的密码的同一个修改任何一个另外一个也相应变化。
mysql> CREATE USER 'nagios'@'%' IDENTIFIED BY 'nagios-pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'%';
mysql> FLUSH PRIVILEGES;
这使MySQL监听所有的接口同样接受来自用户'nagios'的进入接。
这使MySQL监听所有的网络接口,同样接受来自用户'nagios'的进入接。
请注意,这种变化可能有安全隐患,所以需要说几句话
请注意,这种修改可能有安全隐患,所以需要提示几点
- 这个设置将会暴露MySQL给所有的接口包括WAN。确保只有合法的网络访问是非常重要的。应该使用防火墙和TCP封装器等过滤器。
- MySQL用户nagios的密码应该非常强。如果只有几台Nagios服务器,那么应该创建'nagios@servername'用户而不是任意用户的'nagios@%'。
- 这个设置将会暴露MySQL给所有的接口包括外网。确保只有合法的网络访问是非常重要的。应该使用防火墙和TCP wrapper等过滤器。
- MySQL用户nagios的密码应该非常强。如果只有几台Nagios服务器,那么应该创建'nagios@服务器名'用户而不是任意用户的'nagios@%'。
#### 对MySQL的NAgios配置 ####
#### 对MySQL的Nagios配置 ####
用下面的来做一些调整。
按如下配置来做一些调整。
root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
@ -140,7 +140,7 @@ Nagios内置了很多脚本来监控服务。本篇会使用其中一些来检
;check_mysql!userName!userPassword!databaseName
}
这样,Nagios就可以同时监控MySQL服务器和数据库的可用性。
这样Nagios就可以同时监控MySQL服务器及其数据库的可用性。
### 监控Apache服务器 ###
@ -148,7 +148,7 @@ Nagios同样也可以监控Apache服务。
#### Apache监控需要 ####
- 监控apache是否可用
- 监控apache服务是否可用
这个任务非常简单因为Nagios有一个内置命令。
@ -167,7 +167,7 @@ Nagios同样也可以监控Apache服务。
### 监控DNS服务 ###
Nagios通过向DNS服务器查询一个完全合格域名FQDN,或者使用dig工具来查询。默认用于FQDN的是www.google.com但是这个可以按需改变。按照下面的文件修改来完成这个任务。
Nagios通过向DNS服务器查询一个完全限定域名FQDN或者使用dig工具来查询。默认用于查询的FQDN的是www.google.com但是这个可以按需改变。按照下面的文件修改来完成这个任务。
root@nagios:~# vim /etc/nagios-plugins/config/dns.cfg
@ -203,8 +203,7 @@ Nagios通过向DNS服务器查询一个完全合格域名FQDN,或者使用
### 监控邮件服务器 ###
Nagios可以监控不同的邮件服务组件如SMTP、POP、IMAP和mailq。之前提过server-2设置了后缀邮件服务。Nagios将被配置来监控SMTP和邮件队列。
Nagios可以监控不同的邮件服务组件如SMTP、POP、IMAP和mailq。之前提过server-2设置了Postfix邮件服务。Nagios将被配置来监控SMTP和邮件队列。
root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
@ -231,11 +230,11 @@ Nagios可以监控不同的邮件服务组件如SMTP、POP、IMAP和mailq。之
### 基于端口自定义监控程序 ###
让我们假设下面的自定义程序同样运行在网络中,监听一个特定的端口。
让我们假设如下定制程序同样运行在网络中,监听着一个特定的端口。
- 测试1号服务器自定义程序TCP端口 12345
- 测试1号服务器定制程序TCP端口 12345
过一些小的调整Nagios也可以帮助监控这个程序。
做一些小的调整Nagios也可以帮助我们监控这个程序。
root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
@ -248,12 +247,11 @@ Nagios可以监控不同的邮件服务组件如SMTP、POP、IMAP和mailq。之
check_command check_tcp!12345
}
结之前Nagios可以监控网络很多其他的方面。存储在/etc/nagios-plugins/config/中的脚本为Nagios很棒的能力。
在结之前的提示Nagios可以监控网络很多其他的方面。存储在/etc/nagios-plugins/config/中的脚本为Nagios提供了很棒的能力。
一些Nagios提供的脚本被仅限于本地服务器比如服务器负载、进程并发数量、登录用户数量等。这些检查可以提供Nagios服务器内有用的信息。
一些Nagios提供的脚本被限制在本地服务器。例子包含服务负载、进程并发数量、登录用户数量。这些检查可以提供Nagios服务器内有用的信息。
希望这篇有用。
希望这篇文章对你有用。
--------------------------------------------------------------------------------
@ -261,9 +259,9 @@ via: http://xmodulo.com/monitor-common-services-nagios.html
作者:[Sarmed Rahman][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/sarmed
[1]:http://xmodulo.com/install-configure-nagios-linux.html
[1]:https://linux.cn/article-2436-1.html

View File

@ -1,6 +1,6 @@
如何用Perl访问SQLite数据库
================================================================================
SQLite是一个零配置,无服务端,基于文件的事务文件系统。由于它的轻量级自包含和紧凑的设计所以当你想要集成数据库到你的程序中时SQLite是一个非常流行的选择。在这篇文章中我会展示如何用Perl脚本来创建和访问SQLite数据库。我演示的Perl代码片段是完整的所以你可以很简单地修改并集成到你的项目中。
SQLite是一个零配置、无服务端、基于文件的事务型数据库系统。由于它的轻量级自包含和紧凑的设计所以当你想要集成数据库到你的程序中时SQLite是一个非常不错的选择。在这篇文章中我会展示如何用Perl脚本来创建和访问SQLite数据库。我演示的Perl代码片段是完整的所以你可以很简单地修改并集成到你的项目中。
![](https://farm1.staticflickr.com/552/18444614631_9e7fce8243_c.jpg)
@ -44,25 +44,27 @@ SQLite是一个零配置无服务端基于文件的事务文件系统。
- 在表中更新行
- 在表中删除行
-
use DBI;
use strict;
# define database name and driver
# 定义数据库名称和驱动
my $driver = "SQLite";
my $db_name = "xmodulo.db";
my $dbd = "DBI:$driver:dbname=$db_name";
# sqlite does not have a notion of username/password
# sqlite 没有用户名密码的概念
my $username = "";
my $password = "";
# create and connect to a database.
# this will create a file named xmodulo.db
# 创建并连接到数据库
# 以下创建的文件名为 xmodulo.db
my $dbh = DBI->connect($dbd, $username, $password, { RaiseError => 1 })
or die $DBI::errstr;
print STDERR "Database opened successfully\n";
# create a table
# 创建表
my $stmt = qq(CREATE TABLE IF NOT EXISTS NETWORK
(ID INTEGER PRIMARY KEY AUTOINCREMENT,
HOSTNAME TEXT NOT NULL,
@ -76,7 +78,7 @@ SQLite是一个零配置无服务端基于文件的事务文件系统。
print STDERR "Table created successfully\n";
}
# insert three rows into the table
# 插入三行到表中
$stmt = qq(INSERT INTO NETWORK (HOSTNAME,IPADDRESS,OS,CPULOAD)
VALUES ('xmodulo', 16843009, 'Ubuntu 14.10', 0.0));
$ret = $dbh->do($stmt) or die $DBI::errstr;
@ -89,7 +91,7 @@ SQLite是一个零配置无服务端基于文件的事务文件系统。
VALUES ('puppy', 16843011, 'Ubuntu 14.10', 0.0));
$ret = $dbh->do($stmt) or die $DBI::errstr;
# search and iterate row(s) in the table
# 在表中检索行
$stmt = qq(SELECT id, hostname, os, cpuload from NETWORK;);
my $obj = $dbh->prepare($stmt);
$ret = $obj->execute() or die $DBI::errstr;
@ -104,7 +106,7 @@ SQLite是一个零配置无服务端基于文件的事务文件系统。
print "CPULOAD: ". $row[3] ."\n\n";
}
# update specific row(s) in the table
# 更新表中的某行
$stmt = qq(UPDATE NETWORK set CPULOAD = 50 where OS='Ubuntu 14.10';);
$ret = $dbh->do($stmt) or die $DBI::errstr;
@ -114,7 +116,7 @@ SQLite是一个零配置无服务端基于文件的事务文件系统。
print STDERR "A total of $ret rows updated\n";
}
# delete specific row(s) from the table
# 从表中删除某行
$stmt = qq(DELETE from NETWORK where ID=2;);
$ret = $dbh->do($stmt) or die $DBI::errstr;
@ -124,7 +126,7 @@ SQLite是一个零配置无服务端基于文件的事务文件系统。
print STDERR "A total of $ret rows deleted\n";
}
# quit the database
# 断开数据库连接
$dbh->disconnect();
print STDERR "Exit the database\n";
@ -164,7 +166,7 @@ via: http://xmodulo.com/access-sqlite-database-perl.html
作者:[Dan Nanni][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,8 +1,8 @@
Linux 下如何处理包含空格和特殊字符的文件名
================================================================================
我们经常会看到文件名和文件夹名。大多数时候文件/文件夹的名字和内容相关并以数字和字母开头。字母-数字文件名最常见,应用也很广泛,但总会需要处理一些包含特殊字符的文件名/文件夹名。
我们经常会看到文件名和文件夹名。大多数时候文件/文件夹的名字和内容相关并以数字和字母开头。字母加数字的文件名最常见,应用也很广泛,但总会需要处理一些包含特殊字符的文件名/文件夹名。
** 注意 **:我们可能有各种类型的文件,但是为了简单以及方便实现,在本文中我们只处理文本文件(.txt
** 注意 **:我们可能有各种类型的文件,但是为了简单以及方便实现,在本文中我们只用文本文件(.txt做演示
最常见的文件名例子:
@ -38,9 +38,9 @@ Linux 下如何处理包含空格和特殊字符的文件名
--bk34.txt
...
一个显而易见的问题是 - 在这个星球上有谁会创建/处理包含井号`(#)`,分号`(;)`,破折号`(-)`或其他特殊字符的文件/文件夹啊。
一个显而易见的问题是 - 在这个星球上有谁会创建处理包含井号`(#)`,分号`(;)`,破折号`(-)`或其他特殊字符的文件/文件夹啊。
我和你想的一样,这种文件名确实不常见,不过在你必须得处理这种文件名的时候你的 shell 也不应该出错或罢工。而且技术上来说Linux 下的一切比如文件夹驱动器或其他所有的都被当作文件处理。
我和你想的一样,这种文件名确实不常见,不过在你必须得处理这种文件名的时候你的 shell 也不应该出错或罢工。而且技术上来说Linux 下的一切比如文件夹驱动器或其他所有的都被当作文件处理。
### 处理名字包含破折号(-)的文件 ###
@ -99,9 +99,9 @@ Linux 下如何处理包含空格和特殊字符的文件名
**重要:**
1. 上面讨论的规则可以同样应用于名字中包含任意数量以及位置连接符号的文件。就是说,-a-b-c.txtab-c.txtabc-.txt等等。
1. 上面讨论的规则可以同样应用于名字中包含任意数量以及任意位置连接符号的文件。就是说,-a-b-c.txtab-c.txtabc-.txt等等。
2. 上面讨论的规则可以同样应用于名字中包含任意数量以及位置连接符号的文件夹,除了一种情况,在删除一个文件夹的时候你得这样使用`rm -rf`
2. 上面讨论的规则可以同样应用于名字中包含任意数量以及任意位置连接符号的文件夹,除了一种情况,在删除一个文件夹的时候你得这样使用`rm -rf`
$ rm -rf -- -abc
或者
@ -124,7 +124,7 @@ Linux 下如何处理包含空格和特殊字符的文件名
出现上面错误的原因是BASH 将 #abc.txt 解释为评论而忽略了。所以[命令 touch][2]没有收到任何文件作为参数,所以导致这个错误。
要解决这个问题,你能需要告诉 BASH 不要将 # 解释为评论。
要解决这个问题,你能需要告诉 BASH 不要将 # 解释为评论。
$ touch ./#abc.txt
或者
@ -140,8 +140,7 @@ Linux 下如何处理包含空格和特殊字符的文件名
现在创建名字中除了开头的其他地方包含 # 的文件。
$ touch ./a#bc.txt
$ touch ./abc#.txt
$ touch ./abc#.txt
或者
$ touch 'a#bc.txt'
$ touch 'abc#.txt'
@ -197,8 +196,6 @@ Linux 下如何处理包含空格和特殊字符的文件名
或者
$ vi '#cd.txt'
----------
$ nano ./#cd.txt
或者
$ nano '#cd.txt'
@ -261,7 +258,7 @@ Linux 下如何处理包含空格和特殊字符的文件名
#### 文件名包含星号 (*) ####
名字包含星号的文件没有改变太多,你仍然可以把它当作一个普通文件。(注:星号在 shell 里有特殊意义,用作文件名最好用单引号括起来或使用反斜杠转义
需要用单引号括起来或使用反斜杠转义。LCTT 译注:此处原文有误,已修改。
$ touch *12.txt
@ -271,9 +268,9 @@ Linux 下如何处理包含空格和特殊字符的文件名
或者
$ rm -rf *
而是用这样的命令,(注:这个命令是删除当前目录所有.txt文件。。。
而是用这样的命令,(LCTT 译注:此处原文有误,已修改
$ rm ./*.txt
$ rm ./'*.txt'
#### 文件名包含叹号 (!) ####
@ -307,9 +304,9 @@ Linux 下如何处理包含空格和特殊字符的文件名
#### 文件名包含花括号 {} ####
不需要特别注意。可以当作普通文件处理。(注:花括号在 shell 里有特殊意义,用作文件名最好用单引号括起来或使用反斜杠转义)
用单引号括起来或使用反斜杠转义LCTT 译注:此处原文有误,已修改
$ touch {12.txt}
$ touch '{12.txt}'
#### 文件名包含尖括号 <> ####
@ -319,21 +316,21 @@ Linux 下如何处理包含空格和特殊字符的文件名
#### 文件名包含方括号 [ ] ####
名字包含方括号的文件可以当作普通文件,不用特别处理。(注:方括号在 shell 里有特殊意义,用作文件名最好用单引号括起来或使用反斜杠转义)
用单引号括起来或使用反斜杠转义LCTT 译注:此处原文有误,已修改
$ touch [12.txt]
$ touch '[12.txt]'
#### 文件名包含下划线 (_) ####
这个非常普遍不需要特殊对待。当作普通文件随意处理。
这个非常普遍不需要特殊对待。当作普通文件随意处理。
$ touch _12.txt
#### 文件名包含等号 (=) ####
文件名包含等号不会改变任何事情,你可以当作普通文件。(注:等号在 shell 里有特殊意义,用作文件名最好用单引号括起来或使用反斜杠转义)
用单引号括起来或使用反斜杠转义LCTT 译注:此处原文有误,已修改
$ touch =12.txt
$ touch '=12.txt'
#### 处理反斜杠 (\) ####
@ -349,9 +346,9 @@ Linux 下如何处理包含空格和特殊字符的文件名
#### 文件名包含问号 (?) ####
再一次,这个也是不需要特别处理的情况。名字包含问号的文件可以和大多数情况一样对待。(注:问号在 shell 里有特殊意义,用作文件名最好用单引号括起来或使用反斜杠转义)
用单引号括起来或使用反斜杠转义LCTT 译注:此处原文有误,已修改
$ touch ?12.txt
$ touch '?12.txt'
#### 文件名包含点 (.) ####
@ -382,25 +379,25 @@ Linux 下如何处理包含空格和特殊字符的文件名
#### 文件名包含冒号 (:) ####
你可以在文件名中使用冒号,可以有任意多个而不用特殊对待。就像平时普通名字文件那样处理。(注:冒号在 shell 里有特殊意义,用作文件名最好用单引号括起来或使用反斜杠转义)
用单引号括起来或使用反斜杠转义LCTT 译注:此处原文有误,已修改
$ touch :12.txt
$ touch ':12.txt'
或者
$ touch :12:.txt
$ touch ':12:.txt'
#### 文件名包含引号(单引号和双引号) ####
要在文件名里使用引号,我们需要使用交替规则。例如,如果你需要在文件名里使用单引号,那就用双引号把文件名括起来。而如果你需要在文件名里使用双引号,那就用单引号把文件名括起来。
要在文件名里使用引号,我们需要使用交替规则。例如,如果你需要在文件名里使用单引号,那就用双引号把文件名括起来。而如果你需要在文件名里使用双引号,那就用单引号把文件名括起来。LCTT 译注:或者如果单引号和双引号混杂的情况,你也可以用反斜杠转义。)
$ touch "15'.txt"
以及
$ touch '15.txt'
$ touch '15".txt'
#### 文件名包含波浪号 (~) ####
Linux 下一些像 emacs 这样的文本编辑器在编辑文件的时候会创建备份文件。这个备份文件的名字是在原文件名后面附加一个波浪号。你可以在文件名任意位置使用波浪号,例如:(注:波浪号在 shell 里有特殊意义,用作文件名最好用单引号括起来或使用反斜杠转义)
Linux 下一些像 emacs 这样的文本编辑器在编辑文件的时候会创建备份文件。这个备份文件的名字是在原文件名后面附加一个波浪号。你可以在文件名任意位置使用波浪号,例如:
$ touch ~1a.txt
或者
@ -426,10 +423,10 @@ via: http://www.tecmint.com/manage-linux-filenames-with-special-characters/
作者:[Avishek Kumar][a]
译者:[zpl1025](https://github.com/zpl1025)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/avishek/
[1]:http://www.tecmint.com/15-basic-ls-command-examples-in-linux/
[1]:https://linux.cn/article-5349-1.html
[2]:http://www.tecmint.com/8-pratical-examples-of-linux-touch-command/

View File

@ -1,15 +1,14 @@
Linux服务器安全攻略
Linux 服务器安全技巧
================================================================================
> 一台服务器由大量功能各异的部件组成,这一点使得很难根据每个人的需求去提供定制的解决方案。这篇文章尽可能涵盖一些有所裨益的小技巧来帮助管理员保证服务器和用户安全。
毋庸置疑,对于系统管理员,提高服务器的安全性是最重要的事情之一。因此,也就有了许多针对这个话题而生的文章、博客和论坛帖子。
一台服务器由大量功能各异的部件组成,这一点使得很难根据每个人的需求去提供定制的解决方案。这篇文章尽可能涵盖一些有所裨益的小技巧来帮助管理员保证服务器和用户安全。
有一些常识是每个系统管理员都应该烂熟于心的,所以下面的几点在文将不会提及:
有一些常识是每个系统管理员都应该烂熟于心的,所以下面的几点在文将不会提及:
- 务必保证系统是**最新的**
- 经常更换密码 - 使用数字、阿拉伯字母和非阿拉伯字母的符号组合
- 经常更换密码 - 使用数字、字母和非字母的符号组合
- 给予用户**最小**的权限,满足他们日常使用所需即可
- 只安装那些真正需要的软件包
@ -17,7 +16,7 @@ Linux服务器安全攻略
### 更改SSH默认端口 ###
在搭建好一台全新的服务器后要做的第一件事情就是更改SSH的默认端口。这个小小的改动能够使你的服务器避免受到成千上万的暴力攻击(译注:不更改默认端口相当于黑客们知道你家的门牌号,这样他们只需要一把一把的试钥匙就可能打开你家的锁)。
在搭建好一台全新的服务器后要做的第一件事情就是更改SSH的默认端口。这个小小的改动能够使你的服务器避免受到成千上万的暴力攻击LCTT 译注:不更改默认端口相当于黑客们知道你家的门牌号,这样他们只需要一把一把的试钥匙就可能打开你家的锁)。
要更改默认的SSH端口先打开sshd_config文件
@ -35,7 +34,7 @@ Linux服务器安全攻略
接下来的一步是:
### 使用SSH密钥 ###
### 使用SSH密钥认证 ###
在通过SSH访问服务器时使用SSH密钥进行认证是尤其重要的。这样做为服务器增加了额外的保护确保只有那些拥有密钥的人才能访问服务器。
@ -43,7 +42,7 @@ Linux服务器安全攻略
ssh-keygen -t rsa
你会看到下面的输出,询问要将密钥写到哪一个文件,并且设置一个密码:
你会看到下面的输出,询问要将密钥写到哪一个文件,并且设置一个密码:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): my_key
@ -60,7 +59,7 @@ my_key
my_key.pub
接下来把my_key.pub拷贝到~/.ssh/authorized_key中
接下来把my\_key.pub拷贝到~/.ssh/authorized\_key中
cp my_key.pub ~/.ssh/authorized_keys
@ -72,7 +71,7 @@ my_key.pub
### 关闭SSH的密码认证 ###
既然已经有了SSH密钥那么关闭SSH的密码认证就安全了。再次打开并编辑sshd_config按如下设置
既然已经有了SSH密钥那么关闭SSH的密码认证就会更安全了。再次打开并编辑sshd_config按如下设置
ChallengeResponseAuthentication no
PasswordAuthentication no
@ -84,7 +83,7 @@ my_key.pub
/etc/sudoers/
可以使用如**visudo**这样的命令编辑文件,推荐使用这个命令,因为它会在关闭文件之前检查任何可能出现的语法错误。当你在编辑文件时出错了,这就很有用了。
推荐使用如**visudo**这样的命令编辑该文件,因为它会在关闭文件之前检查任何可能出现的语法错误。当你在编辑文件时出错了,这就很有用了。
接下来赋予某个用户root权限。在本文中使用用户**sysadmin**。确保在编辑后这个文件时使用的用户是系统已有的用户。找到下面这行:
@ -107,6 +106,8 @@ my_key.pub
(4) 这个用户可以使用的命令
LCTT 译注所以上面的配置是意思是root 用户可以在任何终端担任任何用户,执行任何命令。)
使用这个配置可以给用户访问一些系统工具的权限。
这时,可以放心保存文件了。
@ -135,7 +136,7 @@ my_key.pub
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
csf
cd csf
sh install.sh
只需等待安装程序完成然后编辑CSF的配置文件
@ -148,25 +149,25 @@ my_key.pub
下面要设置的就是服务器上允许通过的端口。在csf.conf中定位到下面的部分根据需要修改端口
# Allow incoming TCP ports
# 允许入站的 TCP 端口
TCP_IN = "20,21,25,53,80,110,143,443,465,587,993,995,16543"
# Allow outgoing TCP ports
# 允许出站的 TCP 端口
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,16543"
# Allow incoming UDP ports
# 允许入站的 UDP 端口
UDP_IN = "20,21,53"
# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
# 允许出站的 UDP 端口
# 要允许发出 traceroute 请求,请加 33434:33523 端口范围到该列表
UDP_OUT = "20,21,53,113,123"
请根据需要逐一设置推荐只使用那些需要的端口避免设置对端口进行大范围设置。此外也要避免使用不安全服务的不安全端口。比如只允许端口465和587来发送电子邮件取代默认的SMTP端口25.
请根据需要逐一设置推荐只使用那些需要的端口避免设置对端口进行大范围设置。此外也要避免使用不安全服务的不安全端口。比如只允许端口465和587来发送电子邮件取代默认的SMTP端口25LCTT 译注:前提是你的邮件服务器支持 SMTPS
**重要**:千万不要忘记允许自定义SHH端口。
**重要**:千万不要忘记允许自定义的 ssh 端口。
允许防火墙通过你的IP地址使其不被屏蔽这一点很重要。IP地址定义在下面的文件中
允许你的IP地址通过防火墙而绝不被屏蔽这一点很重要。IP地址定义在下面的文件中
/etc/csf/csf.ignore
被屏蔽的IP地址会出现在这个文件中
被屏蔽的IP地址会出现在这个文件中
/etc/csf/csf.deny
@ -184,13 +185,13 @@ my_key.pub
可以看到尝试通过暴力法登录的IP地址都被屏蔽了真是眼不见心不烦啊
#### 锁住账户 ####
### 锁住账户 ###
如果某个账户在很长一段时间内都不会被使用了,那么可以将其锁住以防止其它人访问。使用如下命令:
passwd -l accountName
当然这个账户依然可以被root用户使用。
当然这个账户依然可以被root用户使用LCTT 译注:可用 su 切换为该账号)
### 了解服务器上的服务 ###
@ -207,16 +208,18 @@ my_key.pub
然后使用下面的命令关闭服务:
chkconfig service off
systemctl disable service
在上面的例子中把“service”替换成真正想要停止的服务名称。实例如下
chkconfig httpd off
systemctl disable httpd
### 小结 ###
### 小结 ###
这篇文章的目的是涵盖一些通用的安全步骤以便帮助你保护服务器。你可以采取额外的方式去增强对服务器的保护。请记住保证服务器安全是你的责任,在维护服务器安全时尽量做出明智的选择,尽管并没有什么容易的方式去完成这件事情,而建立“完善的”安全需要花费大量的时间和测试直到达到想要的结果。
这篇文章的目的是涵盖一些通用的安全步骤以便帮助你保护服务器。你可以采取更多方式去增强对服务器的保护。请记住保证服务器安全是你的责任,在维护服务器安全时尽量做出明智的选择,尽管并没有什么容易的方式去完成这件事情,而建立“完善的”安全需要花费大量的时间和测试直到达到想要的结果。
--------------------------------------------------------------------------------
@ -224,7 +227,7 @@ via: http://www.linuxveda.com/2015/06/03/secure-linux-server/
作者:[Marin Todorow][a]
译者:[KayGuoWhu](https://github.com/KayGuoWhu)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,6 +1,6 @@
watch - 定期重复Linux / Unix命令
watch定期重复Linux / Unix命令
================================================================================
服务器管理员需要维护系统并保持更新和安全。每天需要尝试大量的指令。一些其他的活动存储在日志中。这些日志定期地更新。为了检车这些更新需要重复地执行命令。比如为了读取一个文件需要使用head、tail、cat等命令。这些命令需要重读地执行。watch命令可以用于定期地执行一个命令。
服务器管理员需要维护系统并保持更新和安全。每天需要运行大量的指令。有些系统进程会记录日志。这些日志不断更新。为了检查这些更新,需要重复地执行命令。比如,为了读取一个日志文件需要使用head、tail、cat等命令。这些命令需要重复地执行。而watch命令可以用于定期地执行一个命令。
### Watch 命令 ###
@ -8,45 +8,45 @@ watch是一个简单的命令只有几个选项。watch命令的基本语法
watch [-dhvt] [-n <seconds>] [--differences[=cumulative]] [--help] [--interval=<seconds>] [--no-title] [--version] <command>
watch命令默认每隔2秒执行后面的命令。这个时间根据的是命令执行结束到上次执行的间隔来算的。比如watch命令可以用于监测日志更新更新时在文件的后面追加新行因此tail命令可以用来检测文件的更新。这个命令会持续地运行直到你按下 CTRL + C回到提示符。
watch命令默认每隔2秒执行后面参数给出的命令。这个时间根据的是命令执行结束到上次执行的间隔来算的。比如watch命令可以用于监测日志更新更新是在文件的后面追加新的内容因此可以用tail命令来检测文件的更新LCTT 译注:可以直接使用 `tail -f` 主动跟踪某个文件的更新,而不用使用 watch。。这个命令会持续地运行直到你按下 `CTRL + C`回到提示符。
### 例子 ###
> 每两秒监测 errors/notices/warning 生成的情况。
每两秒监测 errors/notices/warning 生成的情况。
watch tail /var/log/messages
![tail messages](http://blog.linoxide.com/wp-content/uploads/2015/06/1.png)
> 用指定的时间监测磁盘的使用率。
按指定的时间间隔监测磁盘的使用率。
watch df -h
![df -h](http://blog.linoxide.com/wp-content/uploads/2015/06/2.png)
> 对磁盘管理员而言关注高I/O等待导致的磁盘操作尤其是mysql事务是很重要的。
对磁盘管理员而言关注高I/O等待导致的磁盘操作尤其是mysql事务是很重要的。
watch mysqladmin processlist
![processlist](http://blog.linoxide.com/wp-content/uploads/2015/06/3.png)
> 监测服务器负载和运行时间。
监测服务器负载和运行时间。
watch uptime
![uptime](http://blog.linoxide.com/wp-content/uploads/2015/06/10.png)
> 检测exim排队给用户发送通知队列的大小。
监测exim给用户发送通知的队列大小。
watch exim -bpc
![exim -bpc](http://blog.linoxide.com/wp-content/uploads/2015/06/9.png)
### 1) 掩饰循环 ###
### 1) 指定延迟 ###
watch [-n <seconds>] <command>
命令默认运行的间隔用-n改变下面的命令会在5秒后运行后面的命令
命令默认运行的时间间隔用-n改变下面的命令会在5秒后运行后面的命令
watch -n 5 date
@ -58,13 +58,11 @@ watch命令默认每隔2秒执行后面的命令。这个时间根据的是命
watch [-d or --differences[=cumulative]] <command>
#### 例子 1 ####
用下面的命令连续地输出时间病观察高亮出来的不同部分。
例子 1用下面的命令连续地输出时间并观察高亮出来的不同部分。
watch -n 15 -d date
第一次执行date的输出会被捕捉15后会会重复运行命令。
第一次执行date的输出会被记录15秒后会重复运行命令。
![Difference A](http://blog.linoxide.com/wp-content/uploads/2015/06/6.png)
@ -72,9 +70,7 @@ watch命令默认每隔2秒执行后面的命令。这个时间根据的是命
![Difference A](http://blog.linoxide.com/wp-content/uploads/2015/06/6b.png)
#### 例子 2 ####
让我们来体验一下两个连续的“uptime”命令输出的不同。
例子 2让我们来体验一下两个连续的“uptime”命令输出的不同。
watch -n 20 -d uptime
@ -112,13 +108,13 @@ watch命令默认每隔2秒执行后面的命令。这个时间根据的是命
![version](http://blog.linoxide.com/wp-content/uploads/2015/06/11.png)
**问题**
**不足**
不幸的是,在终端大小调整时,屏幕不能在下次运行前重画。所有用--difference高亮的内容也会在更新时丢失。
### 总结 ###
watch对系统管理员而言是一个非常强大的工具因为它可以用于监控、日志、运维、性能和系统运行时的吞吐量。人们可以非常简单地格式化和推延watch的输出。任何Linux命令/程序或脚本可以按照所需监测和连续输出。
watch对系统管理员而言是一个非常强大的工具因为它可以用于监控、日志、运维、性能和系统运行时的吞吐量。人们可以非常简单地格式化和推延watch的输出。任何Linux命令/程序或脚本可以按照所需监测和连续输出。
--------------------------------------------------------------------------------
@ -126,7 +122,7 @@ via: http://linoxide.com/linux-command/linux-watch-command/
作者:[Aun Raza][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,22 +1,22 @@
如何在 Cacti 中合并两幅图片
================================================================================
[Cacti][1] 是一个很棒的开源网络监视系统,它广泛使用于图示网络元素,例如带宽、存储、处理器和内存使用。使用它的基于网络的接口,你可以轻松地创建和组织图。然而,默认并没有提供一些高级功能,例如合并图片、使用多个来源创建聚合图、迁移 Cacti 到另一台服务器。使用 Cacti 的这些功能你还需要一些经验。在该教程中,我们会看到如何在将两幅 Cacti 图片合并为一幅。
[Cacti][1] 是一个很棒的开源网络监视系统,它广泛使用于图形化地展示网络元素,例如带宽、存储、处理器和内存使用。使用它的基于Web 的界面,你可以轻松地创建和组织各种图表。然而,它默认并没有提供一些高级功能,例如合并图片、使用多个来源创建聚合图、迁移 Cacti 到另一台服务器。使用 Cacti 的这些功能你还需要一些经验。在该教程中,我们会看到如何在将两幅 Cacti 图片合并为一幅。
考虑这个例子。在过去的 6 个月中,客户端 A 连接到了交换机 A 的端口 5。端口 5 发生了错误,因此客户端迁移到了端口 6。由于 Cacti 为每个接口/元素使用不同的图,客户端的带宽历史会分成端口 5 和端口 6。结果是对于一个客户端我们有两幅图片 - 一幅是 6 个月的旧数据,另一幅保存了后续的数据。
看看这个例子。在过去的 6 个月中,客户端 A 连接到了交换机 A 的端口 5。端口 5 发生了错误,因此客户端迁移到了端口 6。由于 Cacti 为每个接口/元素使用不同的图,客户端的带宽历史会分成端口 5 和端口 6。结果是对于一个客户端我们有两幅图片 - 一幅是 6 个月的旧数据,另一幅保存了后续的数据。
在这种情况下,我们实际上可以合并两幅图片将旧数据加到新的图中,使得用一个单独的图为一个用户保存历史的和新数据。教程将会解释如何做到这一点。
在这种情况下,我们实际上可以合并两幅图片将旧数据加到新的图中,使得用一个单独的图为一个用户保存历史的和新数据。教程将会解释如何做到这一点。
Cacti 将每幅图片的数据保存在它自己的 RRD(round robin database,循环数据库) 文件中。当请求一幅图片时,根据保存在对应 RRD 文件中的值生成图。在 Ubuntu/Debian 系统中RRD 文件保存在 `/var/lib/cacti/rra`,在 CentOS/RHEL 系统中则是 `/var/www/cacti/rra`
Cacti 将每幅图片的数据保存在它自己的 RRDround robin database循环数据库文件中。当请求一幅图片时,根据保存在对应 RRD 文件中的值生成图。在 Ubuntu/Debian 系统中RRD 文件保存在 `/var/lib/cacti/rra`,在 CentOS/RHEL 系统中则是 `/var/www/cacti/rra`
合并图片背后的思想是更改这些 RRD 文件使得旧 RRD 文件中的值能追加到新的 RRD 文件中。
### 情景 ###
一个客户端的服务在 eth0 上运行了超过一年。由于硬件损坏,客户端迁移到了另一台服务器的 eth1 接口。我们想示新接口的带宽,同时保留超过一年的历史数据。只在一幅图中显示客户端
一个客户端的服务在 eth0 上运行了超过一年。由于硬件损坏,客户端迁移到了另一台服务器的 eth1 接口。我们想示新接口的带宽,同时保留超过一年的历史数据。该客户端希望只在一幅图中显示。
### 确定图的 RRD 文件 ###
图合并的首个步骤是确定和图关联的 RRD 文件。我们可以通过以调试模式打开图检查文件。要做到这点,在 Cacti 的菜单中: 控制台 > 管理图 > 选择图 > 打开图调试模式。
图合并的首个步骤是确定与图相关联的 RRD 文件。我们可以通过以调试模式打开图检查文件。要做到这点,在 Cacti 的菜单中: 控制台 > 管理图 > 选择图 > 打开图调试模式。
#### 旧图: ####
@ -26,14 +26,14 @@ Cacti 将每幅图片的数据保存在它自己的 RRD(round robin database,循
![](https://farm4.staticflickr.com/3674/18634036918_5c4118c4b9_c.jpg)
从样例输出(基于 Debian 系统)中,我们可以确定两幅图片的 RRD 文件:
从样例输出(基于 Debian 系统)中,我们可以确定两幅图片的 RRD 文件:
- **旧图** /var/lib/cacti/rra/old_graph_traffic_in_8.rrd
- **新图** /var/lib/cacti/rra/new_graph_traffic_in_10.rrd
### 准备脚本 ###
我们会用一个 [RRD 剪接脚本][2] 合并两个 RRD 文件。下载该 PHP 脚本,并安装 /var/lib/cacti/rra/rrdsplice.php (Debian/Ubuntu 系统) 或 /var/www/cacti/rra/rrdsplice.php (CentOS/RHEL 系统)。
我们会用一个 [RRD 剪接脚本][2] 合并两个 RRD 文件。下载该 PHP 脚本,并安装 /var/lib/cacti/rra/rrdsplice.php (Debian/Ubuntu 系统) 或 /var/www/cacti/rra/rrdsplice.php (CentOS/RHEL 系统)。
下一步,确认 Apache 用户拥有该文件。
@ -49,7 +49,7 @@ Cacti 将每幅图片的数据保存在它自己的 RRD(round robin database,循
chown($finrrd, "www-data");
在 CentOS 或 RHEL 系统中,运行下面的命令:
在 CentOS 或 RHEL 系统中,运行下面的命令即可
# chown apache:apache rrdsplice.php
@ -72,7 +72,7 @@ Cacti 将每幅图片的数据保存在它自己的 RRD(round robin database,循
![](https://farm6.staticflickr.com/5493/18821787015_6730164068_b.jpg)
总之,该教程显示了如何简单地将两幅 Cacti 图片合并为一幅。当服务迁移到另一个设备/接口,我们希望只处理一幅图片而不是两幅时,这个小技巧非常有用。该脚本非常方便,因为它可以不管源设备合并图片,例如 Cisco 1800 路由器和 Cisco 2960 交换机。
总之,该教程显示了如何简单地将两幅 Cacti 图片合并为一幅。当服务迁移到另一个设备/接口,我们希望只处理一幅图片而不是两幅时,这个小技巧非常有用。该脚本非常方便,因为它可以不管源设备是不是相同都可以合并图片,例如 Cisco 1800 路由器和 Cisco 2960 交换机。
希望这些能对你有所帮助。
@ -82,10 +82,10 @@ via: http://xmodulo.com/combine-two-graphs-cacti.html
作者:[Sarmed Rahman][a]
译者:[ictlyh](https://github.com/ictlyh)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/sarmed
[1]:http://xmodulo.com/install-configure-cacti-linux.html
[1]:https://linux.cn/article-5746-1.html
[2]:http://svn.cacti.net/viewvc/developers/thewitness/rrdsplice/rrdsplice.php

View File

@ -0,0 +1,127 @@
Linux命令行中的幽默
================================================================================
图形桌面总是很养眼的,它增强了可视化体验,有时也能够提升了某些软件的功能,让软件变得更有趣。但是,在命令行下工作也不需要总是很古板,如果您想在命令行下寻找些乐趣,那么有很多命令给您带来趣味。
Linux是个有趣的操作系统。它提供大量的小型开源工具从平淡无奇的软件到稀奇古怪的应用。正是这些工具的功能和琳琅满目的选择帮助Linux脱颖而出。让我们一起来看看下面这七个小工具吧。
### 七彩虹lolcat ###
![lolcat](http://www.linuxlinks.com/portal/content/reviews/Misc/Screenshot-lolcat.png)
lolcat是一个用于将文件或标准输入连接到标准输出类似常见的cat的程序但是它会为输出添加七彩的颜色。
lolcat通常和其他诸如toilet或figlet等生成文本的应用结合使用。这个软件不应被误认为是一个或多个猫的图像的宏。
lolcat由Moe编写。
网址: [github.com][1]
### 牛郎的牛cowsay ###
![cowsay](http://www.linuxlinks.com/portal/content/reviews/Misc/Screenshot-cowsay.png)
cowsay是一个可配置的开源软件它用ASCII码生成奶牛的图片并可以在对话气泡中显示消息。cowsay是用Perl写的。
cowsay并不仅仅只能显示奶牛。它能生成预先制作的图片或者其他动物包括鸭子、考拉、麋鹿、小马、绵羊、剑龙和火鸡以及奶酪、雪人和骷髅。
有一个叫cowthink的应用与对话的气泡不同它能在生成奶牛的同时生成思考的气泡。
功能包括:
- 让脚本变得更有趣
- Borg模式
- 可以更改奶牛看起来的样子,比如让奶牛看起来贪婪、偏执、固执、疲倦、古怪、年轻等
- 图形版变体xcowsay
网址: [nog.net][2]
### 傻狗doge ###
![doge](http://www.linuxlinks.com/portal/content/reviews/Misc/Screenshot-doge.png)
doge是一个简单的每日信息脚本它基于有些愚蠢但很有趣的doge的梗。它随机的打印一些在语法上有误的句子有时这些句子基于您电脑中的东西。
doge是一个在2013年非常流行的互联网潮流元素。这个梗通常由一幅日本柴犬的图片和彩色的文字组成。这些文字故意用一种蹩脚的语气写成了一些互联网的独白。
- 随机的用不同的颜色和蹩脚的英语写下随机的句子
- 终端中的柴犬效果非常棒
- 可以获得系统数据,比如主机名、运行中的程序、当前用户、$EDITOR
- 如果您安装了lolcat您可以用它作为点缀: `while true; do doge | lolcat -a -d 100 -s 100 -p 1; done`
- 支持标准输入: `ls /usr/bin | doge` 将显示一些 /usr/bin下的可执行文件。哇噢还有许多命令行的开关可以过滤词语以及控制词语的频率。
网址: [github.com/thiderman/doge][3]
### 水族箱ASCIIQuarium ###
![Asciiquarium](http://www.linuxlinks.com/portal/content/reviews/Misc/Screenshot-Asciiquarium.png)
ASCIIQuarium是一个以ASCII码方式画出的水族馆/海洋动画。享受生活在您电脑中水底的奇妙生物吧。
想运行ASCIIQuarium您需要安装Perl的curses包以及Term::Animation模块。请使用`sudo apt-get install libcurses-perl`来安装前者使用sudo cpan Term::Animation来安装后者。两个命令都需要在终端中运行。
功能包括:
- 五彩的鱼儿
- 有趣的动画,包括钓鱼钩
- 还有许多的天鹅、鸭子、海豚和船只
网址: [www.robobunny.com][4]
### 蒸汽机车sl ###
![sl](http://www.linuxlinks.com/portal/content/reviews/Misc/Screenshot-sl.png)
sl是一个有趣的终端应用它为那些意外的错将ls输成sl的用户显示一个动画。
我打字通常非常草率更喜欢速度而不是准确性。但错别字在命令行中是非常危险的。因此sl扮演了一个提醒者提醒我们注意错误输入的这种坏习惯。它总是会让人咯咯的笑。
功能包括:
- 使用 -F, 火车在飞翔
- 使用 -l, 显示一个小型的火车
- 使用 -a, 看上去发生了意外
网址: [github.com/mtoyoda/sl][5]
### 火焰aafire ###
![aafire](http://www.linuxlinks.com/portal/content/reviews/Misc/Screenshot-aafire.png)
aafire在终端中显示燃烧的ASCII火焰。它展示了aalib库的强大能力一个ascii艺术库显示出来。
网址: [aa-project.sourceforge.net/aalib][6]
### 矩阵CMatrix ###
![CMatrix](http://www.linuxlinks.com/portal/content/reviews/Misc/Screenshot-CMatrix.png)
CMatrix是一个基于ncurses的程序它模拟《黑客帝国》一部电影中的画面。如果您在一个山洞里度过了上个15年那么您可能不知道这部1999年的美国科幻电影主角为 Keanu Reeves, Laurence Fishburne, Carrie-Anne Moss, Hugo Weaving和 Joe Pantoliano。
它可以在终端设置为132x300的情况下工作并且可以以同样的速率进行滚动或者以用户定义的速度进行异步的滚动。
功能包括:
- 修改文本颜色
- 使用粗体字符
- 异步滚动
- 使用老式的滚动效果
- 屏幕保护程序模式
网址: [www.asty.org/cmatrix][7]
--------------------------------------------------------------------------------
via: http://www.linuxlinks.com/article/20150614112018846/Humor.html
译者:[wwy-hust](https://github.com/wwy-hust)
校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[1]:https://github.com/busyloop/lolcat
[2]:https://web.archive.org/web/20120225123719/http://www.nog.net/%7Etony/warez/cowsay.shtml
[3]:https://github.com/thiderman/doge
[4]:http://www.robobunny.com/projects/asciiquarium/html/
[5]:https://github.com/mtoyoda/sl
[6]:http://aa-project.sourceforge.net/aalib/
[7]:http://www.asty.org/cmatrix/

View File

@ -0,0 +1,215 @@
Tor浏览器Linux下用于匿名Web浏览的终极浏览器
================================================================================
我们大多数人都在上网方面花费很多时间。上网使用的应用程序主要是浏览器更确切的说是一个Web浏览器。我们在网络上的大部分活动要以客户端/服务器的方式登录这个过程会包括IP地址、地理信息、搜索、活动以及许多潜在的信息这些信息如果以其他方式被故意使用会存在潜在的危险性。
![在Linux中安装Tor浏览器](http://www.tecmint.com/wp-content/uploads/2014/04/Install-tor-browser-in-linux.jpg)
*Tor浏览器匿名浏览器*
此外美国国家安全局NSA这样的国际间谍机构会记录我们的数字足迹。更不必说受到控制的代理服务器也会被用来做为数据搜集服务器。并且大多数企业和公司不会允许您访问代理服务器使您能保障自己的隐私
因此我们需要的最好是一个小型、独立、可携带的应用程序它能达到匿名的效果。Tor浏览器便是这样的一个应用它拥有上面提到的所有功能甚至不止于此。
这篇文章里我们会讨论Tor浏览器它的功能、使用方式、领域、安装以及其他关于Tor浏览器的重要方面。
### 什么是Tor浏览器 ###
Tor是一个自由分发的应用软件以BSD许可证发布通过其安全可靠的洋葱式的结构允许用户匿名的进行网络浏览。从前由于它的结构和运作机制Tor被称为洋葱路由器。这个应用是由C语言写成的。
#### Tor浏览器的功能 ####
- 跨平台可用。例如这个应用程序在Linux、Windows和Mac下都可用。
- 在发送数据到因特网前进行复杂的数据加密。
- 在客户端进行数据自动解密。
- 它是火狐浏览器和Tor工程的结合。
- 对服务器和网站提供匿名性。
- 可以访问被限制的网站。
- 无需暴露源IP便可以执行任务。
- 可以将数据路由至/从防火墙后隐藏的服务和应用程序。
- 便携性 - 可以直接从USB存储棒上运行一个预配置的web浏览器。无需本地安装。
- 在x86和x86_64平台均可用
- 可以配置为一个运行在“localhost”的“9050”端口上的“socks4a”代理来让FTP跑在Tor 上。
- Tor拥有处理上千的中继和上百万用户的能力。
#### Tor浏览器如何工作 ####
Tor的工作方式基于洋葱路由的概念。洋葱路由的结构类似洋葱它的每一层都嵌套在另一层里面就像洋葱一样。这种嵌套的结构负责多次加密数据并将其通过虚拟电路进行发送。在客户端一侧每一层都在将他传递到下一层之前解密数据。最后一层在将原始数据传递到目的地前解密最里面一层的加密数据。
在这个过程里这种解密整个层的功能设计的如此高明以至于无法追踪IP以及用户的地理位置因此可以限制任何人观察您访问站点的网络连接。
所有这些过程看起来有些复杂但用户使用Tor浏览器时没有必要担心。实际上Tor浏览器的功能像其他浏览器一样尤其是Mozilla的Firefox
### 在Linux中安装Tor浏览器 ###
就像上面讨论的一样Tor浏览器在Linux和Windows以及Mac下都可用。用户需要根据系统和架构的不同在下面的链接处下载最新的版本例如Tor浏览器4.0.4)。
- [https://www.torproject.org/download/download-easy.html.en][1]
在下载Tor浏览器后按说我们需要安装它但是Tor的好处是我们不需要安装它。它能直接从随身设备中运行并且该浏览器可以被预配置。这意味着插件和运行的特性可以完美的移植。
下载打包文件(*.tar.xz后我们需要解压它。
**32位系统**
$ wget https://www.torproject.org/dist/torbrowser/4.0.4/tor-browser-linux32-4.0.4_en-US.tar.xz
$ tar xpvf tor-browser-linux32-4.0.4_en-US.tar.xz
**64位系统**
$ wget https://www.torproject.org/dist/torbrowser/4.0.4/tor-browser-linux64-4.0.4_en-US.tar.xz
$ tar -xpvf tor-browser-linux64-4.0.4_en-US.tar.xz
**注意** : 在上面的命令中,我们使用‘$意味着这个压缩包应以普通用户而不是root用户来解压。我们强烈建议您不要以root用户解压和运行Tor浏览器。
###开始使用Tor浏览器###
在成功的解压后,我们便可以将解压后的浏览器移动到任何地方/USB存储设备中。并从解压的文件夹以非root用户直接运行start-tor-browser
$ cd tor-browser_en-US
$ ./start-tor-browser
![开始使用Tor浏览器](http://www.tecmint.com/wp-content/uploads/2014/04/Starting-Tor-Network.jpg)
*开始使用Tor浏览器*
####1. 尝试连接到Tor网络####
点击“连接”之后Tor将按照设置帮您做剩下的事情。**
![连接到Tor网络](http://www.tecmint.com/wp-content/uploads/2014/04/Tor-Network-Settings.jpg)
*连接到Tor网络*
####2. 欢迎窗口/标签。####
![Tor欢迎界面](http://www.tecmint.com/wp-content/uploads/2014/04/Tor-Welcome-Screen.png)
*Tor欢迎界面*
**3. 用Tor浏览器在Youtube上看视频**
![在Youtube上看视频](http://www.tecmint.com/wp-content/uploads/2014/04/Watching-Video-on-Youtube.jpg)
*在Youtube上看视频*
####4. 打开银行网址以进行在线购物和交易####
![浏览银行站点](http://www.tecmint.com/wp-content/uploads/2014/04/Browsing-Site.jpg)
*浏览银行站点*
####5. 浏览器显示我当前的代理IP####
注意其中的文字为“Proxy Server detected”。**
![检查IP地址](http://www.tecmint.com/wp-content/uploads/2014/04/Checking-IP-Address.jpg)
*检查IP地址*
**注意**: 每次您想运行Tor时您需要在文本模式上运行Tor启动脚本。并且该终端在您运行Tor时会一直被占用。如何克服这些并创建一个桌面/Dock栏图标呢
####6. 我们需要在解压的文件夹中创建`tor.desktop`####
$ touch tor.desktop
接着使用您喜欢的编辑器编辑这个文件加入下面的文本这里我使用nano。
$ nano tor.desktop
----------
#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Name=Tor
Comment=Anonymous Browse
Type=Application
Terminal=false
Exec=/home/avi/Downloads/tor-browser_en-US/start-tor-browser
Icon=/home/avi/Downloads/tor-browser_en-US/Browser/browser/icons/mozicon128.png
StartupNotify=true
Categories=Network;WebBrowser;
**注意**: 确保将上面的tor浏览器的路径替换为您的环境中的路径。
####7. 一旦搞定后,您就可以双击`tor.desktop`文件来运行Tor浏览器了####
您可能需要在第一次运行时信任该文件。
![Tor应用启动器](http://www.tecmint.com/wp-content/uploads/2014/04/Tor-Application-Launcher.jpg)
*Tor应用启动器*
####8. 一旦您选择了信任,请注意`tor.desktop`文件的图标则会改变###
![Tor图标已改变](http://www.tecmint.com/wp-content/uploads/2014/04/Tor-icon-changed.jpg)
*Tor图标已改变*
####9. 您可以通过拖拽`tor.desktop`的图标在桌面和Dock栏中创建快捷方式####
![在桌面添加Tor快捷方式](http://www.tecmint.com/wp-content/uploads/2014/04/Add-Tor-Shortcut-on-Desktop.jpg)
*在桌面添加Tor快捷方式*
####10. 关于Tor浏览器####
![关于Tor浏览器](http://www.tecmint.com/wp-content/uploads/2014/04/About-Tor-Browser.jpg)
*关于Tor浏览器*
**注意**: 如果您在使用旧版本的Tor您可以从上面的窗口更新它。
#### 应用的可用性和领域 ####
- 匿名使用网络。
- 浏览被封锁的页面。
- 连接其他应用FTP来保证网络安全的访问。
#### 关于Tor浏览器的争论 ####
- 在Tor应用的边界上并没有什么安全措施。比如数据入口点和出口点。
- 一项2011年的研究发现一种特殊的针对Tor浏览器的攻击可以得到BitTorrent用户的IP地址。
- 在一些研究中发现某些特定的协议有泄漏IP地址的倾向。
- 早些的Tor版本绑定了旧版本的Firefox浏览器这被证明较易受JavaScript攻击。
- Tor浏览器运行起来比较慢。
#### 真实世界中Tor浏览器的实现 ####
- [Vuze BitTorrent Client][3]
- Anonymous Os
- Oses from Scratch
- whonix 等
#### Tor浏览器的未来 ####
Tor浏览器是前途无量的。也许第一个该类应用程序的实现是非常出色的但Tor浏览器必须加大对支持、伸缩性、以及对近期的攻击进行数据安全的研究的投入。这个应用程序是未来的需要。
#### 下载免费的电子书 ####
非官方的Tor私密浏览指南
[![](http://img.tradepub.com/free/w_make129/images/w_make129c4.gif)][2]
### 结论 ###
如果您工作的部门不允许您访问某网站或者如果您不希望别人知道您的私人事务或您不想向NSA提供您的个人数字足迹那么Tor浏览器在目前是必须的。
**注意**: Tor浏览器提供的安全性不能抵御病毒、木马或其他类似这样的安全威胁。写这篇文章的目的也不是希望通过在互联网上隐藏我们的身份来放纵非法活动。这篇文章纯粹是为了教学的目的作者和Tecmint均不会为任何非法的使用负责。这是用户自己的责任。
Tor浏览器是一个非常不错的应用您值得尝试这就是我要说的全部了我还会在这里写一些您感兴趣的文章所以请继续关注。别忘了在留言区提供给我们您有价值的反馈。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/tor-browser-for-anonymous-web-browsing/
作者:[Avishek Kumar][a]
译者:[wwy-hust](https://github.com/wwy-hust)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/avishek/
[1]:https://www.torproject.org/download/download-easy.html.en
[2]:http://tecmint.tradepub.com/free/w_make129/prgm.cgi
[3]:http://www.tecmint.com/install-vuze-torrent-client-in-linux/

Some files were not shown because too many files have changed in this diff Show More