我有一个脚本(红宝石):
require 'ffi/pcap'
pcap = FFI::PCap::Live.new(:dev => "wlan0", :timeout => 1)
pcap.loop() do |this,pkt|
puts pkt.body
end
Run Code Online (Sandbox Code Playgroud)
当我尝试运行脚本时,出现以下错误:
pcap_open_live(): wlan0: 您无权在该设备上捕获(套接字:不允许操作) (FFI::PCap::LibError)
当我在 Mac 操作系统上运行此代码时,一切正常。
我试过:
sudo setcap cap_net_raw,cap_net_admin=eip ~/.rbenv/shims/ruby
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
但我仍然有这个问题。
可以在没有 root 的情况下运行此代码吗?授予用户能够通过脚本使用网络设备的权限?
每次打开电脑时,我都必须手动设置# ip link set wlp5s0 up才能使用无线卡。有没有办法在重新启动后保持此设置?因此,如果我设置界面,up它会一直保持状态,直到我将其关闭。如果可能的话,我想避免使用第三方网络管理器。使用拱门。
我的情况是,我有一个支持 10/100/1000 的 PHY,仅用于支持 10/100。
默认行为是使用自动协商找到最佳模式。在另一端,使用具有千兆功能的路由器以非工作接口结束。我猜自动协商永远不会收敛。我听说有些人尝试过使用 100Mbps 交换机,并且效果很好。
我可以使用它,ethtool但这很令人沮丧:
ethtool -s eth1 duplex full speed 100 autoneg off
我想要做的是保持自动协商,但从选择中撤回 1000baseT/Full,以便它最终以 100Mbps 的速度无缝运行。有什么方法可以使用ethtool或内核选项来实现?(在我的 2.6.32 内核上没有找到任何东西......)
(让我们说一些奇怪的家伙带着 10Mbps 交换机来找我,我需要这个 eth 来使用另一个世纪的这个交换机)
我正在尝试配置 PC 引擎框以运行 OpenEmbedded 构建,其中一个或多个网络接口关闭了自动协商,但我的 .link 文件中似乎缺少某些内容。在启动时,我收到以下消息:
Dec 26 23:20:07 rl-000db948364a systemd[1]: Started udev Kernel Device Manager.
Dec 26 23:20:07 rl-000db948364a systemd-udevd[231]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Dec 26 23:20:07 rl-000db948364a systemd-udevd[244]: link_config: Cannot set device settings for eth2 : Invalid argument
Dec 26 23:20:07 rl-000db948364a systemd-udevd[244]: Could not set speed or duplex of eth2 to 100 Mbps (full): Invalid argument
Dec 26 23:20:07 rl-000db948364a systemd-udevd[232]: link_config: autonegotiation is unset or enabled, …Run Code Online (Sandbox Code Playgroud) 我全新安装了 Ubuntu Server 16.04。安装后,网络连接正常。
我安装了 QuickBox,它是一个种子/种子服务器软件 ( https://quickbox.io )。
安装后还是正常的;我可以通过 SSH 进出没问题。但是,安装建议我重新启动服务器以获取某些文件以完成安装。
重新启动服务器后,我失去了所有网络连接;我继续收到错误:
RTNETLINK answers: File Exists
Failed to bring up eno1
Run Code Online (Sandbox Code Playgroud)
接口文件看起来不错,有正确的网络信息。在接口配置中也没有设置重复的网关。
我运行以下命令来获得一些反馈并得到这个:
sudo ifdown eno1 && sudo ifup -v eno1
ifdown: interface eno1 not configured
configuring interface eno1=eno1 (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 216.176.200.X/255.255.255.X broadcast 216.176.200.X
RTNETLINK answers: File …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Sun Ultra 10 上使用 Debian 安装媒体救援模式,以便我可以使用 shell 调查我拥有的旧 SCSI 磁盘。
似乎可以使用除网络引导映像以外的任何东西的 SPARC 构建的 Debian 的最后一个版本 (7.x)。我正在使用 7.11.0 DVD 1 ISO 的副本。
当我从光盘启动并继续执行救援安装提示时,我得到Detecting Network Hardware了 0% 的系统挂起。
如何禁用网络自动探测?
根据 SPARC 上的 wheezy 手册,netcfg/disable_autoconfig为此提供了引导参数。但是启动
rescue netcfg/disable_autoconfig=true
Run Code Online (Sandbox Code Playgroud)
在 SILO 提示符下似乎没有任何影响——Detecting Network Hardware最终仍显示该步骤并且系统挂起。
一位响应者指出,引导参数netcfg/disable_dhcp=true记录在某些安装介质的 F8 帮助中(尽管 SPARC 并不奇怪——它没有这样的帮助功能),但是我也尝试了这个引导参数并得到了类似的结果。
为了寻找想法,我查看了 wheezy 的示例 preseed 文件,它指出该boolean参数netcfg/enable可用于完全禁用网络配置;但是启动rescue netcfg/enable=false也没有效果。也许参数只是没有从 SILO 提示传播到debian-installer. 有没有其他方法可以做到这一点?
由于第一个比 debian 更好的序列性和简单性,我在离开 debian 后为我的笔记本电脑使用了devuan linux。
我真的很满意,但我有下一个问题:
当操作系统启动时,如果我的以太网电缆没有插入或者即使我的连接有问题,它会等待大约 20 秒,同时:
配置互联网接口
......然后它说:
ifup 已经配置好了。完毕
或类似的东西,即使它真的配置了接口(如果从一开始就没有真正连接电缆,那真的很少见 - 我可能有电缆问题,因为它太长,或者可能是因为端口有问题-) 即使接口没有真正配置,我也无法访问互联网。
我想要的是:1)一种保存配置的方法,不需要等待这 20 秒ifup 在每次启动时重新配置,而是能够使用
service networking restart
Run Code Online (Sandbox Code Playgroud)
如果我的互联网在启动过程中没有真正配置。
PS:每次启动需要等待 20 秒真的很多,很多时候我只想脱机工作而无需插入电缆。
/etc/network/interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp …Run Code Online (Sandbox Code Playgroud) 我的系统是戴尔 PowerEdge T140,运行 Ubuntu 18.04.2。
我有一个依赖于主机主 IP 地址的服务,如果该地址未在主机上配置,该服务将无法启动。
有没有办法netplan让静态配置的接口启动,即使该接口的链接在启动时关闭,如果链接在任何给定时间丢失,也可以保持它?我还没有能够做到这一点,无论NetworkManager是networkd作为渲染器还是作为渲染器。
在我的测试过程中,我试图用 强制网络ip link set eno1 up,但它没有用。但是,例如ifconfig eno1 192.168.1.1 netmask 0xffffff00 确实有效,并且可能我可以将其用作解决方法(通过执行诸如将该命令添加到rc.local并强制重新启动损坏的服务之类的操作)。
然而,变通解决方案非常难看,它使用了一个ifconfig不再在默认安装中的工具 ( ),所以我宁愿避免它,并坚持尽可能接近标准配置。
我认为这个网站上有一个类似的问题(如何永久禁用网络接口?),但答案主要是针对 Ubuntu 的,那里描述的方法没有帮助。
我正在尝试关闭 enp1s0f2 接口,但它在重新启动时不断返回。
我尝试了命令“ifconfig(接口)down”、“ifdown(接口)”,并编辑 /etc/network/interfaces 以添加以下几行:
《iface(接口)inet 手册》和《iface(接口)inet6 手册》
据说 NetworkManager 或其他任何管理它的东西,不会在启动时加载它,但无济于事。
如何在 Debian 上永久禁用此界面?
有没有一种干净的方法,不涉及一个一个地禁用所有设备 systemctl 服务?如果在任何时候我再次需要该接口,我必须记住所有涉及的服务并再次重新启用它们,这将是一种耻辱,另外,必须有一个更简单的直接方法,对吧?
我需要找出有多少服务正在侦听我的接口(仅限 ipv4,而不是 localhost)
$ ifconfig
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.129.56.137 netmask 255.255.0.0 broadcast 10.129.255.255
inet6 dead:beef::250:56ff:feb9:8c07 prefixlen 64 scopeid 0x0<global>
inet6 fe80::250:56ff:feb9:8c07 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:b9:8c:07 txqueuelen 1000 (Ethernet)
RX packets 3644 bytes 330312 (330.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3198 bytes 679711 (679.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host> …Run Code Online (Sandbox Code Playgroud)