我从 2013 年底开始在 macbook pro 上运行 macOS,但我正在阅读有关wifi 配置的 Arch wiki并专注于第一部分:
第一部分是识别并确保为您的无线设备安装了正确的驱动程序
我的目标是更好地了解如何计算:
首先,我进入“关于此 mac”菜单以获取有关network interface(是否为物理网络设备?)的一些信息:
en0:
Card Type: AirPort Extreme (0x14E4, 0x112)
Firmware Version: Broadcom BCM43xx 1.0 (7.21.171.68.1a5)
MAC Address: 60:03:08:8b:96:9c
Locale: FCC
Country Code: US
Supported PHY Modes: 802.11 a/b/g/n/ac
Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, …Run Code Online (Sandbox Code Playgroud) 有一些奇怪的事情:
在我的虚拟机上?
centos7
接口?
enp0s3: 192.168.10.110/24
lo:0 10.0.3.110/24 (ip alias)
Run Code Online (Sandbox Code Playgroud)
路线?
default via 10.0.3.2 dev lo
192.168.10.0/24 dev enp0s3
enp0s3 is plugged in 10.0.3.0/24
Run Code Online (Sandbox Code Playgroud)
我启用了 ip_forward (net.ipv4.ip_forward = 1)
我的问题?
ping 10.0.3.2 有效?但为什么呢?
tcpdump无法获取数据包enp0s3?但确实获取数据包lo。
默认路由是lo; 为什么ping 10.0.3.2有效?为什么我收不到数据包enp0s3?
一个奇怪的问题,我在互联网上的其他任何地方都没有发现,暗示这可能是我搞砸了,但是什么?
尝试启动dnsmasq.service,无论是在启动时还是从用户会话中,当所有网络服务都可用并正常工作时,都会失败并显示unknown interface enp2s0错误......除了系统的整个其余部分都声称它已启动。
andrzej@andrzej-PC ~ $ sudo systemctl start dnsmasq
Job for dnsmasq.service failed because the control process exited with
error code. See "systemctl status dnsmasq.service" and "journalctl -xe" for details.
andrzej@andrzej-PC ~ $ systemctl status dnsmasq
? dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; disabled; vendor preset:
Drop-In: /run/systemd/generator/dnsmasq.service.d
??50-dnsmasq-$named.conf, 50-insserv.conf-$named.conf
Active: failed (Result: exit-code) since Mon 2017-07-10 02:09:41 CEST; 3s ago
Process: 5551 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, …Run Code Online (Sandbox Code Playgroud) 请帮助我使我的 wifi 正常工作。过去两周我一直在研究这个问题,并尝试了许多解决方法。现在我已经重新安装了 Debian 并准备从头开始。下面是系统网络的详细信息。
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
Subsystem: Hewlett-Packard Company Device 8328
Flags: bus master, fast devsel, latency 0, IRQ 141
I/O ports at 4000 [size=256]
Memory at b1104000 (64-bit, non-prefetchable) [size=4K]
Memory at b1100000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Endpoint, MSI 01
Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
Capabilities: [100] Advanced Error …Run Code Online (Sandbox Code Playgroud) 我很难弄清楚如何正确设置它。我几乎无法制定解释它的谷歌查询,所以我会尽力做到最好。
我有一台带有两个 NIC 卡的 Ubuntu PC。
eth0 (192.168.1.0) 进入主默认网关并连接到互联网,
eth1 (192.168.176.0) 进入一个网络交换机,其中连接了一堆 IP 摄像头。
我在路由器 PC 上启用了 IP 转发和 iptables 规则和主机。eth1 网络内的主机可以访问互联网,也可以访问 eth0 网络上的其他主机。所以这很好。
我现在要做的是让 eth0 网络内的主机能够访问 eth1 网络内的主机。
计算机在 eth0 网络上,但网络摄像机在 eth1 网络上。具有两个 NIC 卡的单台计算机充当桥接器。最终我希望 eth0 上的计算机能够看到 eth1 上的 IP 摄像机。
试图将其映射出来:192.168.1.1 上的主机应该能够看到 192.168.176.1 上的主机,但不能。
192.168.176.1 上的主机可以看到 192.168.1.1 上的主机(这些主机也可以上网)。所以这里一切都很好。
到目前为止,我有这些 IP 规则,这些规则允许 eth1 网络退出。
iptables --table nat --append POSTROUTING --out-interface enp1s0 -j MASQUERADE
iptables --append FORWARD --in-interface enp3s0 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我想我的问题是:eth0 网络如何到达 eth1 网络中的主机?
我是否必须在要访问 eth1 网络的单个计算机上添加路由?
我需要在路由器 PC …
如何根据文档DEVTYPE中的要求确定以太网接口的 udev 属性(在我的机器上) 。enp3s0systemd.network
编辑
$ cat /sys/class/net/enp3s0/uevent
INTERFACE=enp3s0
IFINDEX=2
Run Code Online (Sandbox Code Playgroud)
不产生DEVTYPE财产。
编辑2
作为对 @Kevin Lemair 的回答的回应,该命令既不产生所需的 DEVTYPE,也不产生ID_TYPE属性。
$ udevadm info /sys/class/net/enp3s0
P: /devices/pci0000:00/0000:00:1c.5/0000:03:00.0/net/enp3s0
E: DEVPATH=/devices/pci0000:00/0000:00:1c.5/0000:03:00.0/net/enp3s0
E: ID_BUS=pci
E: ID_MM_CANDIDATE=1
E: ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
E: ID_MODEL_ID=0x8168
E: ID_NET_DRIVER=r8169
E: ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
E: ID_NET_NAME=enp3s0
E: ID_NET_NAME_MAC=enx7427eaa9df7d
E: ID_NET_NAME_PATH=enp3s0
E: ID_OUI_FROM_DATABASE=Elitegroup Computer Systems Co.,Ltd.
E: ID_PATH=pci-0000:03:00.0
E: ID_PATH_TAG=pci-0000_03_00_0
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Co., Ltd.
E: …Run Code Online (Sandbox Code Playgroud) 这是我的网络规划配置:
network:
version: 2
renderer: NetworkManager
ethernets:
enp2s0:
dhcp4: no
addresses: [192.168.88.13/24]
gateway4: 192.168.88.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
enp2s8:
addresses: [192.168.0.10/24]
Run Code Online (Sandbox Code Playgroud)
以前的格式(/etc/network/interfaces)包括“网络”和“广播”的信息。
broadcast 192.168.0.255
network 192.168.0.0
Run Code Online (Sandbox Code Playgroud)
现在,我应该将这些信息以新的 netplan 格式放在哪里?谢谢
注意:我没有在netplan 示例中找到此信息
在一些关于 netplan dhcp4 的教程(这里和这里)中,dhcp4 以如下方式出现:
network:
version: 2
renderer: networkd
ethernets:
enp2s0:
dhcp4: no
Run Code Online (Sandbox Code Playgroud)
或者
dhcp4: yes
Run Code Online (Sandbox Code Playgroud)
但是在netplan示例和博客中ubuntu有时会以如下方式出现:
dhcp4: true
Run Code Online (Sandbox Code Playgroud)
或者
dhcp4: false
Run Code Online (Sandbox Code Playgroud)
在其他示例中,它显示为不是/是
在 Ubuntu 18.04(yes/no或true/false)中设置 dhcp 的正确方法是什么?谢谢
我已经在 Ubuntu 16 上安装了 docker。现在我无法再连接到我的有线网络:ubuntu 正在使用 docker0 以太网接口连接到网络(wifi 接口仍然有效)
要解决该问题,我必须关闭 docker 守护进程,然后关闭 docker0 接口:
$ sudo link set docker0 down
Run Code Online (Sandbox Code Playgroud)
但是,如果我再次启动 docker 守护进程,它会设置 docker0 接口,并且我会失去本地网络连接。
docker0 接口有什么问题?我该如何解决这个问题?
谢谢 :)
在/sf/ask/1745252071/中,有人询问网络接口名称可以有多长(显然是 16 个字节)。然而,该问题的答案似乎没有链接到有关该名称的其他限制的任何信息,例如:
\nip link我能够将;rm和-f作为有效名称,但它似乎无法解析带有空格的名称(尽管这可能只是其参数解析器的产物,实际上并不是一种保护)针对有问题的价值观))。\xce\xb1显示__,并且不能通过名称删除\xce\xb1)是否有关于接口可以被调用的内容以及在哪一层强制执行的文档(例如在内核、iproute2、libc 中)?
\n上下文:编写一个接受将存储在数据库中的接口名称的 CLI 命令,我想确定可以对坏名称进行多少过滤,而不会导致奇怪命名(尽管可能不是敌意)接口的问题。
\nnetworking ×3
ubuntu ×3
linux ×2
wifi ×2
arch-linux ×1
debian ×1
dnsmasq ×1
docker ×1
ethernet ×1
internet ×1
iproute ×1
linux-kernel ×1
linux-mint ×1
netplan ×1
osx ×1
realtek ×1
routing ×1
udev ×1