Giter VIP home page Giter VIP logo

tether-ios's Introduction

Tether

Tether your unjailbroken iPhone to your desktop computer via USB for free*! This was inspired by iProxy, but I always had trouble getting the damn ad-hoc wifi network to work reliably.

Right now this is mainly proof-of-concept... but it works! It will let you create a SOCKS proxy running on your iPhone and mirror the socket to your local machine over USB via usbmuxd.

Instructions

Getting the Code

$ git clone [email protected]:chrisballinger/Tether-iOS.git
$ cd Tether-iOS
$ git submodule update --init --recursive

Installing Tether (iOS)

Open Tether.xcodeproj and select the Tether target and install it on your iPhone. This will start a SOCKS proxy on port 8123 on the phone, but be warned that you must keep the app in the foreground to accept new sockets. Currently the app is just a blank white screen. You can theoretically use any other SOCKS proxy app instead but I haven't tested this.

Installing TetherMac

Now build the TetherMac target and run it on your local machine. This will create a local listening socket on port 8000 that forwards everything to port 8123 on the phone over USB.

Configuring Firefox

Open up Firefox and go to Preferences -> Advanced -> Network -> Manual Proxy Configuration. Important: make sure to delete the entries and ports for HTTP proxy, SSL proxy and FTP proxy or Firefox will use those instead of the SOCKS proxy settings. Enter 127.0.0.1 for SOCKS Host and 8000 for the port and make sure SOCKS v5 is selected.

Now go to about:config in the address bar and change network.proxy.socks_remote_dns to true. This will make sure you resolve domain names over the SOCKS proxy instead of on your local machine.

Problems Connecting? Try this.

  1. Close Tether, TetherMac and Firefox.
  2. Open up the Tether iOS app and keep it in the foreground.
  3. Connect your iPhone to your computer with a USB cable.
  4. Open up TetherMac.
  5. Open up Firefox and double-check your proxy settings.

Caveats / TODO

  • The interface isn't very user friendly, so it would be nice to pretty it up a bit.
  • In order to install the iOS app you need a $99/yr iOS Apple Developer account, or a friend with one willing to install it for you.
  • It would be nice to also tether your iPhone to your iPad via MultipeerConnectivity framework but I heard it's pretty slow in practice.
  • You must keep the iOS app in the foreground to accept new connections. Once a connection has been established you can background the app for short times without interrupting your active connections by pretending to be a VoIP app.
  • Not all of your internet traffic can go over a SOCKS proxy. Possible solution to investigate is tun2socks. I made some progress porting it to Mac OS X.
  • This shit leaks memory all over the place.

Dependencies

  • ProxyKit - Objective-C SOCKS 5 / RFC 1928 proxy server and socket client libraries built upon GCDAsyncSocket.
  • libusbmuxd - A client library to multiplex USB connections from and to iOS devices.

Author

Chris Ballinger

bitcoin paypal

License

GPLv3+

tether-ios's People

Contributors

chrisballinger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tether-ios's Issues

iOS 9 - Xcode 7?

So... There wasn't an answer to the iOS 8 question, but I am hoping that this project can get fired up again because with the release of Xcode 7 we can compile apps to our phones without the need for a dev account. I would LOVE to have a wifi tether app where I didn't need a jailbreak that I could self-compile to my phone.

Pods-TetherMac.xcconfig

The file "Pods-Tether.xcconfig" couldn't be opened because there is no such file. (~/Documents/Tether-iOS/Pods/Pods-Tether.xcconfig)

After taking a look at the .gitignore (in both the TetherMac and Tether files), on line 11 you have "Pods/" commented out. It would be much appreciated if you could include this directory and its contents in the master branch. This would help prevent build failures, which are currently happening.

Thank you.

Tun/Tap Suggestion

Back in 2011 a company called Tether implemented full scale tethering almost identically to how you are doing it now with one small caveat. They created a virtual network interface on your Mac which routed the networking over the virtual interface into a local program running on OS X and then they muxed over USB to the iPhone via a socks proxy. The reason they created a virtual networking interface for this is because SOCKS tethering is not real tethering. A lot of applications do not support SOCKS and most of the OS doesn't support it as well. With the use of Tun/Tap you can create a virtual network that can route your Mac's network requests into a listening/running OS X program which can forward the requests to a socks server listening on your iPhone. You might want to check this out.
http://tuntaposx.sourceforge.net

I noticed that you were mentioning tun2socks, however an actual virtual network interface would likely cause less headaches and would work loads better.

;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.