GithubHelp home page GithubHelp logo

tcphydra-python's Introduction

This program proxies line-based TCP streams. More specifically, you can connect to MUD-like servers through it; the connection is persisted even if your client crashes and remains singular even if you connect many clients.

It also lets you write and use plugins to do fancier stuff.

$ cp config.example.json config.json
$ nano config.json
$ cd ssl; ./gen_keys.sh; cd ..
$ ./start.sh

You must provide at least an item of information (country code or an arbitrary organization name both work) to create the self-signed SSL certificate, but you can make all the other fields blank.

This code runs on Python 3.6. Older versions may not work. Python 3.4 does not work.

If you find yourself unable to use because scrypt is missing, you can change that value to pbkdf2 in config.json.

copyright

There is currently no license, open source or otherwise. This does not mean you may use or modify the code in your project.

with vagrant

There is a Vagrantfile. It requires some manual intervention on the first run; if everything is working properly it should warn you about that. I won't claim it's not fragile to changes in external systems or services but it seems to work properly.

setup as a systemd service

You can use systemctl show --property=UnitPath to tell where systemd loads unit files from, which may be useful as a debug measure. The standard location for sysadmins to place their files is /etc/systemd/system/ according to ArchWiki.

Presumably this would work for other init systems as well, just replace the systemd specific parts.

Disclaimer: I am not a Real Sysadmin.

# useradd tcphydra
# usermod -L tcphydra
# mkdir /home/tcphydra && chown -R tcphydra /home/tcphydra
# su tcphydra
$ cd
$ git clone <git repo with tcphydra code you want to install> .
$ cp config.example.json config.json
           ( edit your configuration file, or copy in an existing one instead )
$ cd ssl; sh gen-keys.sh; cd ..
           ( input details; you need at least one piece of information here )
$ ./start.sh
           ( first run requires you to create a password keyboard-interactively; kill the proxy with ^C afterwards )
$ exit

Create a unit file in the appropriate place -- in my case I used /etc/systemd/system/tcphydra.service (you don't want to put this in the subdirectory multi-user.target.wants):

[Unit]
Description=TCP line proxy

[Service]
Type=simple
User=tcphydra
Group=tcphydra
WorkingDirectory=/home/tcphydra
ExecStart=/home/tcphydra/start.sh

[Install]
WantedBy=multi-user.target

Run # systemctl start tcphydra.service and if desired # systemctl enable tcphydra.service. # systemctl status tcphydra.service to check. # journalctl -e is useful sometimes if a service is failing and you can't figure out why.

tcphydra-python's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.