欢迎光临
我们一直在努力

Linux技巧

命令行 TODO 工具中的王者

阅读(3.98K)评论(0)

Taskwarrior 是 Ubuntu/Linux 下一个简单而直接的基于命令行的 TODO 工具。这个开源软件是我曾用过的最简单的基于命令行的工具之一。Taskwarrior 可以帮助你更好地组织你自己,而不用安装笨重的新工具——这有时丧失了 TODO 工具的目的。
Taskwarrior:一个基于简单的基于命令行帮助完成任务的TODO工具

Taskwarrior是一个开源、跨平台、基于命令行的 TODO 工具,它帮你在终端中管理你的 to-do 列表。这个工具让你可以轻松地添加任务、展示列表、移除任务。而且,在你的默认仓库中就有,不用安装新的 PPA。在 Ubuntu 16.04 LTS 或者相似的发行版中。在终端中按照如下步骤安装Taskwarrior。
命令行 TODO 工具中的王者

sudo apt-get install task
简单的用如下:
$ task add Read a book
Created task 1.
$ task add priority:H Pay the bills
Created task 2.

我使用上面截图中的同样一个例子。是的,你可以设置优先级(H、L 或者 M)。并且你可以使用‘task’或者‘task next’命令来查看你最新创建的 to-do 列表。比如:

$ task next

ID Age P Description                      Urg
-- --- - -------------------------------- ----
 2 10s H Pay the bills                     6
 1 20s   Read a book                       0

完成之后,你可以使用 ‘task 1 done’ 或者 ‘task 2 done’ 来清除列表。可以在这里找到更加全面的命令和使用案例。同样,Taskwarrior 是跨平台的,这意味着不管怎样,你都可以找到一个满足你需求的版本。如果你需要的话,这里甚至有一个安卓版。

开源版tailscale,headscale搭建

阅读(1.55K)评论(0)

Headscale 是什么 上一期视频讲了tailscale,Tailscale 是一个收费的vpn服务,免费用户有诸多限制,为了破除这些限制,有开源项目重新把tailscale实现了一遍,项目名称叫headscale

是由欧洲航天局的 Juan Font 使用 Go 语言开发,在 BSD 许可下发布,实现了 Tailscale 控制服务器的所有主要功能,可以部署在企业内部,没有任何设备数量的限制,且所有的网络流量都由自己控制。

目前 Headscale 还没有可视化界面,所有的操作都需要在命令行中完成,但是命令并不多,操作也不复杂。

因为是自建服务,那能自定义的配置就多了,任意定义网段,任意定义命名空间

udp直连会被运营商限速,所以会出现速度骤降,但是ping非常稳定,传速速度页非常稳定。

Headscale 部署

Headscale 部署在 Linux 主机上,随便找台有独立ip的vps就可以了,但是要注意,如果需要穿透的内网无法打洞成功那么流量就会由服务器中转,这意味着穿透后的速度会直接的受限于节点跟服务器之间的网络情况,所以尽量选择离你近的服务器,即使打洞失败了,至少网络还是稳定的,通畅的。

项目主页:https://github.com/juanfont/headscale/

# 下载服务端
wget --output-document=/usr/local/bin/headscale \
https://github.com/juanfont/headscale/releases/download/v0.17.0-alpha4/headscale_0.17.0-alpha4_linux_amd64
# 设置执行权限
chmod +x /usr/local/bin/headscale

准备

#创建配置目录:
mkdir -p /etc/headscale

#创建目录用来存储数据与证书:
mkdir -p /var/lib/headscale

#创建空的 SQLite 数据库文件:
touch /var/lib/headscale/db.sqlite

# 从example 创建 Headscale 配置文件:
wget https://github.com/juanfont/headscale/raw/main/config-example.yaml -O /etc/headscale/config.yaml
  • server_url 设置为 http://<PUBLIC_IP>:8080,将 <PUBLIC_IP> 替换为公网 IP 或者域名。
  • 可自定义私有网段,也可同时开启 IPv4 和 IPv6:
  • ip_prefixes: # - fd7a:115c:a1e0::/48 - 10.1.0.0/16
  • 随机端口要打开,否则同一个内网中多个终端会有问题
  • randomize_client_port: true

创建 SystemD service 配置文件:

# /etc/systemd/system/headscale.service
[Unit]
Description=headscale controller
After=syslog.target
After=network.target

[Service]
Type=simple
User=headscale
Group=headscale
ExecStart=/usr/local/bin/headscale serve
Restart=always
RestartSec=5

# Optional security enhancements
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/lib/headscale /var/run/headscale
AmbientCapabilities=CAP_NET_BIND_SERVICE
RuntimeDirectory=headscale

[Install]
WantedBy=multi-user.target
# 创建 headscale 用户:

useradd headscale -d /home/headscale -m

# 修改 /var/lib/headscale 目录的 owner:

chown -R headscale:headscale /var/lib/headscale

#修改配置文件中的 `unix_socket`:


unix_socket: /var/run/headscale/headscale.sock

# Reload SystemD 以加载新的配置文件:

systemctl daemon-reload

#启动 Headscale 服务并设置开机自启:

systemctl enable --now headscale

# 查看运行状态:

systemctl status headscale

# 查看占用端口:

ss -tulnp|grep headscale

# 创建一个 namespace,以便后续客户端接入,例如:
headscale namespaces create default

# 查看命名空间:

