Q: I'm not real sure what httptunnel can be used for exactly? A: It's a generic tool for sending data in and out through an HTTP proxy. This is not very useful in itself, so you must run another program which uses this data "tunnel". For example, you could use telnet to log in on a computer ouside the proxy. Q: How do I get this going through a proxy? A: On the server you must run hts. If I wanted to have port 80 (http) redirect all traffic to port 23 (telnet) then it would go something like: hts -F server.test.com:23 80 On the client you would run htc. If you are going through a proxy, the -P option is needed,otherwise omit it. htc -P proxy.corp.com:80 -F 23 server.test.com:80 Then telnet localhost and it will redirect the traffic out to port 80 on the proxy server and on to port 80 of the server, then to port 23. Q: httptunnel craches my SuSE 5.3 box, why? A: I don't know, but upgrading to 6.0 seems to help. Q: I'm responsible for network security in our company. My question is: are there any characteristics of the communication that may be detected at the proxy? A: Maybe. I make no guarantees. Use the source. Q: I wrote 'hts -d /dev/ptyq1' but 'cat ) over GNU httptunnel, the program locks up after a few minutes (or hours). When I close the program and attempt to reconnect, SSH times out. What's wrong? A: Your httptunnel connection has failed on the client end (possibly due to network congestion), but the server end has not recognized that the connection has been lost and won't allow another connection until the first connection times out. To establish a more stable tunnel, try experimenting with the various options for the htc and hts programs. The following settings seem to work pretty well for me, but your mileage may vary: hts -S --max-connection-age 20000 -F localhost:22 8890 htc -F 8890 --strict-content-length -B 5k --max-connection-age 2000 -P proxy.mycompany.com:8080 10.1.1.1:8890 Q: Okay, I've found some settings that seem to work for me, but I still get "locked out" on occasion and have to wait for the server end (hts) to time out. Is there any way to reestablish the tunnel without waiting for hts to timeout? A: Set up at least two tunnels. After the first tunnel hangs, connect to the ffserver machine using SSH (or Telnet if you don't care about security) and manually kill the instance of the hts server that is hung and recreate the tunnel by running hts again. Then you should be able to reconnect to the original tunnel. BE SURE TO KILL THE TUNNEL THAT IS HUNG UP, NOT THE ONE TO WHICH YOU ARE CONNECTED! How do you do this? Here is an example of how to do this on Linux. [On a Windows server, a similar technique should work, but it may be more difficult to distinguish between separate instances of hts on Windows because Task Manager only displays the name of the program (hts) and not the full command that launched it.] #Use the 'w' option to see the entire line #so that you can determine which instance of #hts to kill depending on the port number. $ ps aux w|grep hts my_user_name 7268 0.0 0.3 1692 768 ? S Sep24 0:00 hts -S -F localhost:22 8890 my_user_name 7270 0.0 0.2 1692 744 ? S Sep24 0:00 hts -S -F localhost:22 8891 my_user_name 10515 0.0 0.2 1692 720 ? S 15:37 0:00 hts -S -F localhost:22 8889 my_user_name 10549 0.0 0.2 1624 616 pts/2 S 15:40 0:00 grep hts #assuming that the httptunnel on port 8889 is the one #that has hung up $ kill 10515 #restart hts with the same options to #reestablish the tunnel. $ hts -S -F localhost:22 8889 Once you have reestablished the tunnel, your existing instance of htc on the client should be able to reestablish the tunnel without any additional steps. If in doubt, you could also kill htc on the client and rerun htc, but I have not generally found that to be necessary. Q: Why do I keep getting errors like the ones listed below in my Application Event Log while using htc on Windows? What does "HTTP error -503" mean? 9/24/2001 2:10:15 PM htc Error None 0 N/A MYPC_NAME The description for Event ID ( 0 ) in Source ( htc ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. The following information is part of the event: htc : Win32 Process Id = 0x6BC : Cygwin Process Id = 0x6BC : exit with status = 1. 9/24/2001 2:10:15 PM htc Error None 0 N/A MYPC_NAME The description for Event ID ( 0 ) in Source ( htc ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. The following information is part of the event: htc : Win32 Process Id = 0x6BC : Cygwin Process Id = 0x6BC : couldn't open tunnel: I/O error. 9/24/2001 2:10:15 PM htc Error None 0 N/A MYPC_NAME The description for Event ID ( 0 ) in Source ( htc ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. The following information is part of the event: htc : Win32 Process Id = 0x6BC : Cygwin Process Id = 0x6BC : http_error_to_errno: HTTP error -503. 9/24/2001 2:10:15 PM htc Error None 0 N/A MYPC_NAME The description for Event ID ( 0 ) in Source ( htc ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. The following information is part of the event: htc : Win32 Process Id = 0x6BC : Cygwin Process Id = 0x6BC : tunnel_in_connect: HTTP error 503. A: HTTP 503 is the standard HTTP error that means "Service Unavailable." In this case, it means that the htc client cannot connect to the server. In the example above, the hts program had not yet been started on ther server side, but the same error might indicate other types of network or server errors.