XX-net / XX-Net

A proxy tool to bypass GFW.
33.04k stars 7.69k forks source link

Install Miredo on macOS #8425

Open qingsheng0214 opened 6 years ago

qingsheng0214 commented 6 years ago

经过很长一段时间摸索,终于成功在macOS上(macOS Sierra Version 10.12.6)安装了Miredo,现在已试用一周,基本稳定,因此现在希望把这个经验分享给各位macOS的使用者,也希望各位能够帮助测试是否还有其它的问题(比如最新的macOS 10.13以上版本),最终使得macOS上miredo的使用更加完美。下面简单介绍一下具体步骤:

  1. Download & Install Tunnelblick (for signed tun purpose)

     https://tunnelblick.net/downloads.html
  2. Check whether has installed MacPorts & Execute the command below in Terminal

     port
  3. If not installed yet, Download & Install MacPorts

     https://www.macports.org/install.php
  4. Execute command & Install Miredo

      port search miredo
      sudo port install miredo
  5. Execute commands as below in Terminal & Check whether has loaded tun-signed kext

     kextstat | grep tun
  6. If exists, skip this step. If empty, Execute command & Try to load tun-signed.kext from Tunnelblick.app

    sudo kextload /Applications/Tunnelblick.app/Contents/Resources/tun-signed.kext
  7. Start up Miredo

    sudo miredo

  8. Check tun-signed.kext and Miredo again

     kextstat | grep tun
     ps aux | grep miredo

完成以上步骤,就可以使用Miredo了,关键点就在于Tunnelblick和MacPorts,如果还是不成功的话,各位还是要多摸索一下了。祝各位都能成功并使用顺利。

另: 当然,各位可以简单写一个脚本,在开机的时候使用root权限执行一下来启动Miredo,大概的脚本如下所示:

!/bin/bash

SIGNED_TUN_PATH=/Applications/Tunnelblick.app/Contents/Resources/

cd $SIGNED_TUN_PATH sudo kextload tun-signed.kext sudo miredo

jinde-liu commented 6 years ago

有效,而且不需要关闭苹果的sip

tongchow commented 6 years ago

到第七步输入sudo miredo后似乎会出现: Cannot create PID file /opt/local/var/run/miredo.pid: Resource temporarily unavailable Please make sure another instance of the program is not already running.

qingsheng0214 commented 6 years ago

@dlzdyl 使用ps aux | grep miredo看看是不是miredo已经启动了,一般正常启动之后有三个pid及相应的进程,如下图所示。正常启动之后就不用再次sudo miredo来启动Miredo了;如果想结束之前启动的Miredo,可以使用sudo pkill -9 miredo命令完成,再次启动Miredo,就使用sudo miredo就可以了。 miredo

JoelynZhou commented 6 years ago

执行port提示command not found

subcrew commented 6 years ago

@JoelynZhou /opt/local/bin/port

iamqk commented 6 years ago

macOS high Sierra sudo kextload /Applications/Tunnelblick.app/Contents/Resources/tun-signed.kext 这个步骤会有问题 在 系统偏好设置- 安全与隐私 - 允许 一下就好了

liamlee commented 6 years ago

终于可以了

felixsiu commented 6 years ago

@qingsheng0214 干货,感谢楼主,macos 10.11.6 可以安装,但是xx-net ipv6 status 还是fail。 相同网络条件下win10 ipv6没有问题。 terminal 执行 sudo miredo -f 强制前台运行,显示错误如下: sudo miredo -f Nov 19 10:46:37 miredo[967] : 启动中... dyld: lazy symbol binding failed: Symbol not found: _clock_gettime Referenced from: /opt/local/lib/libteredo.5.dylib Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _clock_gettime Referenced from: /opt/local/lib/libteredo.5.dylib Expected in: /usr/lib/libSystem.B.dylib

不知道具体是什么问题? 查了miredo 的文档,也找不到其他显示状态的方法。请楼主赐教。

maarxv commented 6 years ago

可以啦,谢谢楼主

subcrew commented 6 years ago

macOS 10.13.1, tun0能获取到2001开头ipv6地址,但是xx-net ipv6 status fail,哪位知道这是什么原因吗,🙏

Test with IPv4 DNS record   ok (0.693s) using ipv4
Test with IPv6 DNS record   timeout (15.017s)
Test with Dual Stack DNS record   ok (0.866s) using ipv4
Test for Dual Stack DNS and large packet   ok (0.458s) using ipv4
Test IPv4 without DNS   ok (0.421s) using ipv4
Test IPv6 without DNS   timeout (15.011s)
Test IPv6 large packet   timeout (15.022s)
Test if your ISP's DNS server uses IPv6   ok (1.788s) using ipv4
Find IPv4 Service Provider   ok (0.847s) using ipv4 ASN 4134
Find IPv6 Service Provider   timeout (15.086s)
onplus commented 6 years ago

@gwanii ipv6.test-ipv6.com

felixsiu commented 6 years ago