headscale namespaces list

 

客户端安装

目前除了 iOS 客户端,其他平台的客户端都有办法自定义 Tailscale 的控制服务器,headscale仅仅是实现了tailscale服务端的功能。

OS Supports headscale
Linux Yes
OpenBSD Yes
FreeBSD Yes
macOS Yes (see /apple on your headscale for more information)
Windows Yes docs
Android Yes docs
iOS Not yet

Windows客户端

打开http://ip:8080/windows

下载一个注册表修改工具,执行一下

安装tailscale客户端

启动,登陆的时候就会去我们自己的服务器认证了

认证成功获取到ip,客户端就加入网络了

而且windows端做路由也是可以的,如果需要,加上参数–advertise-routes=192.168.188.0/24

打开cmd,执行

tailscale up  --login-server=http://ip:8080 --accept-routes=true --accept-dns=false --advertise-routes=192.168.188.0/24

再去服务器端查看route,激活路由

headscale routes list -i 1
headscale routes enable -i 1 -r "192.168.188.0/24"

linux客户端

直接下载。查看最新版本:https://pkgs.tailscale.com/stable/

wget https://pkgs.tailscale.com/stable/tailscale_1.28.0_amd64.tgz
tar zxvf tailscale_1.28.0_amd64.tgz x tailscale_1.28.0_amd64/

将二进制文件复制到官方软件包默认的路径下:

cp tailscale_1.28.0_amd64/tailscaled /usr/sbin/tailscaled
cp tailscale_1.28.0_amd64/tailscale /usr/bin/tailscale
chmod +x /usr/sbin/tailscaled
chmod +x /usr/bin/tailscale

将 systemD service 配置文件复制到系统路径下:

cp tailscale_1.28.0_amd64/systemd/tailscaled.service /lib/systemd/system/tailscaled.service

将环境变量配置文件复制到系统路径下:

cp tailscale_1.28.0_amd64/systemd/tailscaled.defaults /etc/default/tailscaled
# 启动 tailscaled.service 并设置开机自启:
systemctl enable --now tailscaled
# 查看服务状态:
systemctl status tailscaled

Tailscale 接入:

tailscale up --login-server=http://ip:8080 --accept-routes=true --accept-dns=false
# 如果申请为虚拟网关,需要指定
tailscale up --login-server=http://ip:8080 --accept-routes=true --accept-dns=false --advertise-routes=192.168.188.0/24
# 打开转发
echo 'net.ipv4.ip_forward = 1' | tee /etc/sysctl.d/ipforwarding.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/ipforwarding.conf
sysctl -p /etc/sysctl.d/ipforwarding.conf

执行完上面的命令后,会出现下面的信息:

To authenticate, visit:

http://xxxxxx:8080/register?key=905cf165204800247fbd33989dbc22be95c987286c45aac303393704

在浏览器中打开该链接,就会出现如下的界面:

开源版tailscale,headscale搭建

将其中的命令复制粘贴到 headscale 所在机器的终端中,并将 NAMESPACE 替换为前面所创建的 namespace。

headscale -n default nodes register --key d1614a1407b7554cd368db21f383197802d9c95249130d7b3db256458d9a4043
# 注册成功,查看注册的节点:
headscale nodes list
# 许可路由的话,通过上个命令就可以看到linux节点的id,就是1,2,3,……
# 查看改节点的路由,假如id是1
headscale routes list -i 1
# 许可网关
headscale routes enable -i 1 -r "192.168.188.0/24"
# 再次查看虚拟网关状态,id是1
headscale routes list -i 1
# enabled就是已经启用了

回到 Tailscale 客户端所在的 Linux 主机,可以看到 Tailscale 会自动创建相关的路由表和 iptables 规则。路由表可通过以下命令查看:

ip route show table 52

 

群晖客户端

项目地址:https://github.com/tailscale/tailscale-synology

下载安装包手动上传到webui,安装启用

登录到ssh命令行

tailscale up --login-server=http://ip:8080 --accept-dns=false

剩下的步骤跟linux一致

如果需要群晖做虚拟网关的话,添加参数–advertise-routes=192.168.199.0/24

tailscale up --login-server=http://ip:8080 --accept-dns=false --advertise-routes=192.168.199.0/24

 

openwrt客户端

项目地址:https://github.com/adyanth/openwrt-tailscale-enabler

按照项目的安装说明安装即可

安装完成,启动服务后,执行跟linux和群晖相同的命令

tailscale up --login-server=http://ip:8080 --accept-dns=false --advertise-routes=192.168.199.0/24

 

安卓客户端

稍微麻烦些,需要自己去github上生成release,这里就不写了,直接提供包出来

重点就是指定服务器的地址,如果不指定的话认证服务器是指向tailscale的

要想自己指定服务器需要从项目代码中自己生成一个

可以在github上操作,总体来说费劲一点,这不是本期视频的重点,我就直接把我生成的客户端放到蓝凑云了

下载地址:https://xpn.lanzout.com/iXZX90hksddc

安装完成后别直接登录,

登陆页面,右上角有一个use login server,

打开,填上自己的服务器的ip和端口登录,同样会跳转到一个页面

复制给出的命令,修改namespace为default

去服务端命令行执行一下,认证成功

安卓端就搞定了

 

总体而言,除了安卓端麻烦些,openwrt端耗费的时间长一些,难度不高。

Ubuntu-Server 22.04安装详细过程

