首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更喜欢访问某些域的WIFI

更喜欢访问某些域的WIFI
EN

Ask Ubuntu用户
提问于 2021-07-13 14:44:39
回答 1查看 70关注 0票数 0

我有两个网络接口,以太网和wifi。我想告诉我的计算机更好地使用wifi连接(无论何时连接)访问特定的域,并使用以太网电缆连接其他一切。

有什么办法可以让我用/etc/hostsresolv.conf或者别的什么来摆弄它吗?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2021-07-13 15:57:05

好吧,看来我找到了解决办法。

检查设置了哪些路线:

代码语言:javascript
复制
$ ìp route show

在我的例子中给出了这样的结果:

代码语言:javascript
复制
default via 192.168.0.1 dev enp0s31f6 proto dhcp metric 100 
default via 192.168.200.68 dev wlp4s0 proto dhcp metric 600 
169.254.0.0/16 dev enp0s31f6 scope link metric 1000 
192.168.0.0/24 dev enp0s31f6 proto kernel scope link src 192.168.0.151 metric 100 
192.168.200.0/24 dev wlp4s0 proto kernel scope link src 192.168.200.78 metric 600 

这里的前两行分别显示我的以太网(enp0s31f6)和wifi (wlp4s0)的默认网关。

现在,为了查找我总是被禁止的域的IP,我使用dig命令如下:

代码语言:javascript
复制
$ dig +short a discord.com
162.159.137.232
162.159.135.232
162.159.128.233
162.159.136.232
162.159.138.232
$ dig +short a discord.gg
162.159.136.234
162.159.135.234
162.159.133.234
162.159.134.234
162.159.130.234

然后在Wifi接口上为每个目标IP添加一个路由(使用我们从第一个命令获得的Wifi接口的默认网关):

代码语言:javascript
复制
sudo route add -host 162.159.137.232 gw 192.168.200.68

等。

要在wifi连接时自动完成这些操作,如果您使用的是NetworkManager,可以向/etc/NetworkManager/dispatcher.d目录添加一个脚本。例如:

代码语言:javascript
复制
sudo nano /etc/NetworkManager/dispatcher.d/10-bloody-routes

文件名开头处的10-表示优先级。dispatcher.d目录中的脚本在网络事件(接口连接、断开连接等)上按字典顺序运行。

我在这里输入了这个bash脚本来自动化上面提到的过程:

代码语言:javascript
复制
#!/bin/bash

if [ "$1" == "wlp4s0" ] && [ "$2" == "up" ]; then
  gateway=`ip route | awk '/default/ { print $3 " " $5 }' | awk '/wlp4s0/ { print $1 }'`;
  echo "What's up, $gateway: "`date` >> /home/trollkotze/smackmybitch.up;
  echo discord.com >> /home/trollkotze/smackmybitch.up;
  for x in `dig +short a discord.com`; do
    echo route add -host $x gw $gateway >> /home/trollkotze/smackmybitch.up;
    route add -host $x gw $gateway >> /home/trollkotze/smackmybitch.up;
  done;
  echo discord.gg >> /home/trollkotze/smackmybitch.up;
  for x in `dig +short a discord.gg`; do
    echo route add -host $x gw $gateway >> /home/trollkotze/smackmybitch.up;
    route add -host $x gw $gateway >> /home/trollkotze/smackmybitch.up;
  done;
fi;

从脚本中可以看到,第一个和第二个参数是接口名称(在我的示例中我正在寻找wlp4s0)和事件(当接口联机时我正在查找up事件)。我在这里将一些日志添加到主目录中的一个文件中,以验证所有操作是否正常。

每当我现在连接我的wifi时,这个脚本就会运行,并添加适当的路径来解决wifi默认网关的问题。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1351645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档