GetMeInternet
Version, currently master branch1 version
- master branchlatestAug 25, 2017
github.com/shelvacu/GetMeInternet
Tries to Get You Internet
Installation
# Add this to your shard.yml
dependencies:
GetMeInternet:
github: shelvacu/GetMeInternet
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
0.22.0- License
- AGPL
- Author
- Shelvacu
- Targets
pingfrom src/ping.crutilfrom src/util.crclientfrom src/client.crserverfrom src/server.crudp_pingfrom src/udp_ping.crnonce_lengthfrom src/nonce_length.cr
Dependencies
Runtime Dependencies
- tuntap*github: Papierkorb/tuntap
README
GetMeInternet
Designed to figure out how to get a connection to the internet when using a restricted network such as a public wifi with a webform login required.
Inspired by iodine (ip over DNS) and hans (ip over icmp ping)
http://sites.inka.de/bigred/devel/tcp-tcp.html
Installation
-
Install crystal and shards (although they usually come together)
-
Install the sodium development libraries
- for arch linux
sudo pacman -S libsodium - for debian/ubuntu
sudo apt install libsodium-dev
- for arch linux
-
Install crystal dependencies
crystal deps -
Compile
shards buildDebugging version
shards build -dRelease version (full compiler optimizations)
shards build --release
Usage
TODO: Write usage instructions here
-
prereqs:
- crystal https://crystal-lang.org/
- libsodium-dev (a crypto lib)
- libxml2-dev
- libyaml-dev
- shards (it's like "make")
- fork the project on github
- "shards build" to build
-
chromium will stop tun0 about 2 seconds after startup
workaround <<: in crosh shell, sudo the following
- stop shill
- start shill BLACKLISTED_DEVICEDS=tun0
First, you must select a Pre-shared Key for use between the client and server.
Run bin/util to generate a key, then copy the config.yml securely to the other end.
The server bin/server currently takes no arguments, and listens on port 5431. The
client bin/client takes one argument, the ip address of the server.
Security notes
For simplicity and connect time reduction, this program uses symmetric cryptography with a single pre-shared key, of which the client and server both have a copy. This is used for both encrypting and authenticating.
Currently, there is no mechanism in place to prevent replay attacks. Therefor, this software should not yet be considered secure.
Furthermore, no formal review of this code's security has been done, and there likely are more security-related problems that are unknown.
Contributing
- Fork it ( https://github.com/shelvacu/GetMeInternet/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- Shelvacu - creator, maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Aug 25, 2017
- Crystal
0.22.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/shelvacu/GetMeInternet
Metadata
- Created
- Aug 12, 2026
- Updated
- Oct 1, 2026
- Synced
- Oct 1, 2026
- Versions
- 1