yarrick / iodine

Official git repo for iodine dns tunnel
https://code.kryo.se/iodine
ISC License
6.25k stars 507 forks source link

Support utun devices on Mac OS X. #12

Closed cpatulea closed 9 years ago

cpatulea commented 9 years ago

As of 10.6, OS X has native tunnel devices. They are implemented as sockets rather than character devices, but otherwise they appear to behave the same as Free/OpenBSD tunnels.

'-d utunX' will tell iodine to use a utun device. For backward compatibility, we'll continue to default to the old tuntap devices for now.

This is a port of Peter Sagerson psagers.github@ignorare.net's openvpn commit 43e5016a.

/cc @psagers

cpatulea commented 9 years ago

Pushed a new version (33abc0c) which fixes header mangling (looks like Darwin utun most closely resembles OpenBSD).

cpatulea commented 9 years ago

Hi, any chance this could get reviewed?

cpatulea commented 9 years ago

I'm not sure I understand your comment. You wish "// DARWIN (utun)" on line 29?

yarrick commented 9 years ago

Thanks. Can you also add a section to the manpage/readme on how to use it?

zhovner commented 8 years ago

I still can't understand ho to use it. I need to create utun interface first? If so, how to do this?

$ sudo iodine -d utun0 .....
iodine: open_tun: /dev/utun0: No such file or directory: No such file or directory

I can find only syscalls to create utun interface but it's not unsuitable for end users.

I have OS X 10.11.6 (15G1004) El Capitan

UPD

Oh, sorry, this function is not implemented in iodine-0.7.0 release version. Building from head works.