由于我对网络只有基本的了解,所以我很难提出这个问题——对我温柔一点,我是一个乡下男孩。
我的家庭网络设置了常用的无线/以太网路由器,与 ISP 通信,处理 DHCP,并且我认为将 DNS 请求转发到 ISP 的 DNS 服务器。
我们的客厅在三楼,路由器在一楼——实际上顶楼几乎没有任何无线覆盖。不过,我有一条从路由器到顶楼的 CAT5e 以太网电缆,我的 Ubuntu 15.10 机器插入了这根电缆,网卡为 eth0。
Ubuntu 机器上还有一张无线网卡,因此我使用“create_ap”将 Linux 机器设置为无线接入点。Create_ap 在(大部分)默认设置下运行良好(我将频道改为 3 以避开邻居的信号)。我现在在顶楼有一个非常快的 wifi 信号。Create_ap 正在 NAT 模式下运行。
问题是新创建的接入点似乎将自己设置为(我认为)不同子网上的网关?抱歉,这里的术语不太清楚,但主以太网 DHCP 正在发布 192.168.1.x 范围内的 IP,而 create_ap 正在运行自己的 DHCP 服务器,发布 192.168.12.x 范围。
通常,这对于网络上的几乎所有用途来说都不是问题,我们可以连接我们的智能手机并上网、发送电子邮件等。
我的具体问题是我们有一个连接到以太网 192.168.1.x 网络的 Apple TV 盒。我们想将智能手机上的视频播放/屏幕镜像到 AppleTV 盒上,但无法实现,因为它们不在同一个“网络”上。
我认为这意味着要解决这个问题,我们需要为智能手机和 AppleTV 分配同一范围内的 IP(即 192.168.1.x)。
尝试修复:
我配置了 create_ap,以设置 IP 地址为 192.168.1.3 的接入点作为网关,并发出 192.168.1.5-254 范围内的 IP。不出所料,这没有奏效 - 想想看,我在同一个域上有两个 DHCP 服务器。我想我可以 ping 到 192.168.1.1,但网页浏览结果显示“没有 DNS 服务器”
然后我把主路由器改为只在 192.168.1.5-199 范围内发布 DHCP IP,把 create_ap 改为使用 192.168.1.1 作为网关,在 192.168.1.200-220 范围内发布。这也不起作用。
与 2 类似,只是我告诉 create_ap 使用 192.168.1.3 作为网关 IP。
我认为,如果我可以将主路由器用于 DHCP,并使接入点将所有 DHCP 请求转发到主路由器,那么问题可能就会得到解决。这就是桥接吗?create_ap 具有“桥接”模式,而不是 NAT。我有限的知识只停留在桥接是什么、它可以用于什么以及它可能如何有用。
或者有没有办法欺骗智能手机 IP,使它们看起来像是在 192.168.1.x 网络上?
非常感谢您的想法。
这是在配置中 ifconfig 的输出,该配置为智能手机提供互联网访问,但不会连接到 Apple TV。
enp3s0 Link encap:Ethernet HWaddr c8:60:00:53:e2:73
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::ca60:ff:fe53:e273/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5850994 errors:0 dropped:17 overruns:0 frame:0
TX packets:3710716 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7924568585 (7.9 GB) TX bytes:1160978370 (1.1 GB)
wlp4s6 Link encap:Ethernet HWaddr 80:1f:02:4f:17:0a
inet addr:192.168.12.1 Bcast:192.168.12.255 Mask:255.255.255.0
inet6 addr: fe80::821f:2ff:fe4f:170a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:95836 errors:0 dropped:14 overruns:0 frame:0
TX packets:133242 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8354049 (8.3 MB) TX bytes:179933721 (179.9 MB)
更新: 因此我尝试与以下设备建立桥接连接:
sudo create_ap -m bridge wlp4s6 enp3s0 AP-NAME MYPASSWORD
它创建一个 br0 接口并具有以下 ifconfig 输出。
br0 Link encap:Ethernet HWaddr 80:1f:02:4f:17:0a
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::ca60:ff:fe53:e273/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:71 errors:0 dropped:0 overruns:0 frame:0
TX packets:171 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:18583 (18.5 KB) TX bytes:57372 (57.3 KB)
这会导致无法从 Linux 机器上进行浏览(在 Chrome 上返回“无法访问此站点,找不到 www.google.co.uk 的服务器 DNS 地址。”)。但我可以 ping 通路由器 192.168.1.1,而且我的智能手机似乎可以正常浏览互联网???
这看起来像是使用 br0 接口时 ubuntu 机器上的 dns 问题。我可以 ping 路由器,并使用 192.168.1.1 浏览它。我还可以 ping google 的 dns 服务器 8.8.8.8,所以我认为我有流量,只是没有 DNS。
运行接入点时,如何让 DNS 为 ubuntu 机器工作?