Have you tried disabling the auto-tuning diagnostic in Windows 7?
netsh int tcp set global autotuninglevel=disabled
Microsoft Support KB article:
When the receive window autotuning feature is enabled, older routers, older firewalls, and older operating systems that are incompatible with the receive window autotuning feature may sometimes cause slow data transfer or a loss of connectivity.
The default auto-tuning level is "normal", and the possible settings for the above command are:
- disabled: uses a fixed value for the tcp receive window. Limits it to
64KB (limited at 65535).
- highlyrestricted: allows the receive window
to grow beyond its default value, very conservatively
- restricted:
somewhat restricted growth of the tcp receive window beyond its
default value
- normal: default value, allows the receive window to
grow to accommodate most conditions
- experimental: allows the receive
window to grow to accommodate extreme scenarios (not recommended, it
can degrade performance in common scenarios, only intended for
research purposes. It enables RWIN values of over 16 MB)
To telnet from a Windows computer to a Unix computer you need to ensure that
- Windows has telnet client installed (it is not installed in latest Windows)
- Windows firewall is not blocking outgoing Telnet (very unlikely)
- Windows can resolve server's name (e.g. through DNS or local
hosts
file)
- Unix server has Telnet service enabled (increasingly being disable to encourage SSH use)
- No intermdiate firewalls are blocking Telnet (unlikely if both computers are in same subnet)
- You have valid Unix login credentials (user name and password)
Since you didn't post an actual error message but just said you "can't do telnet" - we can only guess at the problem.
To check if the Telnet service is runnning, log on at the Unix server console and use this command:
netstat -a | grep "telnet.*LISTEN"
The output should be this
tcp 0 0 *.telnet *.* LISTEN
Note: If you have problems, update your question with the actual command and error messages by using cut & paste (then edit only if needed to change confidential details)
Update:
Redhat / Fedora
Use these commands
chkconfig telnet on
chkconfig --list | grep telnet
The output from the second command should be
telnet: on
Ubuntu
sudo apt-get install telnetd
sudo /etc/init.d/inetd restart
Once installed, from the GUI, select Administration, Services and enable Telnet
Distros using Xinetd
You need a file named /etc/xinetd.d/telnet with contents something like this
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
Warning!
You shouldn't be doing this unless you are familiar with Linux, with Linux commands, with editors such as vi and have good backups and are prepared to reinstall if it all goes horribly wrong. If other people rely on this server, you should employ a systems administrator who is familiar with the particular Linux distribution you are using.
Best Answer
Edit: Of course, it's never that simple. As you've observed, Microsoft's telnet doesn't respond to
^]
while waiting for a connection.If you don't want to wait around, you only have two options:
Kill the telnet process (from another command shell or the task manager), or
Use another telnet client. PuTTY is a good choice, since it will launch as a separate window; even if you get the port wrong and the PuTTY window freezes, your command shell will be available to launch another instance with the correct port number.
Use the escape character (defaults to
Ctrl+]
). This brings up a telnet prompt at which you can close or quit the connection.You can change this to nearly anything you like on your commandline by using the
-e
flag: