Files
sam-forwarder/README.md.asc

89 lines
3.9 KiB
Plaintext
Raw Normal View History

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
2018-07-26 17:50:46 -04:00
# sam-forwarder
2018-08-16 13:46:22 -04:00
Forward a local port to i2p over the SAM API, or proxy a destination to a port
on the local host. This is a work-in-progress, but the basic functionality is,
2018-08-16 17:25:01 -04:00
there and it's already pretty useful. Everything TCP works, but UDP forwarding
is still not well tested, and UDP clients aren't enabled yet. I'm out of excuses
not to finish it now, too.
## building
Just:
make deps build
and it will be in the folder ./bin/
2018-07-28 10:17:32 -04:00
[![Build Status](https://travis-ci.org/eyedeekay/sam-forwarder.svg?branch=master)](https://travis-ci.org/eyedeekay/sam-forwarder)
2018-09-13 20:01:57 -04:00
## [usage/configuration](USAGE.md)
2018-07-28 03:51:05 -04:00
2018-09-12 23:58:25 -04:00
## binaries
Two binaries are produced by this repo. The first, ephsite, is only capable
of running one tunnel at a time. The second, samcatd, is more advanced. It can
start multiple tunnels with their own settings, or be used to start tunnels on
2018-09-13 20:01:57 -04:00
the fly like ephsite by passing the -s option. Eventually I'm probably just
going to use this to configure all of my tunnels.
Current limitations:
====================
2018-09-13 20:01:57 -04:00
I need to document it better.
[Besides fixing up the comments, this should help for now.](USAGE.md). I also
need to control output verbosity better.
2018-09-12 16:52:50 -04:00
TCP is working very well. HTTP mode also exists, which just adds the X-I2P-DEST
headers in. It does this both ways, for applying the dest headers inbound to
identify clients to the server and outbound to identify servers to clients.
DestHash's don't get added correctly due to a bug in sam3 I think? I'm working
on making sure that's what it is. Datagrams are still a work-in-progress.
They're enabled, but I don't know for sure how well they'll work yet.
2018-07-30 22:01:05 -04:00
I'm in the process of adding client proxying to a specific i2p destination by
base32 or (pre-added)jump address. TCP works well. UDP exists, but is not
thoroughly tested.
2018-07-30 22:01:05 -04:00
I've only enabled the use of a subset of the i2cp and tunnel configuration
options, the ones I use the most and for no other real reason assume other
people use the most. They're pretty easy to add, it's just boring. *If you*
*want an i2cp or tunnel option that isn't available, bring it to my attention*
*please.* I'm pretty responsive when people actually contact me, it'll probably
be added within 24 hours. I intend to have configuration options for all
relevant i2cp and tunnel options, which I'm keeping track of
[here](config/CHECKLIST.md). In particular, *Encrypted leasesets are only*
*half-implemented. The option seems to do nothing at the moment. Soon it will*
*be configurable.*
2018-08-01 22:25:13 -04:00
2018-07-30 22:01:05 -04:00
I should probably have some options that are available in other general network
2018-09-13 20:01:57 -04:00
utilities. I've started to do this with samcatd.
2018-07-30 22:01:05 -04:00
2018-08-08 16:13:09 -04:00
I want it to be able to save ini files based on the settings used for a running
forwarder. Should be easy, I just need to decide how I want to do it. Also to
focus a bit more.
2018-09-12 16:52:50 -04:00
Example tools built using this are being broken off into their own repos. Use
the other repos where appropriate, so I can leave the examples un-messed with.
It would be really awesome if I could make this run on Android. So I'll make
2018-09-12 16:52:50 -04:00
that happen eventually. I started a daemon for managing multiple tunnels and I
2018-09-13 20:01:57 -04:00
figure I give it a web interface to configure stuff with. I'll probably put that
in a different repo though. This is looking a little cluttered.
2018-08-22 22:59:04 -04:00
2018-09-12 16:52:50 -04:00
TLS configuration is experimental.
2018-09-13 20:01:57 -04:00
I'm eventually going to make the manager implement net.Conn. This won't be
exposed in the default application probably though, but rather as a library.
-----BEGIN PGP SIGNATURE-----
2018-09-14 00:16:22 -04:00
iQEzBAEBCAAdFiEEcNIGBzi++AUjrK/311wDs5teFOEFAlubNg4ACgkQ11wDs5te
FOFghQf7BHl7fQKfHQ/2rjDEQozq4OZ+4FezqmViUxFGa6fLQTfaBmlwoPKJH9hg
keNSgvCZTG3UhI9jIScBa5e6iKv99gP9f1v8jixJo/5yE78FqGkeAUUZzGESbEhq
8KRbBqY41ZjEaN5ayCiJfLBlfSWSq+VK8QTrN1wLVrAxKoXhQhMT9gVBpCGLMN3L
sx+vf+ohRXycTwC35YnbYJlKaadbuxh2UKkQGFvBBkPVVNuc7bPrCPMe3BH20ajS
x3Lg5D0e1SCKjWOMcaM4YTRkLWmcjoRTAuOS257wzWtSKzp7iigfaIdF8CpKRfwA
ZPo/ZFg6IpO1ami+qDBmoKqvJY6lvA==
=caVj
-----END PGP SIGNATURE-----