AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1612537
Accepted
Krechet USA
Krechet USA
Asked: 2020-12-25 23:50:25 +0800 CST2020-12-25 23:50:25 +0800 CST 2020-12-25 23:50:25 +0800 CST

多个接口匹配同一个子网 - 如何解决这个问题?

  • 772

我有一个带有 lan 接口 (eth0) 和 wan 接口 (wlan0)-usb wifi 适配器的树莓派 2。我的操作系统是树莓派。我想将我的树莓派用作 wifi AP。因此,有必要在我的 wlan0 上运行 ics-dhcp-server。

我想要一个共享的本地网络,这样 PC 和 wi-fi 客户端可以互相看到。所以:

  • PC 通过有线连接连接到路由器的 (192.168.254.4) 局域网,它们的静态 IP 范围为 192.168.254.1 - 192.168.254.99(192.168.254.4 除外)。树莓派 LAN ip 为 192.168.254.97。
  • Wi-FI 客户端已连接到我的树莓派,并且 ip 应在 192.168.254.201 - 192.168.254.250 范围内。树莓派 wlan ip 为 192.168.254.200。

互联网使用 MASQERADE 从 lan 到 wlan。

我的配置是:

猫/etc/dhcp/dhcpd.conf:

subnet 192.168.254.0 netmask 255.255.255.0 {
interface wlan0;
    range 192.168.254.201 192.168.254.250;
    option broadcast-address 192.168.254.255;
        option routers 192.168.254.200;
    default-lease-time 600;
    max-lease-time 7200;
    option domain-name "local";
    option domain-name-servers 8.8.8.8, 8.8.4.4, 64.6.64.6, 64.6.65.6;
host wlan0 {
fixed-address 192.168.254.200;
}
}

猫/etc/default/isc-dhcp-server:

INTERFACESv4="wlan0"

猫/etc/dnsmasq.conf

interface=wlan0
dhcp-range=192.168.254.201,192.168.254.250,255.255.255.0,24h

猫/etc/dhcpcd.conf

interface eth0
static ip_address=192.168.254.97
static routers=192.168.254.4
# 192.168.254.4 
static domain_name_servers=192.168.254.4
static domain_search=

interface wlan0
static ip_address=192.168.254.200/24
nohook wpa_supplicant
static routers=
static domain_name_servers=
static domain_search=

使用此配置,我在尝试启动 isc-dhcp-server 时遇到错误:

Multiple interfaces match the same subnet: eth0 wlan0
 Multiple interfaces match the same shared network: eth0 wlan0
 Can't bind to dhcp address: Address already in use

我的配置中的错误在哪里?

raspbian wireless-access-point
  • 2 2 个回答
  • 3080 Views

