我有一台机器(18.04,有时会是 20.04),它有一个有线网卡和一个带无线网卡的 USB 卡。它通常通过电缆连接,但有时电缆会断开(机械上,由某人,出于各种原因)。
我想确保静态 IP 192.168.10.1
始终可以访问:
- 插入时通过电缆,
- 或者在没有的时候通过 Wi-Fi。
有没有标准的(或至少合理的)方法来做到这一点?
我看到了一个建议将此 IP 分配给接口的问题的答案lo
:
ip address add IP/32 dev lo
但我不确定这是一个合理的方法吗?
我在 Ubuntu 18.04 上运行家庭服务器。它从 M2 内部驱动器 ( /dev/sda1
) 启动,基本上
/dev/sdc1
)/dev/mapper/data-data
)我想测试 M2(引导)驱动器发生故障的灾难场景。我的备份存储在/dev/sdc1
(也可以远程存储,这是同一类型的测试)。
为了进行测试,我想
我的主要担心(可能还有其他我不知道的)是外部 USB 驱动器是否会被识别为安装系统的“正确”驱动器。安装的连接类型是否有限制?
另一种方法是借用一个 M2 驱动器并将现有的驱动器与“恢复”驱动器交换,但我更愿意在我已经拥有的 USB 驱动器上进行测试。
另外 - 上面的测试过程是否有任何可能的问题?(尤其是从“灾难”到出现 shell 提示并开始最后一点的部分——我相信我会在最后一个问题中发现很多问题,但我将能够很好地处理它们,我的引导过程不是那种我觉得不舒服的那种)
我使用 Wireguard 作为我的主要 VPN(运行一个服务器并有几个客户端连接到它) - 它工作正常,但我今天意识到我不明白它是如何实际管理的。正是以下一系列事件使我意识到了这一点:
/etc/wireguard/wg0.conf
. 他们都正确连接。modprobe
。我从来没有真正关注过这些,因为它们承认一切都很好。然后我看了看,wg show
它没有显示对等 B。由于对等 B(= 客户端 B)在,/etc/wireguard/wg0.conf
那么一定是出了问题。解决方法:重启。
重启客户端 A 自动重连后,客户端 B 仍然没有连接(并且在 中仍然不可见wg show
,即使处于断开连接状态)。
它怎么可能一开始就被连接起来呢?(我问我自己)。
最后一个想法:
wg-quick down wg0
wg-quick up wg0
一切恢复正常,客户端 A 和客户端 B 连接。
这意味着一件事:初始(开机后或 post-apt-which-changed-kernel)启动wireguard
必须使用另一个配置文件。这是可以想象的——客户端 A 是很久以前设置的,客户端 B 是最近才添加的(到/etc/wireguard/wg0
),所以可能是我忘记了我在哪里设置的。
我过去曾经遇到过上述问题,现在我记得了,并用两个wg-quick
命令修复了它,但没有时间进一步辩论(这将解释客户端 B 是如何设法连接的)
我的问题:在 Ubuntu 18.04 中,实际启动的服务是什么wireguard
(从wireguard
PPA 安装),该服务使用的配置文件在哪里?
我想更新systemd
我的 16.04。为了访问上游,我使用Martin Pitt 的 PPA。那里的版本232+upstream20161120-0.master
。
我的版本是
root@srv /e/apt# apt-cache showpkg systemd
Package: systemd
Versions:
229-4ubuntu12 (/var/lib/apt/lists/fr.archive.ubuntu.com_ubuntu_dists_xenial-updates_main_binary-amd64_Packages)
(...)
Reverse Depends:
libpam-systemd,systemd 229-4ubuntu10
udev,systemd 224-2
(...)
Dependencies:
229-4ubuntu12 - libc6 (2 2.17) libgcrypt20 (2 1.6.1) (...)
Provides:
229-4ubuntu12 - systemd:i386 (= 229-4ubuntu12) systemd-services:i386 (= ) systemd-services (= )
229-4ubuntu10 - systemd:i386 (= 229-4ubuntu10) systemd-services:i386 (= ) systemd-services (= )
229-4ubuntu4 - systemd-services:i386 (= ) systemd:i386 (= 229-4ubuntu4) systemd-services (= )
Reverse Provides:
systemd:i386 229-4ubuntu10 (= 229-4ubuntu10)
systemd:i386 229-4ubuntu12 (= 229-4ubuntu12)
systemd:i386 229-4ubuntu4 (= 229-4ubuntu4)
看起来 PPA 没有被考虑在内,即使它是其中的/etc/apt/sources.list.d
一部分apt update
:
root@srv /e/apt# apt update
Hit:1 http://fr.archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://fr.archive.ubuntu.com/ubuntu xenial-updates InRelease
Get:3 http://fr.archive.ubuntu.com/ubuntu xenial-backports InRelease [92.2 kB]
Hit:4 http://ppa.launchpad.net/ansible/ansible/ubuntu xenial InRelease
Get:5 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
Hit:6 http://ppa.launchpad.net/pitti/systemd/ubuntu xenial InRelease
Fetched 187 kB in 0s (638 kB/s)
升级候选人:
root@srv /e/apt/# apt list --upgradable | grep systemd
libpam-systemd/xenial-updates 229-4ubuntu12 amd64 [upgradable from: 229-4ubuntu10]
libsystemd0/xenial-updates 229-4ubuntu12 amd64 [upgradable from: 229-4ubuntu10]
systemd/xenial-updates 229-4ubuntu12 amd64 [upgradable from: 229-4ubuntu10]
systemd-container/xenial-updates 229-4ubuntu12 amd64 [upgradable from: 229-4ubuntu10]
systemd-sysv/xenial-updates 229-4ubuntu12 amd64 [upgradable from: 229-4ubuntu10]
我还检查了它没有固定在某个地方,而是/etc/apt/preferences.d
空的。
编辑:评论中要求的信息:
root@srv ~# apt-cache policy systemd
systemd:
Installed: 229-4ubuntu10
Candidate: 229-4ubuntu12
Version table:
229-4ubuntu12 500
500 http://fr.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
*** 229-4ubuntu10 500
500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
100 /var/lib/dpkg/status
229-4ubuntu4 500
500 http://fr.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
为什么不建议将打包的最新版本作为更新?
我创建了一个 Ubuntu 16.04 引导程序(通过debootstrap
)来运行systemd-nspawn
(也在 16.04 上)。何时开始
# systemd-nspawn -D <mycontainer>
我得到了一个功能齐全、工作正常的系统。
我想通过该--private-users
选项放弃其特权。手册页指出
请注意,用户命名空间当前需要为正在应用的 UID 转换准备的 OS 树:用于文件所有权或文件 ACL 条目的 UID 和 GID 必须转移到容器运行时使用的容器 UID 库。
UID
与容器使用的范围有关,这应该如何完成?
作为旁注,我注意到 16.04(随systemd
版本 229 提供)没有官方文档中描述的一些可能有用的开关:--private-users-chown
和.-U
--private-users=pick
我在全新的 Ubuntu 16.04 安装上设置了一座桥,但它在“查找设备”时失败了。
它在 /etc/network/interfaces 中配置:
auto testing0
iface testing0 inet static
bridge_ports none
address 10.20.2.254
netmask 255.255.255.0
broadcast 10.20.2.255
当(重新)启动服务时,我收到一个奇怪的错误:
# ifup testing0 --verbose
Parsing file /etc/network/containers
Configuring interface testing0=testing0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/ifenslave
+ [ inet = meta ]
+ IF_BOND_SLAVES=
+ [ ]
+ [ ]
+ [ -z ]
+ exit
run-parts: executing /etc/network/if-pre-up.d/vlan
/bin/ip addr add 10.20.2.254/255.255.255.0 broadcast 10.20.2.255 dev testing0 label testing0
Cannot find device "testing0"
Failed to bring up testing0.
这是我第一次看到这样的问题(其他 Ubuntu 16.04 上的其他网桥以相同的方式设置也可以)。错误的原因可能是什么?
我想从命令行编辑 LXD 配置文件。这是通过以下方式完成的lxc profile set
:
lxc profile get <profile> <key>
获取配置文件配置。
lxc profile set <profile> <key> <value>
设置配置文件配置。
的预期格式是<key> <value>
什么?的输出lxc show profile
表明了一个点状结构:
root@ubuntu ~# lxc profile show zoneminder
name: zoneminder
config:
raw.lxc: lxc.aa_allow_incomplete=1
description: ""
devices:
eth0:
name: eth0
nictype: bridged
parent: zoneminder0
type: nic
但我什么也没做get
(更不用说 - set
)。我尝试了各种咒语(例如lxc profile get zoneminder name
, lxc profile get zoneminder lxc.name
, ... 以获得上述值name
),但它们都没有返回任何内容。
Ubuntu在 16.04中放弃了 Python 2 。不过,它在升级后仍会安装(它不是“过时软件包”的一部分)。
有没有一种干净的方法可以干净地删除 Python 2及其所有依赖项(完全摆脱它)?
是一条apt purge
路吗?
root@ubuntu ~# apt purge python2.7
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libnss-ldap
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
auth-client-config* ldap-auth-client* ldap-auth-config* libpam-ldap* libsmbclient* ndiff* python* python-bs4* python-chardet* python-crypto* python-dnspython*
python-html5lib* python-ldb* python-lxml* python-ntdb* python-pkg-resources* python-samba* python-setuptools* python-six* python-talloc* python-tdb* python2.7* samba*
samba-common-bin* samba-dsdb-modules* samba-libs* samba-vfs-modules* smbclient* winbind*
0 upgraded, 0 newly installed, 29 to remove and 0 not upgraded.
After this operation, 58.4 MB disk space will be freed.
我正在将我的 LXD 容器配置为以非特权身份运行 root。
我如何检查它们是否确实如此运行?
ps -ef
主机上显示容器中运行的所有进程都遵循模板就够了吗
165536 5284 1104 0 12:19 ? 00:00:00 /usr/sbin/sshd -D
(第一个元素是 uid)
还是有一个lxc
参数可以显示容器的“特权级别”?