小编Tot*_*tor的帖子

在不失去控制的情况下更改远程主机 IP 地址 (Linux)

如何在完全不断开连接的情况下更改远程主机的IP 地址(不处于“无 IP 地址”状态)。

这件事在互联网上讨论得很少(根据我的研究)。我找到的最好的资源有点棘手。

示例:将 10.0.0.11/24 更改为 10.0.0.15/24

1. ssh root@10.0.0.11
2. ip addr add 10.0.0.15/24 dev eth0 
3. logout

4. ssh root@10.0.0.15
5. ip addr del 10.0.0.11/24 dev eth0 
Run Code Online (Sandbox Code Playgroud)

问题:最后一个命令删除了两个 IP 地址并且连接丢失,因为 10.0.0.11 是主要地址,并且在删除时删除其辅助地址(10.0.0.15 所属)。

我知道我可以通过添加 10.0.0.11/ 25(而不是24)来“欺骗” 。但是,我认为理论上可以正确地做到这一点。

你怎么认为?

linux routing ip

13
推荐指数
1
解决办法
6264
查看次数

为什么 *BSD 为网络接口使用驱动程序特定名称?这是否意味着限制?

我注意到根据网卡的品牌,接口名称有所不同(我想取决于驱动程序)。

  • 为什么 *BSD 为网络接口使用驱动程序特定名称?
  • 这是否意味着内核中没有描述“通用网络接口”的抽象层,因此每个驱动程序都将通过其自己的 API 在内部进行寻址?
  • (如何)它会影响链路聚合、流量整形、QoS ( ALTQ )、过滤等子系统?

确切地说,在 pfSense 下,我无法将 ALTQ 与链路聚合 (LAG) 虚拟接口一起使用。

由于缺乏适当的抽象层,这是 BSD 内部限制吗?

freebsd networking kernel api pfsense

13
推荐指数
2
解决办法
2071
查看次数

为什么我的防火墙(iptables)会干扰我的网桥(brctl)?

我建立了一个br0“附加”到两个接口的网桥:

  • eth0,我的物理接口连接到真正的局域网,
  • vnet0,一个 KVM 虚拟接口(连接到 Windows VM)。

我在前向链中有这个单一的防火墙规则:

iptables -A FORWARD -j REJECT
Run Code Online (Sandbox Code Playgroud)

现在,唯一有效的 ping 是从 VM 到主机。

br0接口拥有我主机的 IP 地址。eth0vnet0没有“拥有”任何IP,从主机点。Windows VM 具有静态 IP 配置。

如果将我的iptables规则更改为ACCEPT(甚至使用更严格的iptables -A FORWARD -o br0 -j ACCEPT),则一切正常!(即我可以从 VM ping 任何 LAN 机器,反之亦然)。

所有 IP 转发内核选项都被禁用(如net.ipv4.ip_forward = 0)。

那么,netfilter 防火墙如何阻止甚至没有启用的东西?

此外,VM-LAN 流量应仅暗示eth0vnet0。然而,它看起来像是允许带有-o br0“作品”的FORWARD 流量(虽然我没有仔细检查)。

firewall virtual-machine iptables bridge

12
推荐指数
1
解决办法
2万
查看次数

知道哪个进程在没有iotop的情况下进行I/O

在 Linux 上,我想知道哪个进程使用我的磁盘 I/O 带宽。

我知道我可以使用,iotop但我有一台由于各种原因iotop无法安装的机器。

如何手动获取该信息?(它iotop本身是如何进行的?)

linux scripting io shell-script proc

12
推荐指数
1
解决办法
4487
查看次数

ssh-agent:不转发整个密钥环的身份验证

我有两个私人 ssh 密钥:

  • 一个访问我的个人机器,
  • 在我的工作中访问服务器。

我将这两个密钥添加到我的 ssh-agent 中ssh-add

现在,当我这样做时,我ssh -A root@jobsrv只想为我的工作密钥(我用来连接的密钥)转发代理身份验证jobsrv

我想要这个,因为任何拥有 root 访问权限的人都jobsrv可以使用我的代理向我的个人机器进行身份验证。

