Debian 'pocketbeagle' 上的 connmanctl

Debian 'pocketbeagle' 上的 connmanctl

我正在尝试配置我的新“袖珍小猎犬”与我的 Ubuntu (20.04) 笔记本电脑共享网络连接。 PocketBeagle 运行 Debian 版本:10.3/2020-04-06 (参考文献)。

“袖珍小猎犬”既没有 WiFi 也没有以太网——只有一个 USB 端口。它支持ssh,我可以通过两个IP中的一个或两个以这种方式访问​​开发板。如果我这样展示的话也许会更容易:

ifconfig运行“袖珍小猎犬”揭示了:

$ ifconfig
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.7.2  netmask 255.255.255.0  broadcast 192.168.7.255
        inet6 fe80::6264:5ff:fefa:813a  prefixlen 64  scopeid 0x20<link>
        ether 60:64:05:fa:81:3a  txqueuelen 1000  (Ethernet)
        ...
usb1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.6.2  netmask 255.255.255.0  broadcast 192.168.6.255
        inet6 fe80::6264:5ff:fefa:813e  prefixlen 64  scopeid 0x20<link>
        ether 60:64:05:fa:81:3e  txqueuelen 1000  (Ethernet)
        ...

ifconfig运行“乌班图”揭示了:

$ ifconfig 
enx606405fa813b: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.7.1  netmask 255.255.255.0  broadcast 192.168.7.255
        inet6 fe80::2267:92a0:a191:297d  prefixlen 64  scopeid 0x20<link>
        ether 60:64:05:fa:81:3b  txqueuelen 1000  (Ethernet)
        ...

enx606405fa813d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.6.1  netmask 255.255.255.0  broadcast 192.168.6.255
        inet6 fe80::3898:bc86:d0c2:cb53  prefixlen 64  scopeid 0x20<link>
        ether 60:64:05:fa:81:3d  txqueuelen 1000  (Ethernet)
        ...

通过一些研究,我制定了一个实现共享的程序,如下所示:

  1. 使用“乌班图”图形用户界面,我改变了“以太网连接”60:64:05:FA:81:3D默认情况下带有 MAC“自动 DHCP”到一个“共享连接”

  2. 192.168.6.1这改变了其分配的IP地址“袖珍小猎犬”10.42.0.1

进行此更改后,以下是“乌班图”其 CLI 报告:

$ ifconfig
enx606405fa813d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.42.0.1  netmask 255.255.255.0  broadcast 10.42.0.255
        inet6 fe80::3898:bc86:d0c2:cb53  prefixlen 64  scopeid 0x20<link>
        ether 60:64:05:fa:81:3d  txqueuelen 1000  (Ethernet)
        ...
  1. 此时,界面上“袖珍小猎犬”没有改变,但对于连接共享来说显然是不正确的。我从 CLI 执行了以下命令“袖珍小猎犬”
$ sudo connmanctl config usb1 --ipv4 manual 10.42.0.2 255.255.255.0 10.42.0.1 --nameservers 10.42.0.1
[sudo] password for debian: 
Error usb1: Method "SetProperty" with signature "sv" on interface "net.connman.Service" doesn't exist

尝试使用以下命令查询服务connmanctl

$ sudo connmanctl 
Error getting VPN connections: The name net.connman.vpn was not provided by any .service files
connmancconnmanctl> services

connmanctl>

我一点也不熟悉connmanctl,但我的研究表明这是正确设置 DNS 服务的唯一方法。也许我搞砸了?也许我还错过了什么?然后我决定尝试“旧方式”配置:

  1. 以下命令序列用于重新配置相应的“袖珍小猎犬”“旧方式”界面:
$ sudo ifconfig usb1 10.42.0.2 netmask 255.255.255.0 up
$ sudo route add default gw 10.42.0.1 usb1
$ sudo nano /etc/resolv.conf
#
# add line: nameserver 10.42.0.1 
# save & exit editor
#
# yes - this is an awful kludge, but it did provide DNS

这成功了!- 这“袖珍小猎犬”成功连接到互联网,DNS 也工作了。

debian@beaglebone:~$ ping unix.stackexchange.com
PING unix.stackexchange.com (151.101.1.69) 56(84) bytes of data.
64 bytes from 151.101.1.69 (151.101.1.69): icmp_seq=1 ttl=56 time=9.01 ms
64 bytes from 151.101.1.69 (151.101.1.69): icmp_seq=2 ttl=56 time=11.8 ms
...

问题:显然问题在于我的使用connmanctl,而不是“袖珍小猎犬”本身。我做错了什么 - 为什么不能connmanctl按预期工作?

答案1

我的 Pocketbeagle 也遇到过类似的问题。默认配置由 dnsmasq 组成,它充当本地 dns 服务器。每当您默认连接时,它都无法访问互联网,并提供自己的 DNS 以允许访问默认的 Cloud9 IDE。

我的临时修复是运行:
sudo dhclient -r <usb0 or usb1>

这应该会自动从主机 PC 获取并临时配置 DNS。每次重新启动 pocketbeagle 时都必须重新运行该命令。据我所知,connmanctl 不管理 Pocketbeagle 上的 DNS因此,设置名称服务器可能不会对bone-ubuntu 映像或bone-debian 产生任何影响。

要自动运行 DNS 解析器,您需要安装systemd-resolved并启用该服务,以便它在启动时启动。这通常是我用来访问互联网的方法。

相关内容