Giter Site home page Giter Site logo

tabi-proxy's Introduction

#SOCKS5 proxy server for iPhone + Mac OS X zero-configuration agent

##Overview

###Pros (in no particular order)

  • Open source (YAY!)
  • No jailbreak required
  • Cute icon. The moment I saw it I wanted to have an app that proudly carries it
  • Automatic client configuration (Mac OS X only). See Usage section
  • Growl notifications about newly discovered servers, connection, disconnection...
  • Minimalistic user interface in compliance (I'd like to think so) with Apple's guidelines
  • Ability to turn iPhone screen off while operating (cover proximity sensor with something). Saves some juice, you know...
  • Multiple clients can connect the same iPhone and share its internet connection
  • Kept me busy for couple weeks

###Cons

  1. iPhone development license is required
  2. Not real tethering
  3. Probably contains bugs. See Known bugs section. If something goes wrong and agent app exits unexpectedly, launch it again, it'll restore proxy configuration that was before any changes were made
  4. Agent does lots of debugging output onto system console. Necessary evil for time being Usage

###Mac OS X

  1. Launch Tabi agent. Enter your password when prompted - it's needed for making changes in network preferences. (I wonder what happens if user refuses to enter password - should probably file a bug report for myself...)
  2. Create ad-hoc network. I encourage you to password-protect the network

####iPhone

  1. Connect to ad-hoc network created on step 2
  2. Launch Tabi app and wait...

![](https://github.com/ywengineer/tabi-proxy/blob/master/images/iPhone_waiting_for_network.PNG) ![](https://github.com/ywengineer/tabi-proxy/blob/master/images/iPhone_ready.PNG)

whew... It's up and running. Now, switching attention back to Mac OS X

####Mac OS X

  1. If you choose Auto-Connect option, Tabi agent connects to proxy server running on iPhone by itself by changing network preferences:

![](https://github.com/ywengineer/tabi-proxy/blob/master/images/Agent_menu.png)

If you're curious you can see it for yourself by opening System Preferences -> Network -> Advanced (usually for AirPort interface) -> Proxies:

![](https://github.com/ywengineer/tabi-proxy/blob/master/images/Proxy_Settings.png)

6. After changes are made agent sends system-wide notification using Growl if available:

![](https://github.com/ywengineer/tabi-proxy/blob/master/images/Growl_notification.png)

###Known bugs
  1. Agent doesn't handle the case when user refuses to enter the password to unlock system preferences
  2. Sometimes Agent doesn't receive notification of shutdown service. Try to turn on/off SOCKS proxy on the iPhone

###Non-interesting stuff

  1. Uses Bonjour for service discovery
  2. Plausible blocks made my life easier. BTW, make sure you have it installed before you compile iPhone application
  3. Side-effect of enabling proximity sensor is ability to turn iPhone's screen off

###Plans

  • Do something about security. Option to 'connect' client machine to known iPhones only
  • Show traffic on the iPhone ???

###Credits

Snail icon is made by jordanfc

tabi-proxy's People

Contributors

ywengineer avatar

Watchers

James Cloos avatar

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.