miredo 我重新安装了一遍,现在可以正常使用,为免少走弯路 ,建议port里面安装miredo前做以下: 1.安装 xcode command line tools:terminal内运行xcode-select --install 2.ports 先升级一下index:sudo port selfupdate 3.sudo miredo 后看是否成功 可以 运行ifconfig | grep tun0 ,如果看到有返回证明tun0虚拟网卡运行正常。

系统:10.11.6,xx-net:3.8.0

wea76339 commented 6 years ago

10.13.1 安装后,xx-net仍然IPv6 Status为fail 求助 启动miredo终端显示如下: bash-3.2# sudo miredo bash-3.2# kextstat | grep tun 162 0 0xffffff7f80f93000 0x7000 0x7000 net.sf.tuntaposx.tun (1.0) 95DD963D-E23D-3B0F-8DE8-A4D2F6BFA5CC <7 5 4 1> 166 0 0xffffff7f80c36000 0x7000 0x7000 net.sf.tuntaposx.tap (1.0) 23FDB715-3D0D-3A26-ACBA-E3794C231CB7 <7 5 4 1> bash-3.2# ps aux | grep miredo root 250 0.0 0.0 655136 432 ?? S< 6:14下午 0:00.00 /usr/sbin/miredo --foreground -c /etc/miredo.conf nobody 249 0.0 0.0 663176 1176 ?? S< 6:14下午 0:00.01 /usr/sbin/miredo --foreground -c /etc/miredo.conf root 73 0.0 0.0 630816 2632 ?? S<s 6:14下午 0:00.08 /usr/sbin/miredo --foreground -c /etc/miredo.conf root 624 0.0 0.0 4276984 920 s000 S+ 6:16下午 0:00.00 grep miredo root 602 0.0 0.0 4288672 4556 ?? S 6:16下午 0:00.01 /opt/local/libexec/miredo/miredo-privproc F miredo 601 0.0 0.0 4327488 1008 ?? S 6:16下午 0:00.48 miredo root 600 0.0 0.0 4315128 1860 ?? Ss 6:16下午 0:00.01 miredo bash-3.2#

wea76339 commented 6 years ago

补充xx-net版本3.8.1。用老版本结果相同。宽带为移动宽带。

qingsheng0214 commented 6 years ago

@wea76339 test-ipv6.com测试一下,另外在miredo.conf中换一下teredo服务器并重启miredo多试一下

wea76339 commented 6 years ago

@qingsheng0214 test-ipv6.com测试结果:没有检测到您的 IPv6 地址。该怎么办?这和移动宽带有关系吗?

qingsheng0214 commented 6 years ago

@wea76339 可能有关系可能没有关系,不过我知道移动宽带是能够使用的,建议换换teredo服务器多尝试一下,应该能够稳定使用的

wea76339 commented 6 years ago

@qingsheng0214 找了一些服务器,还是不行。不知该怎么办了

wea76339 commented 6 years ago

@qingsheng0214 终于可以了,用@felixsiu的顺序,就可以,真奇怪。谢谢你们!!!!!!!

wea76339 commented 6 years ago

@qingsheng0214 只好一下子,接下来马上又不行。想重装,请问如何在终端卸载miredo呢?安装时显示:Warning: xcodebuild exists but failed to execute Warning: Xcode does not appear to be installed; most ports will likely fail to build. ---> Computing dependencies for miredo ---> Cleaning miredo ---> Scanning binaries for linking errors ---> No broken files found.

qingsheng0214 commented 6 years ago

@wea76339 应该不需要重装,还是换个好用一点的teredo服务器应该就没有问题

wea76339 commented 6 years ago

@qingsheng0214 默认服务器和芬兰的服务器能ping通,但还是不行。其它的服务器都ping不通。

hibluesea commented 6 years ago

运行sudo miredo 返回 Error: cannot open device file /dev/tun0 (Resource busy) IPv6 tunneling will not work. miredo面板一直显示黄灯,有人遇到过吗?

wea76339 commented 6 years ago

还是不成功,这是什么意思? bash-3.2# sudo miredo -f Nov 23 08:56:56 miredo[7587] : 启动中... Nov 23 08:56:56 miredo[7588] : 新 Teredo 地址/MTU Nov 23 08:56:56 miredo[7588] : Teredo 虚假隧道已启动 Nov 23 08:56:56 miredo[7588] : (地址:2001::53aa:64c:c7d:efc9:8fcc:c468,MTU:1280) route: writing to routing socket: not in table delete net default: not in table add net default: gateway tun1 Nov 23 08:56:56 miredo[7588] : Internal IPv4 address: 192.168.0.103 Nov 23 08:56:56 miredo[7588] : packet passed to maintenance procedure Nov 23 08:57:26 miredo[7588] : packet passed to maintenance procedure

OriTheElf commented 6 years ago

Finally,it worked!👍

qingsheng0214 commented 6 years ago

@hibluesea 你是通过不同方式安装了两次miredo吗?通过MacPorts安装的应该不会在面板中显示的,建议卸载其中之一

qingsheng0214 commented 6 years ago

@wea76339 ping不ping得通关系不大,主要需要看test-ipv6.com是否能够通过测试

qingsheng0214 commented 6 years ago

