如何在完全不断开连接的情况下更改远程主机的主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)来“欺骗” 。但是,我认为理论上可以正确地做到这一点。
你怎么认为?
我注意到根据网卡的品牌,接口名称有所不同(我想取决于驱动程序)。
确切地说,在 pfSense 下,我无法将 ALTQ 与链路聚合 (LAG) 虚拟接口一起使用。
由于缺乏适当的抽象层,这是 BSD 内部限制吗?
我建立了一个br0“附加”到两个接口的网桥:
eth0,我的物理接口连接到真正的局域网, vnet0,一个 KVM 虚拟接口(连接到 Windows VM)。 我在前向链中有这个单一的防火墙规则:
iptables -A FORWARD -j REJECT
Run Code Online (Sandbox Code Playgroud)
现在,唯一有效的 ping 是从 VM 到主机。
该br0接口拥有我主机的 IP 地址。eth0而vnet0没有“拥有”任何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 流量应仅暗示eth0和vnet0。然而,它看起来像是允许带有-o br0“作品”的FORWARD 流量(虽然我没有仔细检查)。
在 Linux 上,我想知道哪个进程使用我的磁盘 I/O 带宽。
我知道我可以使用,iotop但我有一台由于各种原因iotop无法安装的机器。
如何手动获取该信息?(它iotop本身是如何进行的?)
我有两个私人 ssh 密钥:
我将这两个密钥添加到我的 ssh-agent 中ssh-add。
现在,当我这样做时,我ssh -A root@jobsrv只想为我的工作密钥(我用来连接的密钥)转发代理身份验证jobsrv。
我想要这个,因为任何拥有 root 访问权限的人都jobsrv可以使用我的代理向我的个人机器进行身份验证。
有没有办法实现这种隔离?
当我希望 Linux 在不重启的情况下考虑新创建的分区时,我有几个工具可用于强制刷新内核“分区缓存”:
partx -va /dev/sdXkpartx -va /dev/sdXhdparm -z /dev/sdXsfdisk -R /dev/sdXpartprobe /dev/sdX我不确定这些技术之间的区别,但我认为它们不使用相同的ioctl,例如BLKRRPART或BLKPG。那么,它们之间有ioctl什么区别呢?
有时,当我将系统设置为睡眠状态(挂起到 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) 如何进入某种“私有” zsh shell 会话,其中我的任何命令都不会记录在磁盘历史记录中?
我知道可以选择在任何/每个命令之前添加空格字符,以避免将其记录在历史记录中,但是,我正在寻找一种不需要在每个命令前面添加空格的解决方案。
如何检查是否/my/dir与 位于同一分区/?
这是用于脚本中的集成。应该正确处理绑定安装。欢迎使用 POSIX 兼容解决方案。
我有一个 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=1024和seek=写入驱动器不同区域的选项。结果一样。
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了复制后的持续时间。
为什么会有这么大的性能差异?
linux ×4
shell-script ×2
api ×1
bluetooth ×1
bridge ×1
dd ×1
filesystems ×1
firewall ×1
freebsd ×1
hdparm ×1
io ×1
ip ×1
iptables ×1
kernel ×1
mount ×1
networking ×1
partition ×1
performance ×1
pfsense ×1
privacy ×1
proc ×1
routing ×1
scripting ×1
security ×1
sfdisk ×1
ssh ×1
ssh-agent ×1
usb-device ×1
usb-drive ×1
zsh ×1