有没有办法实现这种隔离?

security ssh ssh-agent

10
推荐指数
1
解决办法
1499
查看次数

强制重读分区表:BLKRRPART 和 BLKPG ioctl 之间的区别?(Linux)

当我希望 Linux 在不重启的情况下考虑新创建的分区时,我有几个工具可用于强制刷新内核“分区缓存”:

  • partx -va /dev/sdX
  • kpartx -va /dev/sdX
  • hdparm -z /dev/sdX
  • sfdisk -R /dev/sdX
  • partprobe /dev/sdX
  • ...

我不确定这些技术之间的区别,但我认为它们不使用相同的ioctl,例如BLKRRPARTBLKPG。那么,它们之间有ioctl什么区别呢?

linux partition sfdisk hdparm

10
推荐指数
1
解决办法
9423
查看次数

如何重置在 Linux 笔记本电脑上停止工作的蓝牙?(从待机状态恢复后)

语境:

  • Linux 内核 5.10.x(还有 5.18.x)
  • Thinkpad X1c (gen7) 笔记本电脑

问题:

有时,当我将系统设置为睡眠状态(挂起到 RAM)然后恢复时,将不再找到蓝牙适配器。如果我重新启动,它会再次工作。

当它起作用时,

这是(内部)蓝牙适配器,如下所示lsusb

# lsusb | grep 8087 
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Run Code Online (Sandbox Code Playgroud)

我能够扫描、连接和使用我的蓝牙设备。

当它不起作用时:

  • 通常在计算机电源暂停/恢复后(不是系统地),
  • lsusb不再显示上述设备
  • 我无法扫描、连接甚至查看我的蓝牙适配器。

kern.log说:

usb usb1-port10: Cannot enable. Maybe the USB cable is bad? 
usb usb1-port10: Cannot enable. Maybe the USB cable is bad? 
usb usb1-port10: attempt power cycle
usb 1-10: new low-speed USB device number 71 using …
Run Code Online (Sandbox Code Playgroud)

linux bluetooth usb-device

10
推荐指数
1
解决办法
1万
查看次数

暂时禁用 zsh 中的历史记录

如何进入某种“私有” zsh shell 会话,其中我的任何命令都不会记录在磁盘历史记录中?

我知道可以选择在任何/每个命令之前添加空格字符,以避免将其记录在历史记录中,但是,我正在寻找一种不需要在每个命令前面添加空格的解决方案。

command-history zsh privacy

10
推荐指数
1
解决办法
9706
查看次数

检查 2 个目录是否托管在 Linux 的同一分区上

如何检查是否/my/dir与 位于同一分区/

这是用于脚本中的集成。应该正确处理绑定安装。欢迎使用 POSIX 兼容解决方案。

mount shell-script

9
推荐指数
3
解决办法
2224
查看次数

为什么在原始设备上写入 SLOW,而在文件系统(USB 密钥)上写入 FAST?

我有一个 USB 密钥(PQI U822V-Speedy 32G),我试图在 Linux 上对 quick'n'dirty 进行基准测试。我正在测试写入带宽。

dd 在原始分区上

我创建了一个从扇区 2048 开始的分区,然后进行了 4 GB 的顺序写入:

dd if=/dev/zero of=/dev/sdb1 bs=1M count=4096
Run Code Online (Sandbox Code Playgroud)

我得到 ~22 MB/s。

我还尝试了几个 (4)dd并行运行,如上面的一个,但使用count=1024seek=写入驱动器不同区域的选项。结果一样。

dd 在文件系统上

但是,当我sdb1使用ext4或格式化分区NTFS并将大文件复制到其中(真实或/dev/zero)时,如下所示:

time dd if=/dev/zero of=/media/USBKEY/file.bin bs=1M count=4096 ; time sync
Run Code Online (Sandbox Code Playgroud)

我确实达到了制造商宣传的 > 66 MB/s。当然,我考虑sync了复制后的持续时间。

为什么会有这么大的性能差异?

performance filesystems dd usb-drive

8
推荐指数
1
解决办法
5959
查看次数