@wea76339 没有遇到过这种情况,我也不清楚,抱歉

wea76339 commented 6 years ago

@qingsheng0214 哦。还是谢谢你。现在还不清楚是不是我这边的移动网络的问题,改天用电信的试试。

qhxzgl2006 commented 6 years ago

终于成功了,感谢楼主。

maarxv commented 6 years ago

不太稳定啊,最近又不行了

qingsheng0214 commented 6 years ago

@wea76339 不客气,多摸索一下看看吧,可能每个人的问题都不大一样,遇到各种各样的小问题也挺正常的,摸索的多了自己就能够解决这些问题了

qingsheng0214 commented 6 years ago

@qhxzgl2006 太客气了

qingsheng0214 commented 6 years ago

@maarxv 什么问题不稳定啊?换一下teredo服务器试一下吧,除此之外,我感觉macOS相比windows来说是稍微不大稳定一些,过一段时间可能得重启一下miredo,不知道具体是什么原因

izombielandgit commented 6 years ago

macOS 10.13.1按照教程操作一遍可正常使用,用的时间不长,稳定性未测试

可以用Automator做个AppleScript的程序,把每次重启或切换网络要运行的命令放一起:

on run {input, parameters}

    do shell script "sudo kextload /Applications/Tunnelblick.app/Contents/Resources/tun-signed.kext;sudo pkill -9 miredo;sudo /opt/local/sbin/miredo;/存放xx路径/start" password "系统密码" with administrator privileges

    return input
end run
qingsheng0214 commented 6 years ago

@izombielandgit 对Automator制作AppleScript程序不了解,你这个方案看起来非常不错,赞一个👍 @izombielandgit 尝试了一下你这个方法,效果非常好,👍

izombielandgit commented 6 years ago

@qingsheng0214 macOS上安装Miredo找了很久,终于可以用了,虽然平时用Windows多点,但不能使用总觉得哪里不对

qingsheng0214 commented 6 years ago

@izombielandgit 嗯,是的,我也是被折磨了好长时间,一直摸索,查了各种参考材料,最后才尝试成功,这样macOS用起来才感觉舒服一些,这就是依赖啊,😆

lsp0701 commented 6 years ago

MacOS: 10.12.2 XX-Net: 3.8.3 it works!!!

waterfy commented 6 years ago

@wea76339 感觉和你情况类似,有解决了求告知。

wea76339 commented 6 years ago

@waterfy 解决不了

qingsheng0214 commented 6 years ago

@wea76339 我使用sudo miredo -f前面的输出跟你的也是一样,只是你上面的最后一条输出只显示了一次,感觉好像不是什么大问题,你现在还是不能使用吗?

maarxv commented 6 years ago

@qingsheng0214 开始按照你的方法安装完成 ipv6 可用,大概用几天就就不行了。本人技术小白,不知道怎样更换 teredo 服务器?而且 Tunnelblick 这个程序每次开机还提示要什么配置文件,不知道怎么能够取消?感谢

qingsheng0214 commented 6 years ago

@maarxv 在/opt/local/etc/miredo/目录下面,使用vi工具修改miredo.conf文件中teredo服务器地址然后重新启动miredo就能够更换服务器了,只要英文可以,想必修改文件里面的内容不是很复杂吧?对于Tunnelblick提示配置文件,我倒是还没有遇到过,是不是配置文件(应该自带有配置文件)丢失了?解决这个问题应该也不会特别难吧?你可以搜索一下相关解决方法

maarxv commented 6 years ago

@qingsheng0214 谢谢,没换服务器,手动用命令行启动 miredo 就可以了,每次重启都要要手动启动太麻烦了。@izombielandgit 编写的脚本里,存放xx路径 的路径要怎么替换啊?

qingsheng0214 commented 6 years ago

@maarxv 找到你的xx-net的路径,然后填入上面的位置就可以了,也就是说让系统能够找到xx-net中start脚本所在位置以便能够启动xx-net

iamqk commented 6 years ago

贴一个我的启动miredo的脚本

!/bin/bash

echo '你的管理员密码'|sudo -S kextload /Applications/Tunnelblick.app/Contents/Resources/tun-signed.kext echo '你的管理员密码'|sudo -S miredo exit

保存后加运行属性,放到/usr/local/bin/,每次再终端运行ipv6就行了,如果想每次开机启动的话,也行,具体百度吧

wea76339 commented 6 years ago

@qingsheng0214 我装了你这个,又装了miredo-osx-prerelease2.pkg,然后启动是绿灯,界面也有ipv6网址,但是打开test-ipv6.com仍然是没有ipv6。所以我就不知道是怎么一回事了。

wea76339 commented 6 years ago

@qingsheng0214 在xx-net有ipv6手动开关的时候,这样就可以用了。但现在xx-net没有这一项,所以,就只显示请开启ipv6项。

wea76339 commented 6 years ago

@qingsheng0214 我现在是确定ipv6已成功开启,且ipv6地址都显示,但就是test-ipv6.com显示没有检测到您的 IPv6 地址,和xx-net显示IPv6 Status | Fail