Nameless a lightweight Tunnel Server


A light-weight tunnel server which should work on Linux and Mac OS in C language.

And an iOS client App for test ( See below ).

Features

  1. Tunnel connection directly, without proxy server in-middle.
    ( also, you can enable the build-in proxy for something else )
  2. SSL/TLS build-in support.
  3. Multiple clients ( authorizate with username/password ).

Quickstart

  • Get the copy of source code
mkdir -p ~/Workspace/nameless
cd ~/Workspace/nameless
gc clone https://github.com/muzalkue/nameless.git src
ls -al ~/Workspace/nameless/src/
  • Generate cert and key file ( for SSL/TLS )
mkdir ~/Workspace/nameless/tls
cd ~/Workspace/nameless/tls
openssl -ras ... 
ls -al ~/Workspace/nameless/tls/
  • Enable system network forwarding
# check 
sysctl net.ipv4.ip_forward
0

# change configuration 
# ( If you want to make this configuration permanent,
#   check this: http://goo.gl/j5dIc )
sudo sysctl net.ipv4.ip_forward=1

# check again
sysctl net.ipv4.ip_forward
1

# ref: http://goo.gl/j5dIc
  • Add iptables rules ( for tunnel traffics forwarding )
# Allow traffic initiated from tunnel to access public network
iptables -I FORWARD -i tun+ -o eth0 -s 10.10.1.0/24 -m conntrack --ctstate NEW -j ACCEPT


# Allow established traffic to pass back and forth
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT


# Masquerade traffic from tunnel to public network
iptables -t nat -I POSTROUTING -o eth0 -s 10.10.1.0/24 -j MASQUERADE

# ref: https://goo.gl/rt7QI
  • Build nameless server
cd ~/Workspace/nameless/src
./build.sh
./nameless_server --help
  ( read the  )
  • Run nameless server
cd ~/Workspace/nameless/src
./build.sh
./nameless_server --help
./nameless_server --level 8 --output 1 --ssl 1
 ( waiting for client connection... )
  • Launch your client app
//

Clients

iOS

Nameless client for iOS

A tiny utility for network-related development:

  • Monitor network flow packets ( RX/TX byres )
  • Block a network request ( e.g. HTTP/HTTPS/DNS )
  • Filter contents

App Store

#### Mac `Not yet`

Others

( maybe you can write your own one )


Nameless: means An App with No Name