手机设置

根据具体手机,我这里是 pixel2 ,打开 设置 -> 网络与互联网 -> 热点与网络共享 -> USB共享网络设置

模块设置

要使用 USB 共享网络,必要模块如下, rndis_host cdc_ether usbnet

使用如下命令查看即可,不够一般都是预装好的

lsmod | grep rndis
lsmod | grep cdc
lsmod | grep usb

查看网卡

使用

ip addr show 

如果 ip 命令不存在,使用

sudo pacman -S iproute2

下载,ip 命令是 iproute2 软件包中的一个

一般会出现一个 enp0s 开头的网卡,我这里是 enp0s20f0u11

设置 ip

使用

ip addr show

命令可以查看 IP, 我们可以看到 enp0s20f0u11 这张网卡是没有 ip 的

我们可以使用 dhclient命令自动设置 ip,如下

sudo pacman -S dhclient
dhclient enp0s20f0u11

如果报出 无法修改一个只读文件的 error, 可以使用

sudo chmod a+w /etc/resolv.conf

命令来修改文件权限

如果报出 Operation not permitted 的 error, 这是因为 /etc/resolv.conf 这个文件被 chattr 命令锁定了,这个命令可以让 root 用户也无法修改,可以使用

ls -l /etc/resolv.conf

命令查看,如果出现 i 属性,那么就是被锁定了,可以使用

sudo chattr -i /etc/resolv.conf

命令去掉 i 属性,然后继续使用

dhclient enp0s20f0u11

命令获取 ip

然后使用

ip addr show

命令查看是否获取了 ip

最后使用

ping z.cn

命令测试是否可以使用网络

最后虽然 dhclient 命令可以获取 ip, 但是它会把 DNS 修改为只有这张网卡的服务器,虽然有备份文件,但需要我们每次都修改也比较麻烦,故我们可以直接修改 DNS

sudo vim /etc/resolv.conf

输入

nameserver 192.168.42.129

nameserver 8.8.8.8
nameserver 8.8.4.4

nameserver 198.153.192.1
nameserver 198.153.194.1

nameserver 208.67.222.222
nameserver 208.67.220.220

以后就可以自动获取 ip 了

但是如果使用 dhcpcd 的话,没吃重新连接网络都会重新生成 DNS, 这显然很讨厌,我们可以再次使用 chattr 命令为其修改权限

sudo chattr +i /etc/resolv.conf

这样就大功告成了