所以我正在寻找的是一个接口索引(或名称),但真正的。
if_nametoindex(3)并且ioctl(2)似乎没有帮助我在这里。现在我发现如何做到这一点的唯一方法是通过/sys. 让我举例说明我需要什么:
# cat /sys/class/net/bond0.1007/ifindex
26
# cat /sys/class/net/bond0.1007/iflink
23 <-- I need either this or a reference to bond0
# cat /sys/class/net/bond0/ifindex
23
Run Code Online (Sandbox Code Playgroud)
有没有办法通过函数调用来做到这一点,或者唯一的方法是sysfs?
以下是内容/etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up /etc/network/if-up.d/sshstart
Run Code Online (Sandbox Code Playgroud)
而且sshstart是在它下面的脚本:
curl something something darkside send a file over ftps in the background &
/usr/bin/autossh -M 0 -f -N -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -R 127.0.0.1:2005:127.0.0.1:22 -R 192.168.1.10:2006:192.168.2.110:1912 -L 127.0.0.1:5249:192.168.1.212:5249 username@17.16.15.2 -p 8080
Run Code Online (Sandbox Code Playgroud)
当机器重新启动时,该curl命令被执行多次,该文件在 ftp 服务器上结束了 2 或 3 次,当我查看进程时,似乎有多个 autossh 实例正在运行......不知道是不是这样autossh 会做或不做,但肯定 curl 不应该多次上传文件。
我的预感是整个sshstart脚本运行了多次,但我不明白为什么。
我尝试在启动时搜索有关网络设置过程的详细信息,但我能找到的只是接口文件的语法信息。
有人可以帮忙吗?
谢谢你。
---编辑---
按照下面的建议,我修改了我的接口文件如下(删除了上面的空行):
auto lo
iface lo inet loopback
auto …Run Code Online (Sandbox Code Playgroud) 概括:
me@client:~$ sudo route del default ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del default dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default netmask 128.0.0.0 gw 10.144.15.234 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo route del -net default gw 0.0.0.0 dev ppp0
SIOCDELRT: No such process
me@client:~$ sudo …Run Code Online (Sandbox Code Playgroud) 事后证明,问题很可能与此处描述的问题有关。
直到昨天,互联网都很好,我连接起来没有太大问题。然后我禁用了网络接口,试图更多地了解如何管理这些东西,发出命令(wlp6s0是我的无线网络接口):
#ip link set wlp6s0 down
Run Code Online (Sandbox Code Playgroud)
接口已按预期成功禁用。不幸的是,它没有回到 UP 状态。
1)我做的第一件事当然是发出命令
#ip link set wlp6s0 up
Run Code Online (Sandbox Code Playgroud)
调出界面。这样做,没有给出任何错误,但接口保持 DOWN,如输出所示
$ip link show
Run Code Online (Sandbox Code Playgroud)
寻找journalctl或dmesg然而唯一给定的错误似乎是
$journalctl -xe | grep tail
...
IPv6: ADDRCONF (NETDEV_UP): wlp6s0: link is not ready
...
Run Code Online (Sandbox Code Playgroud)
这个错误是什么意思?
2)我最初也有netctl网络管理员。认为这可能是我卸载它的问题的根源
#pacman -R netctl
Run Code Online (Sandbox Code Playgroud)
然后继续停止netctl我能找到的服务并手动删除它们
/etc/systemd/system/multi-user.target.wants
Run Code Online (Sandbox Code Playgroud)
没有改变。
3)
在Ubuntu 论坛上讨论类似问题后,我wmi按照链接中的说明将该模块列入黑名单。仍然没有运气。
4)
搜索类似的问题,发现一个与某些硬件时钟相关的常见问题,可以通过rfkill. 但这似乎并非如此,如输出rfkill list所示:
$rfkill list
0: …Run Code Online (Sandbox Code Playgroud) 我刚刚在 VMware 8 上安装了 Cent OS 7,但无法将其连接到网络。
我检查了 VM 网络并将其映射到物理网卡。在 VM8 上运行的 CentOS 5 上,相同的设置就像魅力一样。
运行ip a命令显示以下输出:

题:
我如何才能通过/etc/network/interfaces文件专门更改enp3s0和wlp2s0接口的 Mac 地址?我必须在里面包含什么代码?我已经尝试了一段时间,但遗憾的是没有成功。
详细说明:
所以我在网上找到了这篇很棒的文章,解释了如何通过我的 Ubuntu 上的/etc/network/interfaces文件永久更改 Mac 地址。
在文章中,它说:
在 Debian、Ubuntu 和类似系统上,将以下内容放在 /etc/network/interfaces 的适当部分(在 iface 节中,例如,就在网关行之后),以便在启动网络设备时设置 MAC 地址:
hwaddress 以太 02:01:02:03:04:08
来源:https : //en.wikibooks.org/wiki/Changing_Your_MAC_Address/Linux
现在,当我使用以下代码时:
cat /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)
我得到以下输出
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
Run Code Online (Sandbox Code Playgroud)
当我在 ubuntu 上执行 ifconfig 时,我会返回 3 个不同的界面:
enp3s0
罗
wlp2s0
我想更改我所有接口(enp3s0、wlp2s0)的 mac 地址(lo 是环回,所以不需要那里),但我不熟悉/etc/network/interfaces文件中的命令。我一直在网上看教程,虽然我似乎无法把东西弄好,而且我的电脑甚至在几次之后开始表现得很奇怪。
在 Xubuntu 14.04 中,我尝试同时使用两者ip并ifconfig处理网络接口,但它们给出了相同的结果。
$ sudo ifconfig wlan0 down
$ sudo ip link set wlan0 down
Run Code Online (Sandbox Code Playgroud)
都正确放下接口,连接不工作;但是之后
$ sudo ifconfig wlan0 up
$ sudo ip link set wlan up
Run Code Online (Sandbox Code Playgroud)
没有恢复连接!
这是ip link show放下接口后的输出:
wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether <my_MAC_address> brd ff:ff:ff:ff:ff:ff
inet 192.168.1.29/24 brd 192.168.1.255 scope global wlan0
valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)
这是设置界面后的输出:
wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether …Run Code Online (Sandbox Code Playgroud) 假设我们有无线接口wlan0。什么是ip link set wlan0 up/down真正做到?给网卡上电和断电?网上很多网络配置指南都漫不经心地把它描述为简单的“调出界面”,但这到底是什么意思?
在Linux中,有什么区别离职后ip link down-condition和真正的链接不存在(例如交换机的端口被烧毁,或者有人绊到电线)。
我所说的差异是指系统中可以用来区分这两种情况的一些标志。
例如,在这两种情况下路由表是否相同?将ethtool或其他东西显示相同的东西?是否有一些工具/实用程序可以区分这些条件?
我运行的是 Debian 9.13。我试图检查auto eth1和allow-hotplug eth1之间有什么区别/etc/network/interfaces。我有eth1通过连接的网络接口USB。我尝试重新启动、运行systemctl restart networking和插入/拔出,似乎allow-hotplug和之间的主要区别auto在于,如果接口标记为auto,则命令在未连接systemctl restart networking时失败。eth1这得出的结论allow-hotplug实际上在所有情况下都是更可取的,除了我知道接口不会消失的情况(瞧,内置接口)。
这是对的吗?还有其他区别吗?
networking ×7
interface ×2
linux ×2
arch-linux ×1
boot ×1
centos ×1
command-line ×1
debian ×1
ethernet ×1
ioctl ×1
ip ×1
iproute ×1
mac-address ×1
route ×1
sysfs ×1
ubuntu ×1
wifi ×1