tinc是一个搭建虚拟内网的客户端。
之前是参考 https://chanix.github.io/TincCookbook/examples/4-HowToInstallTincOnMacOSMojave.html 这篇文章,将其安装到Windows和Linux上的,很感谢它的分享。
这次购入了macbook,今天想起来也应该试试把mac加进去。结果发现可能是时效的问题,这篇文章里面写的攻略是错的。经过排查纠错,终于搞定了。把过程梳理一下,留给需要的朋友们。
一、安装tuntap
攻略里的第一句话提到了,官方用的macport+xcode安装的方式很复杂,推荐使用homebrew这个包管理器来安装,这个没有问题。
之后原文推荐安装tuntap,这里就有问题了:
brew cask install tuntap
因为在2025年,tuntap已经不可获取了。 homebrew会推荐安装另一个叫做 tunetag的软件
brew install --cask tunetag
可以看到,cask命令也换位置了,从brew的后面,改为–cask参数在install的后main。
至于这个包是干什么的,我们下面再说。
二、tinc的位置
原文紧接着安装了tinc。安装后的位置,里面写的路径是:
/usr/local/etc/tinc/
这个也过时了。我查了一下,这个貌似是intel架构的mac产品时代的配置文件所在位置。
新的apple芯片的版本,homebrew安装的tinc,使用的配置文件,在下面这个地址
/opt/homebrew/etc/tinc
但是有个问题 ,这个tinc目录,刚装完是没有的,需要我们自己创建,但是启动tinc时,它会默认从这个目录里找。所以我们的配置文件要放进这里,才会比较方便。
三、tinc.conf 配置
这个是区别最大的地方。在windows里,我们是直接安装了一个虚拟网卡,然后用那个网卡作为tinc的虚拟网卡。
但是mac这里,是可以直接创建虚拟网卡的,就是前面说的那个tuntap。所以mac这里的tinc 文件里面多了两行,以这篇参考文章的例子https://blog.messyidea.com/archives/56/
Name = name
AddressFamily = ipv4
Interface = tun0
Device = utun66
ConnectTo = server
注意这里有个Interface和Device。写了两个之前未见过的内容。它的逻辑是这样的:
- mac版的tinc,需要自己创建虚拟网卡,虚拟网卡分tun和tap类型,所以Interface=tun0的意思,就是自己创建一个tun0类型的设备。
- 而第二个utun66,这个就是个名字。是可以自己随便起的。tinc会用这个名字创建虚拟网卡,建完后在ifconfig里看到的就是这个名字。所以取个大点的数字,不会重名。
另外,我参考了deepseek的建议,又加了一行:
InterfaceName = tun0
说是可以避免后面建立tunc-up和tunc-down时出现问题,反正我不懂,那就加一下保个险。
四、tinc-up的配置
tinc-up配置跟之前有点区别。原文在$interface后,只写了对端的IP地址,而没有写自己这边的ip地址。另一个文章里,则是如下:
#!/bin/sh
ifconfig $INTERFACE 10.0.7.6 10.0.7.1 netmask 255.255.255.0
route -v add -net 10.0.7 10.0.7.1
interface后,先是本机的ip地址,然后才是对端的IP地址,后面还加了一条route 配置。
tinc-down里也有个对应的操作:
#!/bin/sh
ifconfig $INTERFACE down
route -v delete -net 10.0.7 10.0.7.1
删除这套路由。
我也不太懂这两者的区别,但总之按这个操作,最后是成功了。
发表回复