最初说明,我正在使用最新的 Mint,但我更喜欢通用(Ubuntu/Debian 甚至更广泛的)解决方案,可能也适用于无头 CLI。虽然我知道这可能是不可能的。
我有一个设备需要外部分配 IP(不能内部配置为静态)。当我将它连接到路由器时,一切正常,我可以通信PC<-->router<-->device
。但是,现在我需要建立直接连接,即PC<-->device
(设备不需要互联网访问,只需与 PC 通信)。我还希望能够继续通过 PC 上的 WiFi 访问互联网。
我尝试过的:
使用 dnsmasq 设置 DHCP 服务器:
no-resolv
no-hosts
no-daemon
bogus-priv
interface=enp8s0
port=0
dhcp-range=192.168.88.10,static,infinite
listen-address=127.0.0.1
dhcp-host=<devicemacaddr>,device,192.168.88.67
dhcp-leasefile="storage.leases"
- 工作正常,除了我必须手动添加一个接口
/etc/networking/
(因为否则 dnsmasq 会抱怨它不存在):
auto enp8s0
iface enp8s0 inet static
address 192.168.88.1
gateway 192.168.88.254
netmask 255.255.255.0
然而,这一定是搞乱了一些 DNS 设置,因为从那时起我就无法连接到某些网站。
- 删除了接口文件,转到网络管理器 > 有线并添加新的配置文件,将 IPv4 和 v6 设置为仅 Link-Local。这样,我至少成功连接到设备一次,同时保持了我的互联网连接。然而,重启后它停止工作,dnsmasq 抱怨:
no address range available for DHCP request via enp8s0
。
伟大的巫师们,请分享您的智慧。
答案1
IP 范围enp8s0
是192.168.88.0/24
,您的路由器有 IP 192.168.88.1
。
互联网已连接到路由器?
您的接口定义不需要网关
auto enp8s0
iface enp8s0 inet static
address 192.168.88.1
netmask 255.255.255.0
没问题。请注意,此 IP 范围必须是唯一的,请勿在路由器的任何其他接口上重复使用它。您的 dnsmaq.conf 文件应如下所示
no-resolv
no-hosts
no-daemon
bogus-priv
interface=enp8s0
port=0
dhcp-range=192.168.88.10,static,infinite # should be fine
# listen-address=127.0.0.1 # relevant for the gui disable after troubleshooting
dhcp-host=<devicemacaddr>,device,192.168.88.67
dhcp-leasefile="storage.leases"
dhcp-option=3, 192.168.88.1 # default router for Device
dhcp-option=6,<YOUR DNS SERVER> # optional
连接至http://<ROUTER-IP>:8080
以进行故障排除。
我最好的猜测是:
- 您将能够再次使用 PC 访问互联网
- 您将能够使用 PC 访问该设备
- 设备本身可能无法访问互联网
玩得开心