<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 Thu, 09 Apr 2020 12:31:35 +0800 Thu, 09 Apr 2020 12:31:35 +0800 zh-CN https://img.linux.net.cn/static/image/common/linuxcn_logo_64.gif <![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 <![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12091-1.html?utm_source=rss&utm_medium=rss article-12091-1.html?utm_source=rss&utm_medium=rss

seL4 基金会旨在加速任何软件系统的安全性和可靠性。

旧金山,2020 年 4 月 7 日 —— Linux 基金会,一个通过开源实现大规模创新的非盈利组织,今天宣布它将托管 seL4 基金会,一个由澳大利亚国家科学机构 CSIRO 的数字专家部门 Data61 建立的非盈利组织。seL4 微内核是世界上第一个被证明是安全的操作系统内核;它的设计是为了确保现实世界的关键计算机系统的安全性和可靠性。

新的基金会旨在加速 seL4 和相关技术的发展,Linux 基金会将提供一个全球性的、独立的和中立的组织来资助和指导 seL4 的未来发展。创始成员包括 Cog Systems、DornerWorks、Ghost Locomotion、HENSOLD Cyber 和 UNSW Sydney。

嵌入式计算系统的可靠性对于提高世界各地关键系统的安全性以保护它们免受网络威胁至关重要。这一点在航空电子、自动驾驶汽车、医疗设备、关键基础设施和国防等行业尤为重要。seL4 微内核是世界上第一个验证了实现正确性的操作系统,它将保证、通用性和性能完美地结合在一起,是构建安全关键系统的理想基础。seL4 基金会为开发人员提供了一个论坛来协作开发和集成 seL4 生态系统。

“Linux 基金会将通过提供专业知识和服务来支持 seL4 基金会和社区,以增加社区参与、贡献者和采纳者,帮助将操作系统的生态系统提升到一个新的水平。”Linux 基金会战略项目副总裁 Michael Dolan 说:“开放注册绑定卡送38和基于标准的模型将提供一个中立、成熟和值得信赖的框架,以帮助推进一个易于部署和安全优化的操作系统。”

CSIRO 的 Data61 的负责人 June Andronick 博士说:“我们非常期待为 seL4 提供一个可持续的、长期的发展轨迹,也非常希望看到 seL4 基金会在 Linux 基金会的伞下发展壮大。”

“在 Linux 基金会的帮助下,我们可以扩大 seL4 的贡献者和采用者的社区,”新基金会主席、新南威尔士大学科学家 Gernot Heiser 教授说。“这将提供支持,让我们继续研究,确保 seL4 将保持最先进和安全的操作系统技术。”

有关 seL4 基金会的更多信息,请访问 https://sel4.systems/Foundation/

]]>
Thu, 09 Apr 2020 10:21:47 +0800 article-12091-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12090-1.html?utm_source=rss&utm_medium=rss article-12090-1.html?utm_source=rss&utm_medium=rss

依托 Cloudera 建立强大且安全的基础,全球移动平台 LINE 能够加速以客户为中心的创新,并且确保数据安全。

全球领先的企业数据云公司 Cloudera, Inc.(NYSE:CLDR)4 月 2 日宣布,即时通讯公司 LINE Corporation 选择 Cloudera 为 LINE 人工智能技术业务以及数据科学和工程中心(DSEC)的发展提供支持。为了在加快数据驱动之旅的同时确保用户数据的安全,LINE 将通过此次合作使用基于开源技术构建的平台注册绑定卡送38其数据生命周期,保障公司未来向云的迁移。

LINE 的目标是让信息、服务和人员更加紧密地联系在一起。LINE 以即时通讯应用程序为基础,致力于即时通讯、内容、娱乐、广告等手机特色服务的开发和运营。此外,已进军金融科技、人工智能等多个领域。由于 LINE 依据数据来提供以客户为中心的服务,因此 DSEC 需要处理大量不同类型的数据并向多条业务线提供洞察报告,以保证每月为全球 1.86 亿活跃用户提供服务。

LINE Corporation 数据平台工程总监兼数据工程研究员 Cheolho Choi 表示:“为了站在创新的最前沿,我们必须在实现大数据民主化的同时,对其进行注册绑定卡送38、利用和保护。鉴于 Cloudera 在架构、设计和保护关键任务大数据平台方面的专知,我们相信他们可以对强大的 LINE 数据平台进行改进,加快实现价值的时间,增强我们的数据安全性并降低运营成本。”

通过 Cloudera 数据平台的企业级集中安全治理能力,DSEC 将允许运营商设置和维护用于安全、合规和数据分析的元数据参数,从而更有效且安全地注册绑定卡送38数据。LINE 将使用它来统一各项服务的数据仓储,从而增强数据平台性能并为整个企业的用户提供托管式自助服务分析,同时不损害用户数据的安全。这也正符合 LINE 的目标,通过组织架构重组促进整个企业和部门之间的数据使用,最大程度地利用庞大的数据库来提高其现有服务的可用性,并且创建新的人工智能服务和功能。 

Cloudera 亚太区副总裁 Mark Micallef 表示:“如今,消费者希望企业在提供安全数据的同时,也能快速创新并提供个性化的服务。我们很高兴能够支持 LINE 整个企业的用户使用可扩展、可进行多功能分析、并具有统一安全和治理的集成数据平台,将其庞大而复杂的数据转变为清晰可执行的洞察,从而满足客户的需求。”

为确保 LINE 从架构初期阶段到向外扩展运营的数据驱动之旅取得成功,Cloudera 将通过全球专业服务顾问团队为其提供长期的技术专业知识和指导。此次合作将帮助LINE整合其大数据基础架构,同时最大程度地减少停机时间,优化其大数据环境,确保支持 LINE 服务的机器学习技术和现有分析工作负载能够有效地利用服务器资源,保证一致且高级别的数据保护。

此外,Cloudera 的定制化培训将帮助 DSEC 的工程师掌握有效注册绑定卡送38和保护大数据的技能。拥有这些高技能人才的 LINE 将更好地推动支持其业务的人工智能技术研发。  

关于 Cloudera

在 Cloudera,我们相信数据可以使今天的不可能,在明天成为可能。我们使人们能够将复杂的数据转换为清晰而可行的洞察力。Cloudera 为任何地方的任何数据从边缘到人工智能提供企业数据云平台服务。在开源社区不懈创新的支持下,Cloudera 推动了全球最大型企业的数字化转型历程。了解更多,请查看 cn.cloudera.com

关于 LINE 数据科学和工程中心(DSEC)

DSEC 是一个研发组织,它集成了所有之前以服务为基础的数据团队,包括数据平台开发、数据分析、机器学习、人工智能技术开发和基础研究。随着 DSEC 的建立,可以跨服务领域更好地访问统计数据和其他数据,从而实现更精准的数据分析、信息过滤以及更有效的数据和信息应用。

]]>
Thu, 09 Apr 2020 10:06:00 +0800 article-12090-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12089-1.html?utm_source=rss&utm_medium=rss article-12089-1.html?utm_source=rss&utm_medium=rss

Corp.com 这个域名非常敏感,因为多年的测试表明,无论谁使用它,都可以访问全球各大公司数十万系统的密码、电子邮件和其他专有数据。

现年 70 岁的知名域名投资者 Mike O’connor 在今年 2 月决定简化财产,并决定以 170 万美元的价格出售 corp.com 域名。而最新消息是微软已经以 160 万美元购买了该域名。微软购买这个域名的目的并不是为了推出新产品或服务,而是避免这个域名被心存恶意的买家买走。

Corp.com 这个域名非常敏感,因为多年的测试表明,无论谁使用它,都可以访问全球各大公司数十万系统的密码、电子邮件和其他专有数据。这是因为“corp”是 Windows Server 2000 中默认的 Active Directory 域名。虽然组织可以修改这个路径,但很多组织没有这样做。

所以,当“corp”是默认的 Active Directory 域名时,如果该组织的员工在公司网络中尝试访问它,就不会有任何问题。但是,如果员工试图在公共网络中访问“corp”路径,Windows 会尝试将“corp”解析为“corp.com”公有域。

微软针对 Corp.com 域名的收购,提供了以下声明:

为了帮助保持系统安全,我们鼓励客户在规划内部域名和网络名称时养成安全的安全习惯。我们在 2009 年 6 月发布了安全建议和安全更新,帮助客户保持安全。在我们对客户安全的持续承诺中,我们还收购了 Corp.com 域名。

来源:cnBeta.COM

更多资讯

新勒索病毒“WannaRen”大规模传播 杀毒软件暂时无法拦截

近日网络上出现了一种名为“WannaRen”的新型比特币勒索病毒,与此前的“WannaCry”病毒类似,病毒入侵电脑后,会弹出勒索对话框,并向用户索要比特币。“WannaRen”病毒入侵电脑后会加密系统中几乎所有文件,恢复文件需支付 0.05 个比特币的赎金。

来源:快科技

Switch 全系告破 黑客开售硬件模块:4月底发货

在经历漫长的预热以及因为疫情致工厂停工的延期后,TX 团队(Team-Xecuter)正式宣布启动 Switch 破解模块的预购。同时,TX 团队还放出了安装破解模块(modchip)后的主板高清照片。

来源:快科技

僵尸网络盯上微软 黑客用 MSSQL 数据库挖矿近两年

前不久,微软刚刚宣布联合 35 个国家摧毁了全球最大的僵尸网络之一 Necurs,最近,微软却被僵尸网络 Vollgar 盯上近两年。僵尸网络 Vollgar 入侵微软近两年,每天攻击近 3000个数据库。

来源:雷锋网

意大利电子邮件服务商被黑 60万用户数据在暗网出售

ZDNet 从一位读者提供的消息当中得知,目前有超过 60 万 Email.it 用户的数据正在暗网上被出售。这家意大利的电子邮件服务提供商周一向 ZDNet 表示:“不幸的是,我们必须确认,我们遭遇了黑客的攻击。"

来源:cnBeta.COM

(信息来源于网络,安华金和搜集整理) 

]]>
Thu, 09 Apr 2020 09:39:19 +0800 article-12089-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12088-1.html?utm_source=rss&utm_medium=rss article-12088-1.html?utm_source=rss&utm_medium=rss

使用循环和查找命令批量自动对多个文件进行一系列的操作。

人们希望学习批处理命令的一个普遍原因是要得到批处理强大的功能。如果你希望批量的对文件执行一些指令,构造一个可以重复运行在那些文件上的命令就是一种方法。在编程术语中,这被称作执行控制for 循环就是其中最常见的一种。

for 循环可以详细描述你希望计算机对你指定的每个数据对象(比如说文件)所进行的操作。

一般的循环

使用循环的一个简单例子是对一组文件进行分析。这个循环可能没什么用,但是这是一个安全的证明自己有能力独立处理文件夹里每一个文件的方法。首先,创建一个文件夹然后拷贝一些文件(例如 JPEG、PNG 等类似的文件)至文件夹中生成一个测试环境。你可以通过文件注册绑定卡送38器或者终端来完成创建文件夹和拷贝文件的操作:

