2018-07-26 17:48:24 -04:00
|
|
|
# sam-forwarder
|
2018-12-03 12:13:06 -05:00
|
|
|
|
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
|
2019-08-19 02:45:09 -04:00
|
|
|
on the local host. This is no longer substantially a work-in-progress, it's a
|
|
|
|
very useful way of configuring applications in an i2ptunnel-like way. TCP and
|
|
|
|
UDP are supported, but there may be some lingering bugs in UDP, please report
|
|
|
|
them if found.
|
2018-12-03 13:53:48 -05:00
|
|
|
|
2019-05-11 00:35:43 -04:00
|
|
|
## getting
|
|
|
|
|
|
|
|
go get -u github.com/eyedeekay/sam-forwarder/samcatd
|
|
|
|
|
2018-07-23 22:18:15 -04:00
|
|
|
## building
|
2019-05-11 00:35:43 -04:00
|
|
|
|
2018-07-23 22:18:15 -04:00
|
|
|
Just:
|
|
|
|
|
|
|
|
make deps build
|
|
|
|
|
|
|
|
and it will be in the folder ./bin/
|
|
|
|
|
2018-07-28 10:17:32 -04:00
|
|
|
[](https://travis-ci.org/eyedeekay/sam-forwarder)
|
|
|
|
|
2018-12-04 11:47:48 -05:00
|
|
|
## Usage:
|
|
|
|
|
|
|
|
There are a number of ways to use sam-forwarder:
|
|
|
|
|
|
|
|
### [usage/configuration](docs/USAGE.md) as an application(Start here for samcatd)
|
|
|
|
|
|
|
|
### [embedding](docs/EMBEDDING.md) in other applications
|
|
|
|
|
|
|
|
### [encapsulate](docs/PACKAGECONF.md) configuration for i2p-enabled packages
|
2018-07-28 03:51:05 -04:00
|
|
|
|
2019-04-25 22:58:49 -04:00
|
|
|
### [implement](interface/README.md) the interface for fine-grained control over SAM connections
|
|
|
|
|
2018-09-12 23:58:25 -04:00
|
|
|
## binaries
|
|
|
|
|
2019-08-19 02:45:09 -04:00
|
|
|
The standalone application for configuring tunnels is named samcatd and it's
|
|
|
|
main package is in the directory ```./samcatd```. It works as a cli and is
|
|
|
|
capable of running a WebUI, which is currently view-only. In a future time, the
|
|
|
|
WebUI will also be capable of configuring and editing tunnels.
|
2018-12-04 11:47:48 -05:00
|
|
|
|
2019-08-19 02:45:09 -04:00
|
|
|
The previous application ephsite has been fully retired. If you were using it,
|
|
|
|
it can usually be replaced with ```samcatd -s``` and your existing arguments.
|
2018-07-30 21:06:05 -04:00
|
|
|
|
|
|
|
Current limitations:
|
|
|
|
====================
|
|
|
|
|
2018-12-02 12:04:05 -05:00
|
|
|
I need samcatd to accept a configuration folder identical to
|
|
|
|
/etc/i2pd/tunnels.conf.d, since part of the point of this is to be compatible
|
2018-12-04 10:30:14 -05:00
|
|
|
with i2pd's tunnels configuration. Once this is done, I'll resume turning it
|
|
|
|
into a .deb package.
|
2018-12-02 12:04:05 -05:00
|
|
|
|
2018-09-18 01:27:11 -04:00
|
|
|
It doesn't encrypt the .i2pkeys file by default, so if someone can steal them,
|
|
|
|
then they can use them to construct tunnels to impersonate you. Experimental
|
|
|
|
support for encrypted saves has been added. The idea is that only the person
|
|
|
|
with the key will be able to decrypt and start the tunnels. It is up to the user
|
2019-01-22 17:15:04 -05:00
|
|
|
to determine how to go about managing these keys. Right now this system is
|
|
|
|
pretty bad. I'll be addressing that soon too.
|
2018-09-17 23:40:09 -04:00
|
|
|
|
2019-05-25 14:56:37 -04:00
|
|
|
Experimental support for KCP-based error correction and streaming-over-datagrams
|
|
|
|
is in the works. Some kind of reverse-proxy or filter is also an obvious choice.
|
2019-02-09 13:41:53 -05:00
|
|
|
|
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
|
2018-09-13 20:15:42 -04:00
|
|
|
be added within 24 hours. I intend to have configuration options for all
|
|
|
|
relevant i2cp and tunnel options, which I'm keeping track of
|
2018-09-14 00:23:10 -04:00
|
|
|
[here](config/CHECKLIST.md).
|
2018-08-01 22:25:13 -04:00
|
|
|
|
2019-05-25 14:56:37 -04:00
|
|
|
I need to just change how the configuration is done entirely. I want it to work
|
|
|
|
with the configuration formats used by each I2P router.
|
2018-08-08 16:13:09 -04:00
|
|
|
|
2019-08-19 02:45:09 -04:00
|
|
|
TLS configuration is experimental. I have decided to implement optional,
|
|
|
|
automatically-configured self-signed TLS certificates. No CA support is planned
|
|
|
|
as an alternative CA would have to be used and no apparent option exists which
|
|
|
|
would be usable. If you're working on anything like that, I would like very
|
|
|
|
to know.
|
2018-09-13 20:01:57 -04:00
|
|
|
|
2018-12-04 12:20:27 -05:00
|
|
|
## Stuff that's using it:
|
|
|
|
|
|
|
|
Mostly mine, but this is all Free-as-in-Freedom for anyone to use:
|
|
|
|
|
|
|
|
* [eephttpd](https://github.com/eyedeekay/eephttpd)
|
|
|
|
* [my fork of wikigopher](https://github.com/eyedeekay/wikigopher)
|
|
|
|
* [orangeforum](https://github.com/s-gv/orangeforum)
|
|
|
|
|
2018-12-03 13:53:48 -05:00
|
|
|
Donate
|
|
|
|
------
|
|
|
|
|
|
|
|
### Monero Wallet Address
|
|
|
|
|
|
|
|
XMR:43V6cTZrUfAb9JD6Dmn3vjdT9XxLbiE27D1kaoehb359ACaHs8191mR4RsJH7hGjRTiAoSwFQAVdsCBToXXPAqTMDdP2bZB
|
|
|
|
|
|
|
|
### Bitcoin Wallet Address
|
|
|
|
|
|
|
|
BTC:159M8MEUwhTzE9RXmcZxtigKaEjgfwRbHt
|
2019-04-25 22:58:49 -04:00
|
|
|
|
|
|
|
Index
|
|
|
|
-----
|
|
|
|
|
|
|
|
* [readme](index.html)
|
|
|
|
* [usage](usage.html)
|
|
|
|
* [configuration](packageconf.html)
|
|
|
|
* [embedding](embedding.html)
|
|
|
|
* [interface](interface.htnl)
|