阅读(1.05K)评论(0)

Ubuntu-Server 22.04安装详细过程

1.https://ubuntu.com/download/server 乌班图镜像网址,点击下载即可

Ubuntu-Server 22.04安装详细过程

二.安装乌班图镜像,最好自己准备u盘在ISO软件内制作完成

1.选择 Install Ubuntu Server

Ubuntu-Server 22.04安装详细过程

2.选择安装语言为英语

Ubuntu-Server 22.04安装详细过程

3.安装程序更新选择不更新,继续下一步

Ubuntu-Server 22.04安装详细过程

4.键盘布局选择默认,继续下一步

Ubuntu-Server 22.04安装详细过程

5.选择安装服务器版本,server版本比mini版本配置多,可自行选择

Ubuntu-Server 22.04安装详细过程

6.网络配置,使用 DHCP 或者 静态IP(建议设置静态IP,如果选择DHCP,则在此界面直接选择 Done 后回车即可)。

Ubuntu-Server 22.04安装详细过程

静态IP设置方法,点击ens33 然后选择ipv4

Ubuntu-Server 22.04安装详细过程

静态IP设置方法,点击ens33 然后选择ipv4

Ubuntu-Server 22.04安装详细过程

自行根据自己网络情况填写ip地址配置,最后点击save保存退出,继续下一步即可

Ubuntu-Server 22.04安装详细过程

7.Configure proxy配置页面的Proxy address无需配置,直接点击Done即可

Ubuntu-Server 22.04安装详细过程

8.设置镜像源地址,这个直接点击Done下一步

可以配置阿里云(http://mirrors.aliyun.com/ubuntu/)下载加速 后续自行添加即可

Ubuntu-Server 22.04安装详细过程

9.磁盘配置,选择Done磁盘自动分配

需要手动分区的话选择 [custom storage layout]即可Ubuntu-Server 22.04安装详细过程

手动分区配置,向下移动光标选择手动分区,选择Done下一步Ubuntu-Server 22.04安装详细过程

选择空闲分区进行设置

Ubuntu-Server 22.04安装详细过程

为磁盘进行分区,下图含义为 根目录设置10G大小(可根据自己磁盘大小自行配置)

类型选为ext4 最后点击Create添加即可Ubuntu-Server 22.04安装详细过程

这里设置的根目录为10G,boot为4.997G,home为5G,swap 交换空间为8GB一般为物理内存的2倍,以上设置可以根据自己磁盘大小自行配置

Ubuntu-Server 22.04安装详细过程
再次确认 Continue 继续
Ubuntu-Server 22.04安装详细过程
10.设置主机用户名与密码及服务器名称,设置完点击Done下一步即可
Ubuntu-Server 22.04安装详细过程
11.按回车键 选择安装 SSH服务,方便远程连接,然后选择Done下一步即可
Ubuntu-Server 22.04安装详细过程
12.选择预置服务安装,按自己需求选取,如不需要选择Done下一步继续
Ubuntu-Server 22.04安装详细过程
13.进入安装系统环节
Ubuntu-Server 22.04安装详细过程
14.选择不安装更新,重启系统
Ubuntu-Server 22.04安装详细过程
15.这里等待时间会长一点,耐心等待
Ubuntu-Server 22.04安装详细过程
16.输入登录用户名密码,进入系统界面 后续可自行安装各种需求配置
Ubuntu-Server 22.04安装详细过程
Ubuntu-Server 22.04安装详细过程

如何在 Windows 11 中为 Linux 安装 Windows 子系统

阅读(579)评论(0)

微软首先通过 2016 年在 Windows 10 周年更新中引入的 Windows Subsystem for Linux (WSL) 提供了一定程度的 Linux 兼容性,该实用程序的初始版本并不完美。 WSL 2 在 2019 年 6 月改变了这一点,通过操作系统的内置 Hyper-V 管理程序将完整的 Linux 内核直接整合到 Windows 10 中。

安装 WSL 曾经是一个复杂的过程,需要手动启用各种服务、下载实用程序并在没有 Windows 太多帮助的情况下进行安装。 然而,随着 Windows 10 的更高版本,这种情况发生了变化,并且 Windows 11 继续使在轻量级虚拟机环境中开始使用各种 Linux 发行版变得容易。 以下是在 Windows 10 和 Windows 11 中开始使用适用于 Linux 的 Windows 子系统的方法。

如何在 Windows 11 中安装适用于 Linux 的 Windows 子系统

1. 以系统管理员身份启动 PowerShell 或命令提示符。 通过从“开始”菜单搜索“PowerShell”或“命令提示符”最容易实现。 无论您选择哪个选项,都不要只是按“Enter”启动命令行,因为 Windows 不会让您以普通用户身份安装 WSL。 相反,您应该从搜索结果中单击“以管理员身份运行”。

2. 输入以下命令:

1
wsl --install

假设您以管理员身份启动了 PowerShell(如我们的示例中所示)或命令提示符,该命令应自动启用 WSL 所依赖的服务、下载实用程序并安装它运行所需的一切,而无需任何进一步输入。 默认情况下,它还下载并安装 Ubuntu,这是一种流行的 Linux 发行版,可以在从单板计算机到企业级服务器的所有设备中找到。

3. 重新启动您的计算机。 应该会出现一条通知,告诉您 WSL 已安装并且可以在您重新启动计算机后使用。 您不必立即重新启动系统,但如果您不这样做,WSL 会提醒您下次尝试使用该实用程序执行任何操作时需要重新启动系统。 所以方便时尽快重启。

WSL 将在您重新启动后自行安装。

4. 在 WSL 提示时输入用户名和密码。 这些将仅是您的 WSL 凭据。

如果您被告知“请求的操作需要提升”,该怎么办

如果您输入“wsl –install”并看到错误消息,那是因为您没有以管理员身份运行 PowerShell 或命令提示符,如果您想安装 WSL,则需要这样做。 有关如何以管理员身份运行应用程序的说明,请参阅第一步。

如何在 Windows 11 中安装不同的 Linux 发行版

Ubuntu 是与适用于 Linux 的 Windows 子系统一起安装的默认 Linux 发行版,但它并不是与 Microsoft 功能兼容的唯一 Linux“风格”。 有两种方法可以安装具有自己默认用户界面、预安装实用程序和其他功能的替代 Linux 发行版:通过命令行和通过 Microsoft Store。

选项 1:命令行

命令行(即命令提示符或 PowerShell)是安装当今一些较流行的 Linux 发行版的最便捷方式。 Microsoft 不允许以这种方式安装每个发行版,可能是因为公司无法提供内置支持的发行版太多,但有几种流行的发行版可用。

1. 输入以下命令:

1
wsl --list --online

命令的“wsl”部分表示我们使用的是适用于 Linux 的 Windows 子系统,“list”是支持的 Linux 发行版列表,“online”说明符表示 Microsoft 提供的发行版,而不是我们已有的发行版 在我们的计算机上运行。 此命令应返回可通过命令行安装的发行版列表。

2. 输入以下命令安装新发行版:

1
wsl --install -<Distro>

此命令告诉适用于 Linux 的 Windows 子系统安装通过上一个命令列出的发行版之一。 在撰写本文时,这包括从 Debian(一个以稳定性引以为豪的发行版并提供构建 Ubuntu 等发行版的基础)到黑客最喜欢的 Offensive Security 的 Kali Linux 的所有内容。

选项 2:微软商店

任何对命令行不太熟悉的人仍然可以通过 Microsoft Store 安装 Linux 发行版。 这比命令行需要更多的摆弄,主要是因为它涉及图形用户界面而不是基于文本的系统,但对于以前通过中央分发平台安装软件的任何人来说,这应该是一个熟悉的过程。

1. 打开微软商店。 在新安装的 Windows 11 上,该应用程序会自动固定到“开始”菜单和任务栏,但如果您已将其从这些默认位置删除,则可以通过从“开始”菜单搜索“商店”轻松启动。

2. 搜索“Linux”。 在撰写本文时,Linux 发行版在 Microsoft Store 中没有专门的部分,但搜索“Linux”将通过此点击式界面显示可用的发行版。 例如,有多个版本的 Ubuntu 可供下载,以及诸如 openSUSE Leap 之类的发行版。

3. 单击您感兴趣的发行版,然后单击“安装”。 只要您已经创建了 Microsoft 帐户,Microsoft Store 就应该处理剩下的过程。 完成后,您将拥有一个可通过适用于 Linux 的 Windows 子系统访问的新发行版,并且还有机会开始学习如何使用命令行。

如何在 Windows 11 中使用基于 GUI 的 Linux 软件

WSL 最初提供对 Linux 命令行界面的访问,这对于有经验的用户来说可能没问题,但不太可能使新用户更容易访问操作系统。 (并不是说让人们相信他们使用免费和开源的操作系统而不是 Windows 更好,这不一定符合 Microsoft 的最大利益。)这种情况已经改变,现在可以在 Windows 中使用 Linux 图形用户界面 (GUI) 应用程序 .

1. 使用以下命令更新 WSL:

1
wsl --update

这将更新适用于 Linux 的 Windows 子系统,以便您可以通过该实用程序使用 GUI 应用程序。 请注意,Microsoft 仅通过 WSL 2 提供此功能; 该实用程序的第一次迭代仍然仅限于与 Windows 本身明显分开的非基于图形的界面。

2.通过键入重新启动 WSL

1
wsl --shutdown

3. 为您的 GPU 安装适当的驱动程序。 Microsoft 链接到为 Intel、AMD 和 Nvidia GPU 安装 WSL 的 GPU 驱动程序的说明。 按照这些说明操作,确保您的独立显卡(或 CPU 中内置的集成 GPU)针对运行基于图形的 Linux 软件以及 Windows 本身进行了优化。

4. 安装您要使用的软件。 Linux 发行版提供了各种包管理器,可用于通过命令行安装软件;有些还提供类似于 Microsoft Store 的中央分发平台,可以在其中找到 Linux 应用程序。您选择哪种安装方法并不重要,但您必须安装一些东西。否则,您将受限于发行版内置的任何内容。

5. 启动应用程序,然后像任何其他 Windows 应用程序一样与其交互。 Microsoft 设计了 WSL 2 对 GUI 应用程序的支持,以类似于基本的 Windows 体验。一旦软件启动(通常通过在终端仿真器中输入特定于程序的命令),它就可以与使用屏幕控件进行交互、固定到开始菜单、添加到任务栏,或者像典型的 Windows 程序一样对待。

这些是使用适用于 Linux 的 Windows 子系统所需的第一步。习惯以命令行为中心的工具和 Linux 的特性可能需要一段时间,但此功能使协调使用基于 Linux 和 Windows 的软件比以往任何时候都更容易。

 

 

使用virt-manager 在主机和客户机之间共享文件夹

阅读(570)评论(0)

在本指南中,你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。

​​virt-manager​​​ 应用或软件包使用 ​​libvirt​​ 库来提供虚拟机管理服务。它有一个桌面界面,有助于创建、删除和管理多个虚拟机。

virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个自由开源的应用,主要用于 KVM 虚拟机。然而,它也可以支持其他管理程序,如 Xen 和 LXC。

在之前的文章中,我解释了 ​​如何使用 virt-manager 创建虚拟机​​。这篇文章介绍了如何在客户机和主机之间无缝访问文件和文件夹。

关于 virtiofs 的说明

共享文件和文件夹是由名为 virtiofs 的 libvirt 共享文件系统提供的。它提供了访问主机上的目录树的所有功能和参数。由于大多数 virt-manager 虚拟机的配置都被翻译成 XML,所以共享文件/文件夹也可以通过 XML 文件来指定。

在 virt-manager中共享文件夹

首先,确保你的客户机关闭了电源。在 virt-manager GUI 中,选择虚拟机,点击“打开Open”,弹出控制台设置。

使用virt-manager 在主机和客户机之间共享文件夹

点击工具条上显示虚拟硬件细节的图标。然后点击左边面板上的“内存Memory”。

选择选项 “启用共享内存Enable shared memory”。点击应用。

使用virt-manager 在主机和客户机之间共享文件夹

然后点击底部的 “添加硬件Add hardware”。

使用virt-manager 在主机和客户机之间共享文件夹

在添加新硬件的窗口中,从左边的面板上选择 “文件系统File system”。

然后在 “细节Details” 标签中选择 “驱动程序Driver” 为 “virtiofs”。点击 “浏览Browse > 浏览本地browse local”,选择你想在客户机内访问的主机路径。

在目标路径中,输入你想要的任何名字。这只是一个文件标签,将在挂载时使用。

所以,如果我想访问 ​​Pictures/Screenshots​​ 文件夹(​​/home/debugpoint/Pictures/Screenshots​​),示例设置可以是这样:

使用virt-manager 在主机和客户机之间共享文件夹

下面是上述配置的 XML 设置。你可以在 XML 标签中找到它。

<filesystem type="mount" accessmode="passthrough">  <driver type="virtiofs"/>  <binary path="/usr/libexec/virtiofsd"/>  <source dir="/home/debugpoint/Pictures/Screenshots"/>  <target dir="mount_tag_pictures"/>  <alias name="fs1"/>  <address type="pci" domain="0x0000" bus="0x08" slot="0x00" function="0x0"/></filesystem>

点击 “完成Finish”。在 virt-manager 主窗口中,右键点击虚拟机,点击运行,启动虚拟机。确保点击“显示图形控制台show the graphical console”(如果虚拟机没有显示,点击工具条上的监视器图标)。

在客户机中,创建一个你想挂载主机文件夹的文件夹。在这个例子中,我使用了 ​​/mnt/pictures​​。

sudo mkdir /mnt/pictures

最后,使用你在上述步骤中创建的标签将主机文件夹挂载到这个新文件夹。使用下面的命令在终端做这件事。确保根据你的系统改变下面命令中的标签和文件夹名称。

sudo mount -t virtiofs mount_tag_pictures /mnt/pictures

现在你可以在 virt-manager 中的主机和客户机之间的无缝地浏览文件夹和添加/删除项目。

使用virt-manager 在主机和客户机之间共享文件夹

总结

我希望这个方案能帮助你从客户机上访问主机文件和文件夹。记住,你的用户 ID,也就是用来启动 virt-manager 应用的用户,应该有同样的权限来访问主机文件夹。

CentOS 6.6下Xen虚拟化实战

阅读(567)评论(0)

RedHat就不在原生支持Xen,改为投奔KVM的怀抱。尽管KVM号称支援HVM技术的全虚拟化,但KVM毕竟起步晚,远不如Xen技术成熟,运行多个实例时经常发生系统崩溃的现象,当然也不排斥未来KVM会更加高效的可能。所以安装Xen的方法只有两种,一种是自己下载源代码自行编译,但这种方法太耗费精力,所以忽略,另一中就是使用第三方软件源进行安装。互联网有大量的第三方源以及开源组织提供编译好的源码,其中Xen made Easy开源项目为我们提供了Xen4在RHEL6/CentOS6的安装,本文采用Xen Made Easy项目网站提供的第三方安装源,方便快捷。

1. 环境
硬件:HP DL360 G6(E5520,16G,2*146GB)
系统版本:CentOS-6.6-x86_64-minimal.iso

2. 系统初始化

  1. wget //linuxeye.com/lnmp-full.tar.gz
  2. tar xzf lnmp-full.tar.gz
  3. cd lnmp
  4. ./install.sh #所有都选择no
  5. chkconfig iptables off #关闭iptables

3. 安装bridge-utils

  1. yum -y install bridge-utils

4. 安装crc.id.au安装源

  1. yum -y install http://au1.mirror.crc.id.au/repo/el6/x86_64/kernel-xen-release-6-7.noarch.rpm

5. 安装xen虚拟化

  1. yum -y install xen
  2.  
  3. ls -l /boot/xen.gz
  4. lrwxrwxrwx 1 root root 12 Dec 1 18:42 /boot/xen.gz -> xen-4.2.5.gz

6. 安装xen内核

  1. yum -y install kernel-xen

注意:kernel-xen安装依赖kernel-xen-firmware,由于这两个包比较大,建议下载到本地用 yum -y localinstall kernel-xen* 完成安装

cat /boot/grub/grub.conf  #如下图,下次是以xen内核启动

自动草稿
  1. chkconfig xend on #重启系统后发现xend服务器没有配置开机自启动

7. 配置网卡为桥接模式
新建文件/etc/sysconfig/network-scripts/ifcfg-xenbr0,保持内容如下:

  1. DEVICE=xenbr0
  2. TYPE=Bridge
  3. ONBOOT=yes
  4. DELAY=0
  5. NM_CONTROLLED=no
  6. BOOTPROTO=static
  7. IPADDR=192.168.3.20
  8. NETMASK=255.255.255.0
  9. GATEWAY=192.168.3.1

修改/etc/sysconfig/network-scripts/ifcfg-eth0,保持内容如下:

  1. DEVICE=eth0
  2. HWADDR=F4:CE:46:85:64:34
  3. TYPE=Ethernet
  4. UUID=c27373b9-a698-4ac8-9afe-a4dee87f5704
  5. ONBOOT=yes
  6. BRIDGE=xenbr0
  7. NM_CONTROLLED=no
  1. service network restart #重启网络

8. 重启服务器
重新启动系统并进入Xen内核的Linux,测试如下图:

自动草稿

9. 安装虚拟化管理工具集

  1. yum -y install libvirt

libvirt提供一种虚拟机监控程序不可知的API来安全管理运行于主机上的来宾操作系统。libvirt本身不是一种工具,它是一种可以建立工具来管理来宾操作系统的API。libvirt本身构建于一种抽象的概念之上。它为受支持的虚拟机监控程序实现的常用功能提供通用的API。libvirt起初是专门为Xen设计的一种管理API,后来被扩展为可支持多个虚拟机监控程序。

  1. service libvirtd start
  1. yum -y install python-virtinst

包含一个使用libvirt在虚拟机内部启动安装操作系统版本的Python模块(如命令:virt-install、virt-clone)

10. 配置操作系统安装源
在192.168.3.10:81 挂载CentOS-6.6-x86_64-minimal.iso,并将里面文件拷贝到apache网站根目录下centos6.6,使在192.168.3.20上能通过http://192.168.3.10:81/centos6.6 访问到安装镜像
注意:镜像文件.treeinfo缺少一行,导致安装系统时找不到kernel,保持中间段如下:

  1. [images-xen]
  2. kernel = images/pxeboot/vmlinuz
  3. initrd = images/pxeboot/initrd.img

11. 字符界面安装CentOS

  1. mkdir -p /data/xen
  2. virt-install -n vm21 -r 2048 --vcpus=2 --nographic --disk path=/data/xen/vm21.img,size=20 \
  3. -l http://192.168.3.10:81/centos6.6/ --bridge=xenbr0,model=virtio

virt-install命令参数:

  1. -n --name= 客户端虚拟机名称
  2. -r --ram= 客户端虚拟机分配的内存
  3. -u --uuid= 客户端UUID
  4. --vcpus=2 客户端的vcpu个数
  5. -v --hvm 全虚拟化
  6. -p --paravirt 半虚拟化
  7. -l --location=localdir 安装源
  8. --vnc 使用vnc
  9. -c --cdrom= 光驱 安装途径
  10. -s --file-size= 使用磁盘映像的大小 单位为GB
  11. -f --file= 作为磁盘映像使用的文件
  12. --disk= 使用不同选项作为磁盘使用安装介质

12. 克隆镜像 

  1. virt-clone -o vm21 -n vm22 -f /data/xen/vm22.img

Linux上自动调整屏幕亮度保护眼睛

阅读(559)评论(0)

ightbot当你开始在计算机前花费大量时间的时候,问题自然开始显现。这健康吗?怎样才能舒缓我眼睛的压力呢?为什么光线灼烧着我?尽管解答这些问题的研究仍然在不断进行着,许多程序员已经采用了一些应用来改变他们的日常习惯,让他们的眼睛更健康点。在这些应用中,我发现了两个特别有趣的东西:Calise和Redshift。
1.Calise

处于时断时续的开发中,Calise的意思是“相机光感应器(Camera Light Sensor)”。换句话说,它是一个根据摄像头接收到的光强度计算屏幕最佳的背光级别的开源程序。更进一步地说,Calise可以基于你的地理坐标来考虑你所在地区的天气。我喜欢它是因为它兼容各个桌面,甚至非X系列。
9e7c3c041595a07
它同时附带了命令行界面和图形界面,支持多用户配置,而且甚至可以导出数据为CSV。安装完后,你必须在见证奇迹前对它进行快速校正。
2908c7e2ff2b054
不怎么令人喜欢的是,如果你和我一样有被偷窥妄想症,在你的摄像头前面贴了一条胶带,那就会比较不幸了,这会大大影响Calise的精确度。除此之外,Calise还是个很棒的应用,值得我们关注和支持。正如我先前提到的,它在过去几年中经历了一段修修补补的艰难阶段,所以我真的希望这个项目继续开展下去。
9edd47916b2e5e4

2.Redshift

如果你想过要减少由屏幕导致的眼睛的压力,那么你很可能听过f.lux,它是一个免费的专有软件,用于根据一天中的时间来修改显示器的亮度和配色。然而,如果真的偏好于开源软件,那么一个可选方案就是:Redshift。灵感来自f.lux,Redshift也可以改变配色和亮度来加强你夜间坐在屏幕前的体验。启动时,你可以使用经度和纬度来配置地理坐标,然后就可以让它在托盘中运行了。Redshift将根据太阳的位置平滑地调整你的配色或者屏幕。在夜里,你可以看到屏幕的色温调向偏暖色,这会让你的眼睛少遭些罪。
33b2042a5120c53
和Calise一样,它提供了一个命令行界面,同时也提供了一个图形客户端。要快速启动Redshift,只需使用命令:

$ redshift -l [LAT]:[LON]

替换[LAT]:[LON]为你的维度和经度。
然而,它也可以通过gpsd模块来输入你的坐标。

使用 APT-mirror 四步配置 Ubuntu 本地软件仓库

阅读(547)评论(0)

我们将向你展示如何在你的 Ubuntu 个人电脑或 Ubuntu 服务器中,直接通过 Ubuntu 官方软件仓库来配置本地软件仓库。在你的电脑中创建一个本地软件仓库有着许多的好处。假如你有许多电脑需要安装软件 、安全升级和修复补丁,那么配置一个本地软件仓库是一个做这些事情的高效方法。因为,所有需要安装的软件包都可以通过快速的局域网连接从你的本地服务器中下载,这样可以节省你的网络带宽,降低互联网接入的年度开支。
介绍APT-Mirror

你可以使用多种工具在你的本地个人电脑或服务器中配置一个 Ubuntu 的本地软件仓库,但在本教程中,我们将为你介绍 APT-Mirror。这里,我们将把默认的镜像包镜像到我们本地的服务器或个人电脑中,并且在你的本地或外置硬盘中,我们至少需要 120 GB 或更多的可用空间才行。 我们可以通过配置一个 HTTP 或 FTP 服务器来与本地系统客户端共享这个软件仓库。

我们需要安装 Apache 网络服务器和 APT-Mirror 来使得我们的工作得以开始。下面是配置一个可工作的本地软件仓库的步骤:

1. 安装需要的软件包

我们需要从 Ubuntu 的公共软件包仓库中取得所有的软件包,然后在我们本地的 Ubuntu 服务器硬盘中保存它们。

首先我们安装一个Web 服务器来承载我们的本地软件仓库。这里我们将安装 Apache Web 服务器,但你可以安装任何你中意的 Web 服务器。对于 http 协议,Web 服务器是必须的。假如你需要配置 ftp 协议 及 rsync 协议,你还可以再分别额外安装 FTP 服务器,如 proftpd, vsftpd 等等 和 Rsync 。

1.$ sudo apt-get install apache2

然后我们需要安装 apt-mirror:

1.$ sudo apt-get install apt-mirror

自动草稿

2. 配置 APT-Mirror

现在,在你的硬盘上创建一个目录来保存所有的软件包。例如,我们创建一个名为 /linoxide的目录,我们将在这个目录中保存所有的软件包:

1. $ sudo mkdir /linoxide

现在,打开文件 /etc/apt/mirror.list :

1. $ sudo nano /etc/apt/mirror.list

复制下面的命令行配置到 mirror.list文件中并按照你的需求进行修改:

1.############# config ##################
2.#
3.set base_path    /linoxide
4.#
5.# set mirror_path  $base_path/mirror
6.# set skel_path    $base_path/skel
7.# set var_path     $base_path/var
8.# set cleanscript $var_path/clean.sh
9.# set defaultarch  
10.# set postmirror_script $var_path/postmirror.sh
11.# set run_postmirror 0
12.set nthreads     20
13.set _tilde 0
14.#
15.############# end config ##############
16. 
17.deb http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
18.deb http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
19.deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
20.#deb http://archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
21.#deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse
22. 
23.deb-src http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
24.deb-src http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
25.deb-src http://archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
26.#deb-src http://archive.ubuntu.com/ubuntu trusty-proposed main restricted universe multiverse
27.#deb-src http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse
28. 
29.clean http://archive.ubuntu.com/

这里,我们将要镜像最新和最大的 Ubuntu LTS 发行版 --- 即 Ubuntu 14.04 LTS (Trusty Tahr) --- 的软件包仓库,所以在上面的配置中发行版本号为 trusty 。假如我们需要镜像 Saucy 或其他的 Ubuntu 发行版本,请修改上面的 trusy 为相应的代号。

现在,我们必须运行 apt-mirror 来下载或镜像官方仓库中的所有软件包。

1.sudo apt-mirror

从 Ubuntu 服务器中下载所有的软件包所花费的时间取决于你和镜像服务器之间的网络连接速率和性能。这里我中断了下载,因为我已经下载好了 ...

自动草稿

3.配置网络服务器

为了使得其他的电脑能够访问这个软件仓库,你需要一个Web服务器。你也可以通过 ftp 来完成这件事,但我选择使用一个Web服务器因为在上面的步骤 1 中我提及到使用Web服务器。因此,我们现在要对 Apache 服务器进行配置:

我们将为我们本地的软件仓库目录 建立一个到 Apache 托管目录 --- 即 /var/www/ubuntu --- 的符号链接。

1.$ sudo ln -s /linoxide /var/www/ubuntu
2.$ sudo service apache2 start

上面的命令将允许我们从本地主机(localhost) --- 即 http://127.0.0.1(默认情况下) --- 浏览我们的镜像软件仓库。

4. 配置客户端

最后,我们需要在其他的电脑中添加软件源,来使得它们可以从我们的电脑中取得软件包或软件仓库。为达到此目的,我们需要编辑 /etc/apt/sources.list 文件并添加下面的命令:

1.$ sudo nano /etc/apt/sources.list

添加下面的一行到/etc/apt/sources.list中并保存。

1.deb http://192.168.0.100/ubuntu/ trusty main restricted universe

注: 这里的 192.168.0.100 是我们的服务器电脑的局域网 IP 地址,你需要替换为你的服务器电脑的局域网 IP 地址

1.$ sudo apt-get update

最终,我们完成了任务。现在,你可以使用sudo apt-get install packagename 命令来从你的本地 Ubuntu 软件仓库中安装所需的软件包,这将会是高速的且消耗很少的带宽。

Centos7中配置NIS的详细过程

阅读(539)评论(0)

NIS(Network Information Service)
在有多台linux服务器的环境中,且一台linux服务器的账号又有很多且可能会相同,所以会出现理员很难管理的现象。NIS的主要功能是对主机账号系统等系统信息提供集中的管理。
当NIS客户机需要进行用户登录的信息验证时,就向NIS服务器发出查询请求。当系统中的一台NIS服务器为多台NIS客户机提供服务时,用户登录系统中的任何一台NIS客户机都会从NIS服务器进行登录验证,这样就实现了集中管理用户账号的功能。

网络环境准备

名称 ip 地址 主机名称

NIS服务器
13.10.29.2
node292

NIS客户端
13.10.29.3
node293

安装前准备

1、停止firewall

systemctl stop firewalld

2、禁止firewall开机启动

systemctl disable firewalld.service

2、修改selinux

vi /etc/selinux/config

将SELINUX=enforcing改为:SELINUX=disabled
,并执行setenforce 0使他立即生效,当然你也可以重启机器

NIS服务器操作

1、安装软件包

yum -y install ypserv ypbind yp-tools rpcbind

2、设置NIS网络名称

vi /etc/sysconfig/network

在里面添加一行NISDOMAIN=nisdomain,用来指定NIS服务器的域名称为nisdomain

3、增加开机自动加入NIS域

vi /etc/rc.d/rc.local

在里面添加一行/bin/nisdomainname nisdomain

注意哦~~此时可以使用nisdomainname直接查看,如果发现没有展示设置的域名,再输入nisdomainname nisdomain

4、创建域用户(组)

useradd -s /bin/bash nisuser

并设置用户密码

passwd nisuser

创建用户组

groupadd nisgroup

5、设置主要配置文件添加权限

vi /etc/ypserv.conf

添加如下三行,限制了只能加入13.10网段的服务器

自动草稿

6、在NIS域服务器中添加NIS客户端的信息

vi /etc/hosts

在里面添加如下两行:
13.10.29.2 node292
13.10.29.3 node293

7、启动NIS服务

systemctl start rpcbind
systemctl start yppasswdd
systemctl start ypserv

8、初始化数据库

/usr/lib64/yp/ypinit -m

再执行“ctrl+D”,再输入y

注意哦~~如果期间有更改NIS服务器的配置文件,则需要重新初始化数据库

9、初始化数据库后需要重启服务

systemctl start rpcbind
systemctl start yppasswdd 
systemctl start  ypserv

10、设置服务开机自启动

systemctl enable rpcbind
systemctl enable yppasswdd
systemctl enable ypserv

NIS客户端操作

1、安装软件包

yum -y install ypbind yp-tools  rpcbind

2、在网络中添加NIS域

vi /etc/sysconfig/network

在里面添加一行NISDOMAIN=nisdomain

3、设置开机自动加入NIS域

vi /etc/rc.d/rc.local

添加/bin/nisdomainname nisdomain

同样注意哦~~此时可以使用nisdomainname直接查看,如果发现没有展示设置的域名,再输入nisdomainname nisdomain

4、在NIS客户端中添加NIS服务器的信息

vi /etc/hosts

13.10.29.3 node293
13.10.29.2 node292

5、用图形界面配置NIS,直接输入:

authconfig-tui

自动草稿

自动草稿

6、启动服务

systemctl start rpcbind
systemctl start ypbind

此时可以验证下是否部署成功,在客户端上输入yptest,如果能看到nis服务器上的用户,恭喜部署没有问题啦。

以上NIS环境已经部署结束了!!

解决Linux安装Mysql5.7时出现报错”The GPG keys listed for the MySQL 5.7 Community Server”

阅读(514)评论(0)

安装版本是linux的mysql5.7,安装时按照网上的文章安装,结果报错了:The GPG keys listed for the MySQL 5.7 Community Server,在网上找大半天,终于得到解决。

Linux安装Mysql5.7时出现如下报错

自动草稿

问题原因

这是由于MySQL GPG 密钥已过期导致的 问题解决出处 https://bugs.mysql.com/bug.php?id=106188

解决办法

需要如下运行命令, 以2022年为例

  1. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

然后重新执行

  1. yum -y install mysql-community-server -y

登录

忘记密码 ?