Forward a local port to i2p over the SAM API, or proxy a destination to a port 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.
STATUS: This project is maintained. I will respond to issues, pull requests, and feature requests within a few days. I am not adding many new features to it at this time.
go get -u github.com/eyedeekay/sam-forwarder/samcatd
# for now
Just:
make deps build
and it will be in the folder ./bin/
There are a number of ways to use sam-forwarder:
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.
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.
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 with i2pd’s tunnels configuration. Once this is done, I’ll resume turning it into a .deb package.
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 to determine how to go about managing these keys. Right now this system is pretty bad. I’ll be addressing that soon too.
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.
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 .
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.
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.
Mostly mine, but this is all Free-as-in-Freedom for anyone to use:
XMR:43V6cTZrUfAb9JD6Dmn3vjdT9XxLbiE27D1kaoehb359ACaHs8191mR4RsJH7hGjRTiAoSwFQAVdsCBToXXPAqTMDdP2bZB
BTC:159M8MEUwhTzE9RXmcZxtigKaEjgfwRbHt
Copyright 2018 eyedeekay
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Hide license