r0c/README.md

61 lines
2.5 KiB
Markdown
Raw Normal View History

2018-01-07 06:08:47 +00:00
# `r0c` telnet server
* retr0chat, irc-like chat service for superthin clients
* MIT-Licensed, 2018-01-07, ed @ irc.rizon.net
2018-01-30 11:10:41 +00:00
* **[windows telnet 360 noscope](https://ocv.me/r0c.webm)** <- good video
2018-01-07 06:08:47 +00:00
2018-01-16 19:40:05 +00:00
![screenshot of telnet connected to a r0c server](doc/r0c.png)
## summary
2018-01-07 06:08:47 +00:00
2018-01-29 19:07:23 +00:00
imagine being stuck on ancient gear, in the middle of nowhere, on a slow connection between machines that are even more archaic than the toaster you're trying to keep from falling apart
retr0chat is the lightweight, no-dependencies, runs-anywhere solution for when life gives you lemons
2018-01-07 06:08:47 +00:00
* tries to be irssi
* zero dependencies on python 2.6, 2.7, 3.x
2018-01-29 19:07:23 +00:00
* supports telnet, netcat, /dev/tcp clients
2018-01-07 06:08:47 +00:00
* fallbacks for inhumane conditions
* linemode
* no vt100 / ansi escape codes
## windows clients
* use [putty](https://the.earth.li/~sgtatham/putty/latest/w32/putty.exe) in telnet mode
* or [the powershell client](clients/powershell.ps1)
* or enable `Telnet Client` in control panel `->` programs `->` programs and features `->` turn windows features on or off, then press WIN+R and run `telnet r0c.int`
putty is the best option;
* windows-telnet has a bug (since win7) where unicode letters become unstable the more text you have on the screen (starts flickering and then disappear one by one)
* the powershell client wastes a LOT of data ~~(an entire kilobyte for each new message, totally unbelievable, who could possibly afford that)~~ because powershell's scrolling is glitchy af
## linux clients
most to least recommended
| client | example |
| :--- | :--- |
| telnet | `telnet r0c.int` |
| socat | `socat -,raw,echo=0 tcp:r0c.int:531` |
2018-01-27 21:36:16 +00:00
| bash | [mostly internals](clients/bash.sh) |
| netcat | `nc r0c.int 531` |
2018-01-27 21:36:16 +00:00
you can even `exec 147<>/dev/tcp/r0c.int/531;cat<&147 &while read -rN1 x;do printf '%s' "$x">&147;done` (disconnect using `exec 147<&-; killall cat #sorry`)
2018-01-31 19:40:27 +00:00
## firewall rules
you'll want to port-forward `23` to `2323` for telnet and `531` to `1531` for plaintext:
```bash
iptables -A INPUT -p tcp --dport 23 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 531 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 2323 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 1531 -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 23 -j REDIRECT --to-port 2323
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 531 -j REDIRECT --to-port 1531
```
## documentation
not really but there is a [list of commands](doc/help-commands.md) and a [list of hotkeys](doc/help-hotkeys.md)