Tunnelling solutions commonly used outside the Tcl world include SSH port forwarding, Zebedee, Stunnel [1], ...
See SSL Tunnel for a script that tunnels through web proxy servers using tls.
SockSpy can also be used for tunnelling. For example, I've used it to access my university's news feed machine from a remote site (the news feed machine would only accept local connections). KPV
See also
Another recipe, for use in establishing a tunnel into a firewalled LAN that, in principle, only allows outbound SSH:
ssh -f -l special_user -N -g -R 6005:localhost:22 external_serverThen, from the external_server prompt:
ssh -p 6005 my_account@localhostThis logs into my_account@firewalled_host.This should only be used under supervision and with explicit permission from the guardians of firewalled_host, of course.
MJ - If you are behind a proxy that will only allow traffic on port 80 and you have a box you have shell access on, you can use the following script to forward requests to port 80 to another endpoint.
set dstport 8888 set dsthost host.i.want.to.go proc transfer {src dest} { set data [read $src] if {[eof $src] || [eof $dest]} { close $src close $dest } catch { puts -nonewline $dest $data flush $dest } } proc conn {socket args} { set s [socket $::dsthost $::dstport] puts "connection $socket $args -> $s" fconfigure $s -blocking 0 -translation binary -encoding binary fconfigure $socket -blocking 0 -translation binary -encoding binary fileevent $s readable [list transfer $s $socket] fileevent $socket readable [list transfer $socket $s] } socket -server conn 80 vwait forever