Just Start Typing Text and Press Enter

alt text
WuSiYu
学生,Web开发者
2018年十一月
« 10月    
 1234
567891011
12131415161718
19202122232425
2627282930  

友情链接

文章归档

Menu
Close
8月 20, 2018

Linux软路由中NetworkManager和ss-tproxy关于dnsmasq的一些坑

0 Comment | By

NetworkManager是一个现代的网络连接管理器,被广泛用于Linux桌面系统上。对于Linux服务器,往往采用的是netctl等其他主要基于配置文件的方式。但对于家用Linux软路由等民用场景,由于使用场景可能经常变化,使用配置文件的方式就会显得很繁琐,不过其实我们完全可以也使用NetworkManager来配置网络,NetworkManager的nmtui工具能够在终端中提供交互式的配置界面,十分方便,比如假设一个简单的软路由,基本可以“一键”完成。(需要安装dnsmasq)

当在NetworkManager中将连接模式选择为Shared后,NetworkManager就会自动为你设置好nat,并启动dnsmasq作为DHCP server和DNS服务器。

一般情况下,NetworkManager的这番操作自然不会有任何问题,但如果我们使用了ss-tproxy来实现全局自动翻墙,会再启动一个dnsmasq,和原来的产生冲突。

ss-tproxy的dnsmasq会运行DNS服务,并通过ChinaDNS之类的程序来实现DNS抗污染,所以我们只需要关掉NetworkManager的那个dnsmasq的DNS功能就可以让他们两个同时允许,互不干扰。

创建/etc/NetworkManager/dnsmasq-shared.d/disable-dns.conf文件并加入以下内容即可安全的禁用其DNS功能:

但同时运行两个dnsmasq还会有另一个问题:ss-tproxy在stop或者restart时,会kill掉所有的dnsmasq进程,包括NetworkManager的那个,而NetworkManager并不会自动重启它的dnsmasq,遇到这种情况时,最简单的方法就是重启一下机器,或者重启一下NetworkManager服务。

0

Leave A Comment

Author Details
SiYu Wu 学生,Web开发者,智能硬件&IOT爱好者
Share Post