$ mkdir example
$ cp ~/Pictures/vacation/*.{png,jpg} example

切换到你刚创建的那个新文件夹,然后列出文件并确认这个测试环境是你需要的:

$ cd example
$ ls -1
cat.jpg
design_maori.png
otago.jpg
waterfall.png

在循环中逐一遍历文件的语法是:首先声明一个变量(例如使用 f 代表文件),然后定义一个你希望用变量循环的数据集。在这种情况下,使用 * 通配符来遍历当前文件夹下的所有文件(通配符 * 匹配所有文件)。然后使用一个分号(;)来结束这个语句。

$ for f in * ;

取决于你个人的喜好,你可以选择在这里按下回车键。在语法完成前,shell 是不会尝试执行这个循环的。

接下来,定义你想在每次循环中进行的操作。简单起见,使用 file 命令来得到 f 变量(使用 $ 告诉 shell 使用这个变量的值,无论这个变量现在存储着什么)所存储着的文件的各种信息:

do file $f ;

使用另一个分号结束这一行,然后关闭这个循环:

done

按下回车键启动 shell 对当前文件夹下所有东西的遍历。for 循环将会一个一个的将文件分配给变量 f 并且执行你的命令:

$ for f in * ; do
> file $f ;
> done
cat.jpg: JPEG image data, EXIF standard 2.2
design_maori.png: PNG image data, 4608 x 2592, 8-bit/color RGB, non-interlaced
otago.jpg: JPEG image data, EXIF standard 2.2
waterfall.png: PNG image data, 4608 x 2592, 8-bit/color RGB, non-interlaced

你也可以用这种形式书写命令:

$ for f in *; do file $f; done
cat.jpg: JPEG image data, EXIF standard 2.2
design_maori.png: PNG image data, 4608 x 2592, 8-bit/color RGB, non-interlaced
otago.jpg: JPEG image data, EXIF standard 2.2
waterfall.png: PNG image data, 4608 x 2592, 8-bit/color RGB, non-interlaced

对你的 shell 来说,多行和单行的格式没有什么区别,并且会输出完全一样的结果。

一个实用的例子

下面是一个循环在日常使用中的实用案例。假如你拥有一堆假期拍的照片想要发给你的朋友。但你的照片太大了,无法通过电子邮件发送,上传到图片分享服务也不方便。因此你想为你的照片创建小型的 web 版本,但是你不希望花费太多时间在一个一个的压缩图片体积上。

首先,在你的 Linux、BSD 或者 Mac 上使用包注册绑定卡送38器安装 ImageMagick 命令。例如,在 Fedora 和 RHEL 上:

$ sudo dnf install ImageMagick

在 Ubuntu 和 Debian 上:

$ sudo apt install ImageMagick

在 BSD 上,使用 ports 或者 pkgsrc 安装。在 Mac 上,使用 Homebrew 或者 MacPorts 安装。

在你安装了 ImageMagick 之后,你就拥有一系列可以用来操作图片的新命令了。

为你将要创建的文件建立一个目标文件夹:

$ mkdir tmp

使用下面的循环可以将每张图片减小至原来大小的 33%。

$ for f in * ; do convert $f -scale 33% tmp/$f ; done

然后就可以在 tmp 文件夹中看到已经缩小了的照片了。

你可以在循环体中使用任意数量的命令,因此如果你需要对一批文件进行复杂的操作,可以将你的命令放在一个 for 循环的 dodone 语句之间。例如,假设你希望将所有处理过的图片拷贝至你的网站所托管的图片文件夹并且在本地系统移除这些文件:

$ for f in * ; do
  convert $f -scale 33% tmp/$f
  scp -i seth_web tmp/$f seth@example.com:~/public_html
  trash tmp/$f ;
done

你的计算机会对 for 循环中处理的每一个文件自动的执行 3 条命令。这意味着假如你仅仅处理 10 张图片,也会省下输入 30 条指令和更多的时间。

限制你的循环

一个循环常常不需要处理所有文件。在示例文件夹中,你可能需要处理的只是 JPEG 文件:

$ for f in *.jpg ; do convert $f -scale 33% tmp/$f ; done
$ ls -m tmp
cat.jpg, otago.jpg

或者,你希望重复特定次数的某个操作而不仅仅只处理文件。for 循环的变量的值是被你赋给它的(不管何种类型的)数据所决定的,所以你可以创建一个循环遍历数字而不只是文件:

$ for n in {0..4}; do echo $n ; done
0
1
2
3
4

更多循环

现在你了解的知识已经足够用来创建自己的循环体了。直到你对循环非常熟悉之前,尽可能的在需要处理的文件的副本上进行操作。使用内置的保护措施可以预防损坏自己的数据和制造不可复现的错误,例如偶然将一个文件夹下的所有文件重命名为同一个名字,就可能会导致他们的相互覆盖。

更进一步的 for 循环话题,请继续阅读。

不是所有的 shell 都是 Bash

关键字 for 是内置在 Bash shell 中的。许多类似的 shell 会使用和 Bash 同样的关键字和语法,但是也有某些 shell ,比如 tcsh,使用不同的关键字,例如 foreach

tcsh 的语法与 Bash 类似,但是它更为严格。例如在下面的例子中,不要在你的终端的第 2、3 行键入 foreach? 。它只是提示你仍处在构建循环的过程中。

$ foreach f (*)
foreach? file $f
foreach? end
cat.jpg: JPEG image data, EXIF standard 2.2
design_maori.png: PNG image data, 4608 x 2592, 8-bit/color RGB, non-interlaced
otago.jpg: JPEG image data, EXIF standard 2.2
waterfall.png: PNG image data, 4608 x 2592, 8-bit/color RGB, non-interlaced

在 tcsh 中,foreachend 都必须单独的在一行中出现。因此你不能像 Bash 或者其他类似的 shell 一样只使用一行命令创建一个 for 循环。

for 循环与 find 命令

理论上,你可能会用到不支持 for 循环的 shell,或者你只是更想使用其他命令的一些特性来完成和循环一样的工作。

使用 find 命令是另一个实现 for 循环功能的途径。这个命令提供了多种方法来定义循环中包含哪些文件的范围以及并行处理的选项。

find 命令顾名思义就是帮助你查询存储在硬盘里的文件。它的用法很简单:提供一个你希望它查询的位置的路径,接着 find 就会查询这个路径下面的所有文件和文件夹。

$ find .
.
./cat.jpg
./design_maori.png
./otago.jpg
./waterfall.png

你可以通过添加名称的某些部分来过滤搜索结果:

$ find . -name "*jpg"
./cat.jpg
./otago.jpg

find 命令非常好的地方在于你可以通过 -exec 参数标志将它查询到的每一个文件放入循环中。例如,只对存放在你的 example 文件夹下的 PNG 图片进行体积压缩操作:

$ find . -name "*png" -exec convert {} -scale 33% tmp/{} \;
$ ls -m tmp
design_maori.png, waterfall.png

-exec 短语中,括号 {} 表示的是 find 正在处理的条目(换句话说,每一个被找到的以 PNG 结尾的文件)。-exec 短语必须使用分号结尾,但是 Bash 中常常也会使用分号。为了解决这个二义性问题,你的 结束符 可以使用反斜杠加上一个分号(\;),使得 find 命令可以知道这个结束符是用来标识自己结束使用的。

find 命令的操作非常棒,某些情况下它甚至可以表现得更棒。比如说,在一个新的进程中使用同一条命令查找 PNG 文件,你可能就会得到一些错误信息:

$ find . -name "*png" -exec convert {} -flip -flop tmp/{} \;
convert: unable to open image `tmp/./tmp/design_maori.png':
No such file or directory @ error/blob.c/OpenBlob/2643.
...

看起来 find 不只是定位了当前文件夹(.)下的所有 PNG 文件,还包括已经处理并且存储到了 tmp 下的文件。在一些情况下,你可能希望 find 查询当前文件夹下再加上其子文件夹下的所有文件。find 命令是一个功能强大的递归网赌送彩金,特别体现在处理一些文件结构复杂的情境下(比如用来放置存满了音乐人音乐专辑的文件夹),同时你也可以使用 -maxdepth 选项来限制最大的递归深度。

只在当前文件夹下查找 PNG 文件(不包括子文件夹):

$ find . -maxdepth 1 -name "*png"

上一条命令的最大深度再加 1 就可以查找和处理当前文件夹及下一级子文件夹下面的文件:

$ find . -maxdepth 2 -name "*png"

find 命令默认是查找每一级文件夹。

循环的乐趣与收益

你使用的循环越多,你就可以越多的省下时间和力气,并且可以应对庞大的任务。虽然你只是一个用户,但是通过使用循环,可以使你的计算机完成困难的任务。

你可以并且应该就像使用其他的命令一样使用循环。在你需要重复处理单个或多个文件时,尽可能的使用这个命令。无论如何,这也算是一项需要被严肃对待的编程活动,因此如果你需要在一些文件上完成复杂的任务,你应该多花点时间在规划自己的工作流上面。如果你可以在一份文件上完成你的工作,接下来将操作包装进 for 循环里就相对简单了,这里面唯一的“编程”的需要只是理解变量是如何工作的并且进行充分的规划工作将已处理过的文件和未处理过的文件分开。经过一段时间的练习,你就可以从一名 Linux 用户升级成一位知道如何使用循环的 Linux 用户,所以开始让计算机为你工作吧!


via: https://opensource.com/article/19/6/how-write-loop-bash

作者:Seth Kenlon 选题:lujun9972 译者:chunibyo-wly 校对:wxy

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

]]>
Wed, 08 Apr 2020 22:57:54 +0800 article-12088-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12087-1.html?utm_source=rss&utm_medium=rss article-12087-1.html?utm_source=rss&utm_medium=rss

本文是 Python 之禅特别系列的第三篇,此篇着眼于其中第五与第六条原则:扁平与稀疏。

Python 之禅 之所以得名,正是由于它那简明扼要的规则被设计出的意图在于让读者进行深入地思考,而绝不单是为编程提供一份易于遵守的指南。

读后不去三思其意,断然难以体会 Python 之禅的妙处。倘若 Python 之禅仅仅罗列出一组清晰的法则,那法则之间的矛盾是一种缺憾,然而作为引导读者沉思最优方案沉思的网赌送彩金,矛盾却是绝佳的。

扁平胜过嵌套Flat is better than nested

迫于对缩进的强硬要求,Python 对“扁平化”的需求显然远超它者。其余编程语言为了缓解对缩进的需求,通常会在嵌套结构里加入一种“作弊”的手段。为了理解这一点,不妨一同来看看 JavaScript。

JavaScript 本质上是异步的,这意味着程序员用 JavaScript 写的代码会用到大量的回调函数。

a(function(resultsFromA) {
  b(resultsFromA, function(resultsfromB) {
    c(resultsFromC, function(resultsFromC) {
      console.log(resultsFromC)
   }
  }
}

忽略这段代码的具体内容,只去观察这段代码的形状与缩进带来一个最右边的点的方式。这种独特的“箭头”图形在我们扫看代码时格外扎眼,这种写法也因此被视作不可取,甚至得到了“回调地狱”的绰号。不过,在 JavaScript 中,这种反映嵌套关系的缩进可以通过“作弊”来回避。

a(function(resultsFromA) {
b(resultsFromA,
  function(resultsfromB) {
c(resultsFromC,
  function(resultsFromC) {
    console.log(resultsFromC)
}}}

Python 并没有提供这种作弊手段:每一级嵌套在代码中都如实的对应着一层缩进。因此,Python 深层的嵌套关系在视觉上也一定是深层嵌套的。这使得“回调地狱”的问题对于 Python 而言要比在 JavaScript 中严重得多:嵌套的回调函数必定带来缩进,而绝无使用花括号来“作弊”的可能。

这项挑战与 Python 之禅的指导原则相结合后,在我参与的库中催生出了一个优雅的解决方案。我们在 Twisted 框架里提出了 deferred 抽象,日后 JavaScript 中流行的 promise 抽象亦是受其启发而生。正是由于 Python 对整洁代码的坚守,方能推动 Python 开发者去发掘新的、强力的抽象。

future_value = future_result()
future_value.addCallback(a)
future_value.addCallback(b)
future_value.addCallback(c)

(现代 JavaScript 程序员也许会觉得这段代码十分眼熟:promise 着实受到了 Twisted 里 deferred 抽象的深远影响。)

稀疏胜过密集Sparse is better than dense

最易降低代码密集程度的方法是引入嵌套。这种习惯也正是有关稀疏的原则要随着前一条提出的原因:在竭尽所能地减少嵌套之后,我们往往会遗留下密集的代码或数据结构。此处的密集,是指塞进过量信息的小段代码,它们会导致错误发生后的解析变得困难。

这种密集性唯有通过创造性的思考方可改善,此外别无捷径。Python 之禅并不为我们提供简单的解决方案,它只会指明改善代码的方向,而非提供“如何”去做的向导。

起身走走,泡个热水澡,抑或是闻闻花香。盘坐冥思,直至灵感袭来。当你终于得到启发,便是动身写代码之时。


via: https://opensource.com/article/19/12/zen-python-flat-sparse

作者:Moshe Zadka 选题:lujun9972 译者:caiichenr 校对:wxy

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

]]>
Wed, 08 Apr 2020 19:18:27 +0800 article-12087-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12086-1.html?utm_source=rss&utm_medium=rss article-12086-1.html?utm_source=rss&utm_medium=rss 无论是 Nvidia 还是 Radeon 或者 Intel,它们的显卡都可能在 Linux 中有问题。当你要对图形问题进行故障排除时,首先要了解系统中装有哪种显卡。

Linux 有几个命令可以检查硬件信息。你可以使用它们来检查你有哪些显卡(也称为视频卡)。让我向你展示一些命令来获取 Linux 中的 GPU 信息。

在 Linux 命令行中检查显卡详细信息

使用 lspci 命令查找显卡

lspci 命令显示通过 PCI外设组件互连Peripheral Component Interconnect)总线连接的设备的信息。基本上,此命令提供有关系统从键盘和鼠标到声卡、网卡和显卡的所有外设的详细信息。

默认情况下,你会有大量的此类外设列表。这就是为什么你需要用 grep 命令过滤出显卡的原因:

lspci | grep VGA

这应该会显示一行有关你显卡的信息:

abhishek@itsfoss:~$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)

如你所见,我的系统中有 Intel HD 620 显卡。

在 Linux 中使用 lshw 命令获取显卡详细信息

lspci 命令足以查看你的显卡,但是并不能告诉你很多信息。你可以使用 lshw 命令获取有关它的更多信息。

此命令要求你有 root 用户权限。你需要以这种方式查找视频卡(显卡)信息:

sudo lshw -C video

正如你在下面的输出中看到的那样,此命令提供了有关显卡的更多信息,例如时钟频率、位宽、驱动等。

abhishek@itsfoss:~$ sudo lshw -C video
[sudo] password for abhishek:
  *-display
       description: VGA compatible controller
       product: HD Graphics 620
       vendor: Intel Corporation
       physical id: 2
       bus info: [email protected]:00:02.0
       version: 02
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:139 memory:db000000-dbffffff memory:90000000-9fffffff ioport:f000(size=64) memory:c0000-dffff

附赠技巧:以图形方式检查显卡详细信息

并非必须使用命令行在 Linux 中查找显卡详细信息。大多数 Linux 发行版(或者应该说是桌面环境)在设置中提供了必要的详细信息。

例如,如果你使用的是 GNOME 桌面环境,那么可以进入“设置”的“关于”部分来检查详细信息。Ubuntu 20.04 中看上去像这样:

Graphics card information check graphically

我希望这个快速技巧对你有所帮助。你也可以使用相同的命令来查找网卡Linux 中的 CPU 信息

如果你有任何疑问或建议,请随时发表评论。


via: https://itsfoss.com/check-graphics-card-linux/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

]]>
Wed, 08 Apr 2020 13:41:54 +0800 article-12086-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12085-1.html?utm_source=rss&utm_medium=rss article-12085-1.html?utm_source=rss&utm_medium=rss

Ubuntu 20.04 LTS 版本还有不到一个月就发布了,Ubuntu 在这一个版本中对视觉效果作出了大变动,同时在性能方面也有所提高。

如果你还在使用 Ubuntu 18.04 LTS 版本,你会发现 Ubuntu 20.04 配合深色 Yaru 主题非常惊艳,看过 Ubuntu 20.04 的展示视频你就知道了。

感觉确实不错。如果你想在 4 月 23 日最终稳定版正式发布前率先使用 Ubuntu 20.04,也可以在官方网站上下载 beta 版本。尽管是测试版本,但它的稳定性并不差,同时你也可以在使用这个版本的过程中帮助 Ubuntu 团队进行测试。

你可以下载每日构建daily build版并进行重新安装,如果你正在使用的是 Ubuntu 18.04 或 Ubuntu 19.10,也可以在现有系统的基础上直接升级到 Ubuntu 20.04 beta 版本。

从现有系统中升级是很方便的,因为你不会丢失系统设置和其他文件。与重新安装不同的是,你不需要从头开始重新安装所有的软件。当你切换到新版本时,你的主目录、应用程序(大部分)、文件都会保持原样。

如果你需要确认正在使用的 Ubuntu 版本,可以参考这篇文章

在本文中,我将会介绍如何升级到 Ubuntu 20.04 beta 版本。

如何将 Ubuntu 18.04/19.10 升级到 Ubuntu 20.04 beta

在你阅读后面的内容之前,我首先说明一些关于升级到 Ubuntu beta 版本的常见问题。

  • 版本升级的过程并不复杂,但在整个过程中需要有良好的网络连接,以便下载高达好几 GB 的数据。
  • 版本升级的过程中,第三方存储库(比如你自行添加的 PPA)会被禁用,有些 PPA 可能也和新版本不兼容,在版本升级完毕后,你可以手动启用这些 PPA。
  • 强烈建议将重要数据备份到外部的 USB 硬盘上。你只需要将各个目录下的重要文件直接复制到外部 USB 硬盘上保存即可。
  • 升级到新版本之后,就无法再回滚到之前的旧版本了,如果需要旧版本的系统,只能重新安装。
  • 如果你选择升级到 Ubuntu 20.04 beta 版本,那么在 Ubuntu 20.04 最终稳定版发布之后,你也不需要重新安装。只需要保持定期更新 Ubuntu 系统,届时你就可以直接用上最终稳定版了。
  • Ubuntu 16.04/17/18/19.04 都无法直接升级到 Ubuntu 20.04。

了解完上面的内容之后,下面开始从 Ubuntu 18.04/19.10 升级到 Ubuntu 20.04。

步骤 1:检查设置是否正确

进入“软件和升级Software & Updates”应用:

Software & Updates application in Ubuntu

在“升级Updates”选项卡中,设置“有任何新版本 Ubuntu 都提醒我”或“有 LTS 版本 Ubuntu 就提醒我”:

Ubuntu Upgrade Version Settings

设置完成后,系统会刷新软件库缓存。

步骤 2:安装系统更新

在上面的步骤完成之后,打开终端(在 Ubuntu 中可以使用 Ctrl+Alt+T 快捷键),然后使用以下命令更新 Ubuntu 系统

sudo apt update && sudo apt full-upgrade

apt full-upgradeapt dist-upgrade 的功能和 apt upgrade 大致相同,但对于系统版本的升级,apt full-upgrade 会在需要的情况下将当前已安装的软件移除掉。

更新安装完成后,系统可能会需要重新启动。在重新启动之后,就可以进入步骤 3 了。

步骤 3:使用更新注册绑定卡送38器查找开发版本

在步骤 2 中已经安装了所有必要的更新,现在通过下面的命令打开更新注册绑定卡送38器,其中 -d 参数表示需要查找开发版本:

update-manager -d

整个过程可能需要好几分钟,随后会提示有新版本的 Ubuntu 可用:

Availability of Ubuntu 20.04 in Ubuntu 19.10

在 Ubuntu 18.04 上的提示是这样的:

Availability of Ubuntu 20.04 in Ubuntu 18.04

然后点击对话框中的“升级upgrade”按钮。

步骤 4:开始升级到 Ubuntu 20.04 beta

接下来只要等待下载更新就可以了,遇到对话框直接点击 “OK” 即可。

点击“升级upgrade”按钮,然后按照提示进行操作。

在升级过程中,可能会有提示信息告知所有第三方源都已经禁用。有时候还会提示有哪些软件包需要升级或删除,以及是否需要保留一些已经过时了的软件包。一般情况下,我会选择直接删除。

整个升级过程通常会需要几个小时,但主要还是取决于实际的网速。升级完成后,系统会提示需要重新启动。

下面的视频展示了所有相关步骤。

由此可见,这个升级流程并不复杂。欢迎体验 Ubuntu 20.04 带来的新特性。

如果你有疑问或建议,欢迎在评论区留言。


via: https://itsfoss.com/upgrade-ubuntu-beta/

作者:Abhishek Prakash 选题:lujun9972 译者:HankChow 校对:wxy

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

]]>
Wed, 08 Apr 2020 12:51:36 +0800 article-12085-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12084-1.html?utm_source=rss&utm_medium=rss article-12084-1.html?utm_source=rss&utm_medium=rss

最近炙手可热的视频会议软件 Zoom 的首席执行官袁征在周日(4月6日)在美国有线电视新闻网(CNN)上表示,“我们的步伐太快了……我们有些失误。我们已经吸取了教训,放缓脚步专注于隐私和安全性。”

此番言论是在 Zoom 爆出重大安全漏洞后发表的。近日,华盛顿邮报报道出 Zoom 存在的重大安全漏洞,数以万计的私人 Zoom 视频被上传至公开网页,任何人都可在线围观。向华盛顿邮报爆料的是美国国家安全局的前研究员 Patrick Jackson,他爆料称在开放的云存储空间中一次性搜到了 15000 个 Zoom 视频。其中还有所有参会人员的名字和电话号码,以及更多的个人可识别信息。

袁征之前就已经在接受采访时表示,他有义务重新赢得用户的信任。

Zoom 已经在 4 月 2 日宣布将暂停功能更新 90 天,以专注于完善隐私和安全性,

相关报道显示,有关 Zoom 的安全问题已迫使包括纽约市在内的某些学区禁止使用 Zoom 平台来网上授课。纽约邮报报道称,纽约市教育局已经发布通知,开始使用 Zoom 竞争对手 Microsoft Teams 进行网上授课。

来源:FX168

更多资讯

微软分享让 Folding@Home 运行更加安全的 PowerShell 沙箱脚本

作为一家软件巨头,微软已经积极投身于这方面的工作。但除了分享已有的硬件算力和专家技术资源,该公司还希望帮助每一位投入 Folding@Home 项目的个人。为使之更安全地分享算力,该公司已经特地分享了一段 PowerShell 脚本,以允许用户在 Windows 沙箱上运行 Folding @ Home 客户端。

来源:FX168

世卫组织非洲举办黑客马拉松 为获胜者提供种子资金来对抗 COVID-19

世界卫生组织正在非洲举行虚拟黑客马拉松,并为决赛选手提供高达 2 万美元的种子基金,以提供数字化解决方案来阻止 COVID-19 流行。世卫组织技术官员 Moredeck Chibi 对 TechCrunch 表示,联合国机构区域办事处已于本月初完成了首个挑战,并将在未来几周内为非洲法语国家举办第二次挑战。

来源:cnBeta.COM

Apache HTTP Server 2.4.43 发布 修复安全漏洞

Apache HTTP Server 2.4.43 稳定版已发布,此版本主要是修复安全漏洞以及内存泄露相关的错误。Apache HTTP Server(简称 Apache)是开源的 Web 服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编译到服务器中。

来源:开源中国

 (信息来源于网络,安华金和搜集整理) 

]]>
Wed, 08 Apr 2020 12:25:00 +0800 article-12084-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12083-1.html?utm_source=rss&utm_medium=rss article-12083-1.html?utm_source=rss&utm_medium=rss

美国时间 2020 年 4 月 6 日,红帽宣布任命 Paul Cormier 为红帽总裁兼 CEO,即日起生效。Cormier 此前曾担任红帽产品和技术总裁,此次将接替 Jim Whitehurst 的工作,后者现在已成为 IBM 总裁。

自 2001 年加入红帽以来,Cormier 用自己的领导力和远见,推动公司实现了重大战略转型,并不断扩大产品和服务的范围。Cormier 开创了订阅模式,使得红帽从开源颠覆者成为企业的技术支柱,让红帽 Linux 从一款可免费下载的操作系统转变为红帽企业 Linux,如今更成为业界领先的企业级 Linux 平台,为超过 90% 的全球财富 500 强企业提供支持。

Cormier 已经在红帽促成 25 宗收购,把公司的业务从 Linux 延伸到更多领域,并推动创建了一个基于开源创新的全面、现代化的 IT 堆栈,从而颠覆了 IT 行业。红帽通过跨技术堆栈提供真正的企业级开源产品和不断变化的业务模式,使开源成为软件行业真正的创新来源,因此比专有供应商提供的软件更新得更快。

十多年来,Cormier 一直倡导开放混合云的愿景,让客户能够灵活地从边缘和裸机到多个公有云,通过任何基础设施以通用、一致的方式交付任何应用。这一愿景使得红帽 OpenShift 这一业界最全面的企业 Kubernetes 平台,确立了其作为跨行业混合云部署核心的地位。Cormier 还达成了众多足以改变行业的合作伙伴关系,比如与微软的里程碑式合作伙伴关系,就为混合云部署带来更多选择。他在红帽与 IBM 的合并中发挥了重要作用,主要负责让红帽扩大规模、加快发展,同时保持应有的独立性和中立性。 

在红帽公司任职期间,Whitehurst 负责推动红帽公司的业务,不断提升红帽在整个科技行业的影响力。在他的领导下,公司 2018 财年收入从数年前的 5 亿多美元增长到近 30 亿美元,IBM 则在 2019 年以 340 亿美元收购红帽,创下新的里程碑。此外,红帽 6 次入选福布斯“全球最具创新能力公司”榜单,并在 2019 年和 2020 年入选《财富》最受赞赏公司榜单。除了担任 IBM 总裁的新职务以外,Whitehurst 还将接替 Arvind Krishna 成为红帽公司董事会主席,而后者现任 IBM 首席执行官一职。 

支持证言

Paul Cormier, 红帽总裁兼 CEO

“当我加入红帽时,很难预测 Linux 和开源将如何改变我们的世界,但它们确实无处不在。我所看到的行业变革令人兴奋,因为它们带来了新的挑战和机遇。红帽面临着前所未有的机遇,我很荣幸带领公司帮助我们的客户解决他们的挑战,让红帽继续走在创新的前沿。”

Arvind Krishna,IBM CEO

“开源和混合云是我们这个行业的两大驱动力,而红帽就是它们的代名词。Paul 具备深厚的工程技术、产品专业知识和行业愿景,是最合适的领导者,他将利用这一机会,推动红帽持续进行技术创新,加速实现增长。”

Jim Whitehurst, IBM 总裁

“在与他密切合作十多年后,我可以确定地说,Paul 领导红帽水到渠成。近 20 年来,他一直驱动着红帽产品战略的推进,一直密切参与制定公司的发展方向,非常了解如何帮助客户和合作伙伴充分利用其云战略。他是一位公认的领导者,他对开源原则和工作方式的奉行,不仅能让红帽跟上企业IT的需求,更将在新兴技术进入主流时引领潮流。我很荣幸能领导红帽这家公司,公司里有我们这个行业最优秀、最聪明的人,我很期待看到红帽人在Paul的领导下取得新的成就。”

更多资源

关于红帽

红帽公司是世界领先的企业开源软件解决方案供应商,以社区推动的方法提供可靠和高性能的 Linux、混合云、容器和 Kubernetes 技术。红帽公司帮助客户整合新的和现有的 IT 应用,开发云原生应用,标准化业界领先的操作系统,并能自动化、保护及注册绑定卡送38各种复杂环境。红帽还提供屡获殊荣的技术支持、培训和咨询服务,优质的服务让红帽成为《财富》500 强企业信赖的顾问。作为云提供商、系统集成商、应用供应商、客户以及开源社区的战略合作伙伴,红帽公司能够帮助企业为数字化未来做好准备。更多信息,请登录 www.redhat.com 。 

]]>
Wed, 08 Apr 2020 12:07:00 +0800 article-12083-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12082-1.html?utm_source=rss&utm_medium=rss article-12082-1.html?utm_source=rss&utm_medium=rss

本文是 24 天 Linux 桌面特别系列的一部分。Fluxbox 对系统资源的占用非常轻量,但它拥有重要的 Linux 桌面功能,让你的用户体验轻松、高效、快捷。

桌面的概念可谓是仁者见仁智者见智。很多人把桌面看作一个家的基地,或者一个舒适的客厅,甚至是一个字面意义上的桌面,在其中放置着他们经常使用的记事本、最好的笔和铅笔,还有他们最喜欢的咖啡杯。KDE、 GNOME、Pantheon 等等在 Linux 上提供了这种舒适的生活方式。

但是对一些用户来说,桌面只是一个空荡荡的显示器空间,这是还没有任何可以自由浮动的应用程序窗口直接投射到他们的视网膜上的副作用。对于这些用户来说,桌面是一个空的空间,他们可以在上面运行应用程序 —— 无论是大型办公软件和图形套件,还是一个简单的终端窗口,或是来注册绑定卡送38服务的托盘小程序。这种操作 POSIX 计算机的模式由来已久,该家族树的一支是 *box 窗口注册绑定卡送38器:Blackbox、Fluxbox 和 Openbox。

Fluxbox 是一个 X11 系统的窗口注册绑定卡送38器,它基于一个较老的名为 Blackbox 的项目。当我发现 Linux 时,Blackbox 的开发已进入衰退期,因此我就喜欢上了 Fluxbox ,此后我至少在一个以上的常用的系统上使用过它。它是用 C++ 编写的,并在 MIT 开源许可证下授权。

安装 Fluxbox

你很可能会在你的 Linux 发行版的软件库中找到 Fluxbox,但是你也可以在 Fluxbox.org 上找到它。如果你正在运行另外一个桌面,在同一个系统上安装 Fluxbox 是安全的,因为 Fluxbox 不会预设任何配置或附带的应用程序。

在安装 Fluxbox 后,注销你当前的桌面会话,以便你可以登录一个新的桌面会话。默认情况下,你的桌面会话注册绑定卡送38器 (KDM、GDM、LightDM 或 XDM,取决于你的安装设置) 将继续让登录到之前的桌面,所以你在登录前必需要覆盖上一个桌面。

使用 GDM 覆盖一个桌面:

在 GDM 中选择你的桌面会话

或者使用 KDM:

使用 KDM 选择你的桌面会话

配置 Fluxbox 桌面

当你第一次登录到桌面时,屏幕基本是空的,因为 Fluxbox 提供的所有东西是面板(用于任务栏、系统托盘等等)和用于应用程序窗口的窗口装饰品。

在 CentOS 7 上的默认 Fluxbox 配置

如果你的发行版提供一个简单的 Fluxbox 桌面,你可以使用 feh 命令(你可能需要从你的发行版的软件库中安装它)来为你的桌面设置背景。这个命令有几个用于设置背景的选项,包括使用你选择的墙纸来填充屏幕的 --bg-fill 选项,来按比例缩放的 --bg-scale 等等选项。

$ feh --bg-fill ~/photo/oamaru/leaf-spiral.jpg

应用主题的 Fluxbox

默认情况下,Fluxbox 自动生成一个菜单,在桌面上任意位置右键单击可用该菜单,这给予你访问应用程序的能力。根据你的发行版的不同,这个菜单可能非常小,也可能列出 /usr/share/applications 目录中的所有启动程序。

Fluxbox 配置是在文本文件中设置的,这些文本文件包含在 $HOME/.fluxbox 目录中。你可以:

  • keys 中设置键盘快捷键
  • startup 中启动的服务和应用程序
  • init 设置桌面首选项(例如工作区数量、面板位置等等)
  • menu 中设置菜单项

该文本配置文件非常易于推断,但是你也可以(并且是应该)阅读 Fluxbox 的文档

例如,这是我的典型菜单(或者说至少有它的基本结构):

# 为使用你自己的菜单,复制这些文本到 ~/.fluxbox/menu,然后编辑
# ~/.fluxbox/init ,并更改 session.menuFile 文件路径到 ~/.fluxbox/menu

[begin] (fluxkbox)
 [submenu] (apps) {}
  [submenu] (txt) {}
   [exec] (Emacs 23 (text\)) { x-terminal-emulator -T "Emacs (text)" -e /usr/bin/emacs -nw} <>
   [exec] (Emacs (X11\)) {/usr/bin/emacs} <>
   [exec] (LibreOffice) {/usr/bin/libreoffice}
  [end]
  [submenu] (code) {}
   [exec] (qtCreator) {/usr/bin/qtcreator}
   [exec] (eclipse) {/usr/bin/eclipse}
  [end]
  [submenu] (graphics) {}
   [exec] (ksnapshot) {/usr/bin/ksnapshot}
   [exec] (gimp) {/usr/bin/gimp}
   [exec] (blender) {/usr/bin/blender}
  [end]
  [submenu] (files) {}
   [exec] (dolphin) {/usr/bin/dolphin}
   [exec] (konqueror) { /usr/bin/kfmclient openURL $HOME }
  [end]
  [submenu] (network) {}
   [exec] (firefox) {/usr/bin/firefox}
   [exec] (konqueror) {/usr/bin/konqueror}
  [end]
 [end]
## 更改窗口注册绑定卡送38器或工作环境
[submenu] (environments) {}
 [restart] (flux)  {/usr/bin/startfluxbox}
 [restart] (ratpoison)  {/usr/bin/ratpoison}
 [exec] (openIndiana) {/home/kenlon/qemu/startSolaris.sh}
[end]

[config] (config)
 [submenu] (styles) {}
  [stylesdir] (/usr/share/fluxbox/styles)
  [stylesdir] (~/.fluxbox/styles)
 [end]
[workspaces] (workspaces)
[reconfig] (reconfigure)
[restart] (restart)
[exit] (exeunt)
[end]

该菜单也提供一些首选项设置,例如,选择一个主题,从 Fluxbox 会话中重启或注销的能力。

我使用键盘快捷键来启动大多数的应用程序,这些快捷键写入到 keys 配置文件中。这里有一些示例(Mod4 按键是 Super 键,我使用其来指定全局快捷键):

# 打开应用程序
Mod4 t :Exec konsole
Mod4 k :Exec konqueror
Mod4 z :Exec fbrun
Mod4 e :Exec emacs
Mod4 f :Exec firefox
Mod4 x :Exec urxvt
Mod4 d :Exec dolphin
Mod4 q :Exec xscreensaver-command -activate
Mod4 3 :Exec ksnapshot

在这些快捷方式和一个打开的终端之间,在我工作日的大部分时间内很少使用鼠标,因此从一个控制器切换到另一个控制器不会浪费时间。并且因为 Fluxbox 很好地避开了控制器之间切换的方法,因此在其中操作没有一丝干扰。

为什么你应该使用 Fluxbox

Fluxbox 对系统资源的占用非常轻量,但是它拥有重要的功能,可以使你的用户体验轻松、快速、高效。它很容易定制,并且允许你定义你自己的工作流。你不必使用 Fluxbox 的面板,因为还有其它优秀的面板。你甚至可以鼠标中键点击并拖动两个独立的应用程序窗口到彼此之中,以便它们成为一个窗口,每个窗口都有自己的选项卡。

可能性是无穷的,所以今天就在你的 Linux 上尝试一下 Fluxbox 的简单稳定吧!


via: https://opensource.com/article/19/12/fluxbox-linux-desktop

作者:Seth Kenlon 选题:lujun9972 译者:robsean 校对:wxy

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

]]>
Tue, 07 Apr 2020 11:33:56 +0800 article-12082-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12081-1.html?utm_source=rss&utm_medium=rss article-12081-1.html?utm_source=rss&utm_medium=rss

将流量引入 Kubernetes 树莓派集群的分步指南。

在本文中,我们将部署几个简单的网站,并学习如何使用 Traefik 将来自外部世界的流量引入到我们的集群中。之后,我们还将学习如何删除 Kubernetes 资源。让我们开始吧!

准备

要继续阅读本文,你只需要我们在上一篇文章中构建的 k3s 树莓派集群。由于你的集群将从网络上拉取镜像,因此该集群需要能够访问互联网。

出于解释目的,本文将显示一些配置文件和示例 HTML 文件。所有示例文件都可以在此处下载。

部署一个简单的网站

之前,我们使用 kubectl 进行了直接部署。但是,这不是典型的部署方法。一般情况都会使用 YAML 配置文件,这也是我们要在本文中使用的配置文件。我们将从顶部开始,并以自顶向下的方式创建该配置文件。

部署配置

首先是部署配置。配置如下所示,并在下面进行说明。我通常以 Kubernetes 文档中的示例为起点,然后根据需要对其进行修改。例如,下面的配置是复制了部署文档中的示例后修改的。

创建一个文件 mysite.yaml,其内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysite-nginx
  labels:
    app: mysite-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysite-nginx
  template:
    metadata:
      labels:
        app: mysite-nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

其中大部分是样板。重要的部分,我们会将该部署命名为 mysite-nginx,并为其加上同名的 app 标签。我们指定了一个副本replica,这意味着将只创建一个 Pod。我们还指定了一个容器,我们将其命名为 nginx。我们将镜像image指定为 nginx。这意味着在部署时,k3s 将从 DockerHub 下载 nginx 镜像并从中创建一个 Pod。最后,我们指定了容器端口containerPort80,这只意味着在容器内部 Pod 会监听 80 端口。

我在上面强调了“在容器内部”,因为这是一个重要的区别。由于我们是按容器配置的,因此只能在容器内部访问它,并且进一步将其限制为内部网络。这对于允许多个容器在同一容器端口上监听所是必要的。换句话说,通过这种配置,其他一些 Pod 也可以在其容器端口 80 上侦听,并且不会与此容器冲突。为了提供对该 Pod 的正式访问权限,我们需要一个服务service配置。

服务配置

在 Kubernetes 中,服务service是一种抽象。它提供了一种访问 Pod 或 Pod 集合的方法。当连接到服务时,服务会路由到单个 Pod,或者如果定义了多个 Pod 副本,会通过负载均衡路由到多个 Pod。

可以在同一配置文件中指定该服务,这就是我们将在此处要做的。用 --- 分隔配置区域,将以下内容添加到 mysite.yaml 中:

---
apiVersion: v1
kind: Service
metadata:
  name: mysite-nginx-service
spec:
  selector:
    app: mysite-nginx
  ports:
    - protocol: TCP
      port: 80

在此配置中,我们将服务命名为 mysite-nginx-service。我们提供了一个选择器selectorapp: mysite-nginx。这是服务选择其路由到的应用程序容器的方式。请记住,我们为容器提供了 app 标签:mysite-nginx 。这就是服务用来查找我们的容器的方式。最后,我们指定服务协议为 TCP,在端口 80 上监听。

入口配置

入口Ingress配置指定了如何将流量从集群外部传递到集群内部的服务。请记住,k3s 预先配置了 Traefik 作为入口控制器。因此,我们将编写特定于 Traefik 的入口配置。将以下内容添加到 mysite.yaml 中(不要忘了用 --- 分隔):

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: mysite-nginx-ingress
  annotations:
    kubernetes.io/ingress.class: "traefik"
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: mysite-nginx-service
          servicePort: 80

在此配置中,我们将入口记录命名为 mysite-nginx-ingress。我们告诉 Kubernetes,我们希望 traefik 成为我们的入口控制器,再加上 kubernetes.io/ingress.class 的注解。

规则rules部分中,我们基本上是说,当 http 流量进入时,并且 path 匹配 /(或其下的任何内容),将其路由到由 serviceName mysite-nginx-service 指定的后端backend服务中,并将其路由到 servicePort 80。这会将传入的 HTTP 流量连接到我们之前定义的服务。

需要部署的东西

就配置而言,就是这样了。如果我们现在部署,我们将获得默认的 nginx 页面,但这不是我们想要的。让我们创建一些简单但可自定义的部署方式。创建具有以下内容的文件 index.html

<html>
<head><title>K3S!</title>
  <style>
    html {
      font-size: 62.5%;
    }
    body {
      font-family: sans-serif;
      background-color: midnightblue;
      color: white;
      display: flex;
      flex-direction: column;
      justify-content: center;
      height: 100vh;
    }
    div {
      text-align: center;
      font-size: 8rem;
      text-shadow: 3px 3px 4px dimgrey;
    }
  </style>
</head>
<body>
  <div>Hello from K3S!</div>
</body>
</html>

我们尚未介绍 Kubernetes 中的存储机制,因此在这里我们偷懒一下,仅将该文件存储在 Kubernetes 配置映射中。这不是我们推荐的部署网站的方式,但对于我们的目的来说是可行的。运行以下命令:

kubectl create configmap mysite-html --from-file index.html

该命令从本地文件 index.html 创建名为 mysite-html配置映射configmap资源。这实际上是在 Kubernetes 资源中存储一个文件(或一组文件),我们可以在配置中调出该文件。它通常用于存储配置文件(因此而得名),我们在这里稍加滥用。在以后的文章中,我们将讨论 Kubernetes 中适当的存储解决方案。

创建配置映射后,让我们将其挂载在我们的 nginx 容器中。我们分两个步骤进行。首先,我们需要指定一个volume来调出配置映射。然后我们需要将该卷挂载到 nginx 容器中。通过在 mysite.yaml 中的 container 后面的 spec 标签下添加以下内容来完成第一步:

      volumes:
      - name: html-volume
        configMap:
          name: mysite-html

这告诉 Kubernetes 我们要定义一个名为 html-volume 的卷,并且该卷应包含名为 html-volume(我们在上一步中创建的)的配置映射的内容。

接下来,在 nginx 容器规范中的端口ports下方,添加以下内容:

        volumeMounts:
        - name: html-volume
          mountPath: /usr/share/nginx/html

这告诉 Kubernetes,对于 nginx 容器,我们想在容器中的 /usr/share/nginx/html 路径上挂载名为 html-volume 的卷。 为什么要使用 /usr/share/nginx/html?那个位置就是 nginx 镜像提供 HTML 服务的地方。通过在该路径上挂载卷,我们用该卷内容替换了默认内容。

作为参考,配置文件的 deployment 部分现在应如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysite-nginx
  labels:
    app: mysite-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysite-nginx
  template:
    metadata:
      labels:
        app: mysite-nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - name: html-volume
          mountPath: /usr/share/nginx/html
      volumes:
      - name: html-volume
        configMap:
          name: mysite-html

部署它!

现在我们准备部署! 我们可以这样做:

kubectl apply -f mysite.yaml

你应该看到类似于以下内容:

deployment.apps/mysite-nginx created
service/mysite-nginx-service created
ingress.networking.k8s.io/mysite-nginx-ingress created

这意味着 Kubernetes 为我们指定的三个配置分别创建了资源。使用以下方法检查 Pod 的状态:

kubectl get pods

如果看到状态为 ContainerCreating,请给它一些时间并再次运行 kubectl get pods。通常,第一次会花一些时间,因为 k3s 必须下载 nginx 镜像来创建 Pod。一段时间后,你应该看到 Running 的状态。

尝试一下!

Pod 运行之后,就该尝试了。打开浏览器,然后在地址栏中输入 kmaster

恭喜你!你已经在 k3s 集群上部署了一个网站!

另一个

因此,现在我们有了一个运行单个网站的整个 k3s 集群。但是我们可以有更多的网站!如果我们要在同一集群中提供另一个网站怎么办?让我们看看如何做到这一点。

同样,我们需要部署一些东西。碰巧我的狗有一条她想让全世界都知道的信息,她想了好久了。因此,我专门为她制作了一些 HTML(可从示例 zip 文件中获得)。同样,我们将使用配置映射的技巧来托管这些 HTML。这次我们将把整个目录(html 目录)放到配置映射中,但是调用是相同的。

kubectl create configmap mydog-html --from-file html

现在,我们需要为此站点创建一个配置文件。它几乎与用于 mysite.yaml 的完全相同,因此首先将 mysite.yaml 复制为 mydog.yaml。现在将 mydog.yaml 修改为:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mydog-nginx
  labels:
    app: mydog-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mydog-nginx
  template:
    metadata:
      labels:
        app: mydog-nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - name: html-volume
          mountPath: /usr/share/nginx/html
      volumes:
      - name: html-volume
        configMap:
          name: mydog-html
---
apiVersion: v1
kind: Service
metadata:
  name: mydog-nginx-service
spec:
  selector:
    app: mydog-nginx
  ports:
    - protocol: TCP
      port: 80
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: mydog-nginx-ingress
  annotations:
    kubernetes.io/ingress.class: "traefik"
    traefik.frontend.rule.type: PathPrefixStrip
spec:
  rules:
  - http:
      paths:
      - path: /mydog
        backend:
          serviceName: mydog-nginx-service
          servicePort: 80

我们只需进行搜索并将 mysite 替换为 mydog即可完成大多数修改。其他两个修改在入口部分中。我们将 path 更改为 /mydog,并添加了一个注解 traefik.frontend.rule.type: PathPrefixStrip

/mydog 路径的规范指示 Traefik 将以 /mydog 路径开头的所有传入请求路由到 mydog-nginx-service。任何其他路径将继续路由到 mysite-nginx-service

新的注解 PathPrefixStrip 告诉 Traefik 在将请求发送到 mydog-nginx-service 之前先去除前缀 /mydog。我们这样做是因为 mydog-nginx 应用程序不需要前缀。这意味着我们可以简单地通过更改入口记录中的前缀来更改挂载的服务的位置。

现在我们可以像以前一样进行部署:

kubectl apply -f mydog.yaml

现在,我的狗的消息应该可以在 http://kmaster/mydog/ 上找到。

呼!消息发出去了!也许今晚我们都可以睡一觉。

因此,现在,我们有了一个 k3s 集群,该集群托管了两个网站,Traefik 根据路径名决定将请求传递给哪个服务!但是,不仅限于基于路径的路由,我们也可以使用基于主机名的路由,我们将在以后的文章中进行探讨。

另外,我们刚刚托管的网站是标准的未加密 HTML 网站,而如今的所有内容都使用 SSL/TLS 加密。在我们的下一篇文章中,我们将为 k3s 集群添加支持以托管 SSL/TLS HTTPS 站点!

清理

在开始之前,由于本文主要涉及的是示例站点,因此我想向你展示如何删除内容,以防万一你不希望将这些示例丢在集群中。

对于大多数配置,只需使用与部署时使用的相同配置文件运行 delete 命令即可撤消配置。因此,让我们同时清理 mysitemydog

kubectl delete -f mysite.yaml
kubectl delete -f mydog.yaml

由于我们是手动创建配置映射的,因此我们也需要手动删除它们。

kubectl delete configmap mysite-html
kubectl delete configmap mydog-html

现在,如果我们执行 kubectl get pods,我们应该看到我们的 nginx Pod 不存在了。

$ kubectl get pods
No resources found in default namespace.

一切都清理了。

请在下面的评论中告诉我你对这个项目有什么想法。


via: https://opensource.com/article/20/3/kubernetes-traefik

作者:Lee Carpenter 选题:lujun9972 译者:wxy 校对:wxy

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

]]>
Tue, 07 Apr 2020 10:35:24 +0800 article-12081-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12080-1.html?utm_source=rss&utm_medium=rss article-12080-1.html?utm_source=rss&utm_medium=rss

本周早些时候,全球最大的 200 多家内容传输网络(CDN)和云主机提供商的流量被怀疑通过俄罗斯国有电信运营商 Rostelecom 转发。

该事件影响了 200 多个网络的 8800 多条互联网流量路线。受影响的公司都是云和 CDN 市场的知名企业,包括 Google、Amazon、Facebook、Akamai、Cloudflare、GoDaddy、Digital Ocean、Joyent、LeaseWeb、Hetzner 和 Linode 等公司。

这次事件是一个典型的 "BGP 劫持",BGP 是边界网关协议的缩写,BGP 是全球互联网网络之间的互联网流量路由系统,从设计上,整个系统就非常脆弱,因为任何一个参与网络都可以简单地 "撒谎"式地发布一个 BGP 路由通告,例如声称 "Facebook 的服务器"在他们的网络上,随后所有的互联网实体都会把它当作合法的目标,从而将 Facebook 的流量全部发送到劫持者的服务器上。

过去,在 HTTPS 被广泛用于加密流量之前,BGP 劫持允许攻击者进行中间人(MitM)攻击,拦截和改变互联网流量。

如今,BGP 劫持仍然是危险的,因为它可以让劫持者记录流量,并试图在以后的日子里对流量进行分析和解密,现时由于密码学科学的进步,用于保护流量的加密技术已经被削弱。

自 90 年代中期以来,BGP 劫持一直是互联网主干网的一个问题,多年来通信从业者一直在努力加强 BGP 协议的安全性,自此产生了 ROV、RPKI,以及最近的 MANRS 等项目。然而,在采用这些新协议方面的进展一直很缓慢,BGP 劫持事件仍时有发生。

专家们过去曾多次指出,并非所有的 BGP 劫持都是恶意的。大多数事件可能是人为操作者误输入了一个 ASN(自主系统号,即互联网实体的识别代码),意外劫持了该公司的互联网流量。

然而,一些实体的 BGP 劫持事件的幕后黑手仍然时有发生,许多专家在事件的背后都被贴上了可疑的标签,说明这些事件不仅仅是意外。

Rostelecom(AS12389)虽然没有像之前部分国家的运营商那样直接故意地参与到 BGP 劫持事件中,但其背后也有很多类似的可疑事件。

上一次抢占头条的 Rostelecom 重大劫持事件发生在 2017 年,当时该电信公司劫持了包括 Visa、Mastercard、汇丰银行等全球最大的金融实体的 BGP 路由。

这一次,通信业内还没有定论。BGPMon 的创始人 Andree Toonk 给出了怀疑俄罗斯电信公司的理由。Toont 在 Twitter 上表示,他认为这次“劫持”事件发生的原因是俄罗斯电信内部的流量整形系统可能在公共互联网上不小心暴露了错误的 BGP 路由,而不是俄罗斯电信内部网络的整体问题。

不幸的是,这个小小的失误被 Rostelecom 的上游供应商拿着新公布的 BGP 路由在互联网上重新传播,从而将 BGP 劫持事件在几秒钟内放大了,这让这个小错误变得更加严重。

但是,过去很多互联网专家也曾指出,故意的 BGP 劫持是有可能出现的,因为没有人能够分辨出来差异。在国家控制的电信实体中发生的 BGP 劫持一向被视为可疑。

来源:cnBeta.COM

更多资讯

新冠肺炎疫情影响报告:居家办公爆增 深远影响风险认知

为了了解新冠病毒疫情带来的影响,知名安全媒体 CSO 最近对美国大型商业机构的安全高管进行了一次调查。调查显示,疫情导致的网络攻击明显增长,并在未来数年内,都会深远的影响我们对风险的理解和认知。

来源:数世咨询

FCC 推进 6GHz Wi-Fi 计划 遭运营商强烈反对

美国监管机构联邦通信委员会(FCC)准备就一项提案进行投票,该提案将开放整个 6GHz 频段供未经许可的用户使用。官员们表示,此举将有助于满足快速增长的 Wi-Fi 服务需求。该计划于 2018 年 10 月首次提出,将留出 1200MHz 的频谱用于未授权的操作,包括整个频段的低功耗用例和较小的 850MHz 范围内的高功耗操作。

来源:飞象网

华盛顿州成为美国首个通过面部识别法案的州

据外媒报道,周二本应是隐私权倡导者的胜利。华盛顿州签署了《SB 6280 法案》,使其成为了美国第一个通过面部识别法案的州,该法案概述了政府如何使用和不能使用这项技术。然而仔细观察就会发现该法案的缺陷。

来源:cnBeta.COM

Google 公布 130 多个国家的手机位置数据

为帮助世界各地的政府制定决策,了解居民活动的热点区域,Google 发布了《COVID-19 Community Mobility Reports》。这些移动位置报告来自于 Google 从运行 Android 系统的智能手机及其地图服务中匿名聚合的数据,它们并不能识别个人身份,但能显示特定地点的忙碌程度,可以帮助公共卫生官员制定减缓病毒传播的重要决策。

来源:solidot.org

(信息来源于网络,安华金和搜集整理) 

]]>
Tue, 07 Apr 2020 09:29:00 +0800 article-12080-1.html?utm_source=rss&utm_medium=rss
<![CDATA[网赌送彩金_赌博送388彩金_注册绑定卡送38»»»点击领取!!!]]> - 网赌送彩金,赌博送388彩金,注册绑定卡送38 article-12079-1.html?utm_source=rss&utm_medium=rss article-12079-1.html?utm_source=rss&utm_medium=rss

我们来研究下 Linux 上的 ufw(简单防火墙),为你更改防火墙提供一些见解和命令。

ufw简单防火墙Uncomplicated FireWall)真正地简化了 iptables,它从出现的这几年,已经成为 Ubuntu 和 Debian 等系统上的默认防火墙。而且 ufw 出乎意料的简单,这对新注册绑定卡送38员来说是一个福音,否则他们可能需要投入大量时间来学习防火墙注册绑定卡送38。

ufw 也有 GUI 客户端(例如 gufw),但是 ufw 命令通常在命令行上执行的。本文介绍了一些使用 ufw 的命令,并研究了它的工作方式。

首先,快速查看 ufw 配置的方法是查看其配置文件 —— /etc/default/ufw。使用下面的命令可以查看其配置,使用 grep 来抑制了空行和注释(以 # 开头的行)的显示。

$ grep -v '^#\|^$' /etc/default/ufw
IPV6=yes
DEFAULT_INPUT_POLICY="DROP"
DEFAULT_OUTPUT_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY="DROP"
DEFAULT_APPLICATION_POLICY="SKIP"
MANAGE_BUILTINS=no
IPT_SYSCTL=/etc/ufw/sysctl.conf
IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns"

正如你所看到的,默认策略是丢弃输入但允许输出。允许你接受特定的连接的其它规则是需要单独配置的。

ufw 命令的基本语法如下所示,但是这个概要并不意味着你只需要输入 ufw 就行,而是一个告诉你需要哪些参数的快速提示。

ufw [--dry-run] [options] [rule syntax]

--dry-run 选项意味着 ufw 不会运行你指定的命令,但会显示给你如果执行后的结果。但是它会显示假如更改后的整个规则集,因此你要做有好多行输出的准备。

要检查 ufw 的状态,请运行以下命令。注意,即使是这个命令也需要使用 sudo 或 root 账户。

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       192.168.0.0/24
9090                       ALLOW       Anywhere
9090 (v6)                  ALLOW       Anywhere (v6)

否则,你会看到以下内容:

$ ufw status
ERROR: You need to be root to run this script

加上 verbose 选项会提供一些其它细节:

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    192.168.0.0/24
9090                       ALLOW IN    Anywhere
9090 (v6)                  ALLOW IN    Anywhere (v6)

你可以使用以下命令轻松地通过端口号允许和拒绝连接:

$ sudo ufw allow 80         <== 允许 http 访问
$ sudo ufw deny 25              <== 拒绝 smtp 访问

你可以查看 /etc/services 文件来找到端口号和服务名称之间的联系。

$ grep 80/ /etc/services
http            80/tcp          www             # WorldWideWeb HTTP
socks           1080/tcp                        # socks proxy server
socks           1080/udp
http-alt        8080/tcp        webcache        # WWW caching service
http-alt        8080/udp
amanda          10080/tcp                       # amanda backup services
amanda          10080/udp
canna           5680/tcp                        # cannaserver

或者,你可以命令中直接使用服务的名称。

$ sudo ufw allow http
Rule added
Rule added (v6)
$ sudo ufw allow https
Rule added
Rule added (v6)

进行更改后,你应该再次检查状态来查看是否生效:

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       192.168.0.0/24
9090                       ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere         <==
443/tcp                    ALLOW       Anywhere         <==
9090 (v6)                  ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)    <==
443/tcp (v6)               ALLOW       Anywhere (v6)    <==

ufw 遵循的规则存储在 /etc/ufw 目录中。注意,你需要 root 用户访问权限才能查看这些文件,每个文件都包含大量规则。

$ ls -ltr /etc/ufw
total 48
-rw-r--r-- 1 root root 1391 Aug 15  2017 sysctl.conf
-rw-r----- 1 root root 1004 Aug 17  2017 after.rules
-rw-r----- 1 root root  915 Aug 17  2017 after6.rules
-rw-r----- 1 root root 1130 Jan  5  2018 before.init
-rw-r----- 1 root root 1126 Jan  5  2018 after.init
-rw-r----- 1 root root 2537 Mar 25  2019 before.rules
-rw-r----- 1 root root 6700 Mar 25  2019 before6.rules
drwxr-xr-x 3 root root 4096 Nov 12 08:21 applications.d
-rw-r--r-- 1 root root  313 Mar 18 17:30 ufw.conf
-rw-r----- 1 root root 1711 Mar 19 10:42 user.rules
-rw-r----- 1 root root 1530 Mar 19 10:42 user6.rules

本文前面所作的更改,为 http 访问添加了端口 80 和为 https 访问添加了端口 443,在 user.rulesuser6.rules 文件中看起来像这样:

# grep " 80 " user*.rules
user6.rules:### tuple ### allow tcp 80 ::/0 any ::/0 in
user6.rules:-A ufw6-user-input -p tcp --dport 80 -j ACCEPT
user.rules:### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 in
user.rules:-A ufw-user-input -p tcp --dport 80 -j ACCEPT
You have new mail in /var/mail/root
# grep 443 user*.rules
user6.rules:### tuple ### allow tcp 443 ::/0 any ::/0 in
user6.rules:-A ufw6-user-input -p tcp --dport 443 -j ACCEPT
user.rules:### tuple ### allow tcp 443 0.0.0.0/0 any 0.0.0.0/0 in
user.rules:-A ufw-user-input -p tcp --dport 443 -j ACCEPT

使用 ufw,你还可以使用以下命令轻松地阻止来自一个 IP 地址的连接:

$ sudo ufw deny from 208.176.0.50
Rule added

status 命令将显示更改:

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    192.168.0.0/24
9090                       ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
Anywhere                   DENY IN     208.176.0.50             <== new
9090 (v6)                  ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)

总而言之,ufw 不仅容易配置,而且且容易理解。


via: http://linux.cn/https://www.networkworld.com/article/3533551/linux-firewall-basics-with-ufw.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:MjSeven 校对:wxy

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

]]>
Mon, 06 Apr 2020 21:42:36 +0800 article-12079-1.html?utm_source=rss&utm_medium=rss