2 个回答

  • Voted
  1. Best Answer
    user1686
    2020-12-26T00:45:39+08:002020-12-26T00:45:39+08:00

    第一个错误是在同一个子网中有多个接口。第二个错误是您严重混淆了路由器的功能(伪装、服务 DHCP)和接入点的功能(允许访问同一子网)。从某种意义上说,他们实际上做了相反的事情。

    • 路由器连接两个完整的网络。它不会连接同一网络的两半——毕竟,如果主机“在同一个子网中”,这实际上意味着它可以在不通过路由器的情况下访问。

      所以如果你想将树莓派用作路由器(有或没有 MASQUERADE),那么两个接口必须使用不同的网络号——两边不能是相同的 192.168.254.0/24。

      但是您说“我想要一个共享的本地网络”,所以您实际上并不想将您的 Raspberry Pi 用作路由器 - 您想将其用作接入点。

    • 接入点不是路由器,而是网桥。接入点不需要提供 DHCP,因为它只是将 DHCP 请求转发到您已经拥有的前一个路由器。它也不需要“伪装”任何东西,因为无论如何它只处理单个网络。

      如果您希望 Wi-Fi 和以太网都位于 AP 的单个子网中,则必须将它们明确桥接在一起。桥接后,eth0 和 wlan0 将不再拥有自己的 IP 地址——只有桥接器本身“br0”需要一个地址。

      (接入点可以提供 DHCP 服务——但前提是您的主路由器不提供服务。请记住,您需要一个共享网络,并且整个网络只需要一个DHCP 服务器。)

    所以如果你想设置一个AP,有关于“raspbian bridge”的现有文章,特别是https://www.raspberrypi.org/documentation/configuration/wireless/access-point-bridged.md也适用于Raspbian。

    (但不是 https://www.raspberrypi.org/forums/viewtopic.php?t=132674 - 这在 Google 结果中排名很高,但它实际上告诉您如何设置路由器,而不是网桥。忽略该页面。 )

    但简而言之,你应该做的是:

    1. 删除“MASQUERADE”防火墙规则(它只适用于路由器,不适用于网桥);

    2. 从dhcpcd.conf中删除“interface eth0”和“interface wlan0”;

    3. 配置/etc/systemd/network/br0.netdev通过 systemd-networkd 创建网桥:

      [NetDev]
      Name=br0
      Kind=bridge
      

      别忘了systemctl enable systemd-networkd。

    4. 同样,配置 systemd-networkd 将 eth0 设置为 br0 的成员。(只有 eth0 – hostapd 本身会处理 wlan0。)

    5. 通过 systemd-networkd 或 dhcpcd(没关系)为 br0 分配一个 IP 地址。

    6. 告诉 hostapd 也将 wlan0 放入网桥:

      interface=wlan0
      bridge=br0
      

      (这必须通过 hostapd 来完成,因为 wlan0 只有在实际切换到“接入点”模式时才可桥接。)

    • 0
  2. Krechet USA
    2020-12-26T05:54:14+08:002020-12-26T05:54:14+08:00

    感谢你的回答。

    我已经完成了以下步骤:

    1. 删除防火墙规则 MASQUERADE

    2. 从/etc/dhcpcd.conf中删除了接口 eth0 和 wlan0

    3. 创建/etc/systemd/network/br0.netdev:

      [网络开发]

      名称=br0

      种类=桥梁

    4. 创建/etc/systemd/network/br0-slave.network:

      [匹配]

      名称=eth0

      [网络]

      桥=br0

    5. 创建/etc/systemd/network/br0.network:

      [匹配] 名称=br0

      [网络]

      地址=192.168.254.106/24

      网关=192.168.254.4

      DNS=192.168.254.4

    6. 我的/etc/hostapd/hostapd.conf现在是:

      接口=wlan0

      #国家=俄罗斯

      桥=br0

      司机=nl80211

      #driver=ath9k_htc

      #驱动程序=mt7601u

      ssid=某个名字

      hw_mode=g

      频道=7

      wmm_enabled=0

      macaddr_acl=0

      auth_algs=1

      ignore_broadcast_ssid=0

      wpa=2

      wpa_passphrase=somepass

      wpa_key_mgmt=WPA-PSK

      wpa_pairwise=TKIP

      rsn_pairwise=CCMP

      logger_syslog=-1

    7. 我还在我的/etc/rc.local中添加了一个“killall wpa_supplicant” ,所以现在是:

      rfkill 解锁 wifi

      killall wpa_supplicant

      出口 0

    并重新启动。现在我有一个可以使用互联网的 AP,但是当我尝试使用我的 Raspberry 连接到任何服务器/站点时,没有连接(无法执行 apt-get install ... 或 ping google.com - 主机无法访问) . 我也可以在我的 eth0 (192.168.254.105) 上看到旧的 IP 地址,尽管它在我的 /etc/dhcpcd.conf 中有注释。我还能在哪里找到我的旧 eth0 ip 地址来删除它?

    • 0

相关问题

  • 尝试将旧无线调制解调器设置为中继器 - 华为 HG630a 作为客户端

  • 并排放置 Wireless-AP 和 DECT VoIP 基站 - 它们会互相干扰吗?

  • 什么是 PMKID?为什么路由器甚至会将 PMKID 泄露给未经授权的陌生人?

  • 高端路由器能解决大流量下无线性能差的问题吗?

  • 在 Raspbian PIXEL (LXDE) 上自动启动 qbittorrent

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve