diff --git a/SUMMARY.md b/SUMMARY.md index ae3acc8ae2..3284700a6f 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -67,6 +67,7 @@ * [Sending email](usingcurl/smtp.md) * [MQTT](usingcurl/mqtt.md) * [TELNET](usingcurl/telnet.md) + * [TFTP](usingcurl/tftp.md) * [TLS](usingcurl/tls.md) * [SSLKEYLOGFILE](usingcurl/tls/sslkeylogfile.md) * [Copy as curl](usingcurl/copyas.md) diff --git a/usingcurl/telnet.md b/usingcurl/telnet.md index a2ea4c630c..76cc420b45 100644 --- a/usingcurl/telnet.md +++ b/usingcurl/telnet.md @@ -1,3 +1,64 @@ -## TELNET +# TELNET + +Telnet is an ancient application protocol for bidirectional **clear-text** +communication. It was designed for interactive text-oriented communications +and *there is no encrypted or secure version* of Telnet. + +TELNET is not a very good match for curl. The protocol is not done to handle +plain uploads or downloads so the usual curl paradigms have had to be +stretched somewhat to make curl deal with it appropriately. + +curl sends received data to stdout and it reads input to ssend on stdin. The +transfer is complete when the connection is dropped or when the user presses +control-c. + +## Historic TELNET + +Once upon the time, systems provided telnet access for login. Then you could +connect to a server and login to it, much like how you would do it with SSH +today. That practice have fortunately now mostly been moved into the museum +cabinets due to the insecure nature of the protocol. + +The default port number for telnet is 23. + +## Debugging with TELNET + +The fact that TELNET is basically just a simple clear-text TCP connnection to +the target host and port makes it somewhat useful to debug other protocols and +services at times. + +Example, connect to your local HTTP server on port 80 and send a (broken) +request to it by manually entering `GET /` and press return twice: + + curl telnet://localhost:80 + +Your web server will most probably return something like this back: +~~~ +HTTP/1.1 400 Bad Request +Date: Tue, 07 Dec 2021 07:41:16 GMT +Server: softeare/7.8.9 +Content-Length: 31 +Connection: close +Content-Type: text/html + +[message] +~~~ + +## Options + +When curl sets up a TELNET connection to a server, you can ask it to pass on +options. You do this with `--telnet-option` (or `-t`), and there are three +options available to use: + +- `TTYPE=` sets the "terminal type" for the session to be ``. +- `XDISPLOC=` sets the X display location +- `NEW_ENV=` sets the environment variable `var` to the value `val` + in the remote session + +Login to your local machine's telnet server and tell it you use a vt100 +terminal: + + curl --telnet-option TTYPE=vt100 telnet://localhost + +You need to manually enter your name and password when prompted. -TBD diff --git a/usingcurl/tftp.md b/usingcurl/tftp.md new file mode 100644 index 0000000000..ece5d5d4fd --- /dev/null +++ b/usingcurl/tftp.md @@ -0,0 +1,3 @@ +# TFTP + +TBD