≡ Menu

Linux / UNIX: Speed up SSH X11 Forwarding

I‘ve an CentOS based server and Ubuntu based desktop pc. I’m connecting to my CentOS using ssh X11 forwarding feature. However, speed over the Internet is pretty slow for certain apps such as VMWare console. How do I speed up OpenSSH X11 forwarding using Linux / UNIX desktop system?

You need to use the following syntax to speed up SSH 11 forwarding:

ssh -X -C -c cipher1,cipher2 user@server.example.com


  • -X : Turn on SSH X11 forwarding
  • -C : Requests compression of all data. You can also specifies the compression level to use if compression is enabled using the CompressionLevel option in ssh_config file. The argument must be an integer from 1 (fast) to 9 (slow, best). The default level is 6, which is good for most applications.
  • -c : Set ciphers. Blowfish is a fast block cipher; it appears very secure and is much faster than 3des. (see sshd man page for more info).

In this example, connect to the ssh server called www544.nixcraft.net.in using vivek user and start firefox browser:
$ ssh -X -C -c blowfish-cbc,arcfour vivek@www544.nixcraft.net
[www544 ~] $ firefox &

You can avoid typing by editing /etc/ssh/ssh_config file as follows:

Cipher blowfish
# default line 
##Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
## see man page for more info on Ciphers 
Ciphers blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc
Compression yes

Save and close the file. You can now simply connect it as follows:
$ ssh -X vivek@www544.nixcraft.net
[www544 ~] $ firefox &


  • man pages – ssh, ssh_config, sshd
Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:

{ 8 comments… add one }
  • yoander January 6, 2011, 5:27 pm

    Hello vivek, Why OpenBSD logo?

  • Alex January 7, 2011, 8:19 am

    …since OpenSSH came from OpenBSD :)

  • Wizzy April 14, 2012, 9:17 am

    Just the second
    -C Requests compression of all data (including stdin, stdout, stderr, and data for forwarded X11 and TCP connections). The compression algorithm is the same
    used by gzip(1), and the “level” can be controlled by the CompressionLevel option for protocol version 1. Compression is desirable on modem lines and other
    slow connections, but will only slow down things on fast networks. The default value can be set on a host-by-host basis in the configuration files; see the
    Compression option.
    and this is I mean
    [quote]but will only slow down things on fast networks[/quote]

  • Jeevan Kadam September 23, 2013, 10:25 am

    I have used this command, but it doesn’t resolved my problem at expected level.
    I am trying to access my one of the development product which has huge configurations over the linux server. Whereas I am accessing it from my client Desktop by using X11 Forwarding option for its GUI development. What could be the another option to resolve the same or Does this required more bandwidth rate over network?

    Please suggest on the same.!


    • oldnixguy October 19, 2013, 9:44 am


      You can try NX (see http://www.nomachine.com), it really speeds things up and makes remote desktop sessions possible even on very slow lines (I could use it on a 56k phone line).

  • dimenwarper November 7, 2013, 6:14 pm

    Works great! I find the cipher was the main thing slowing my connections, blowfish is much faster.

  • Alpha December 3, 2013, 8:15 am

    Hi I want to know how to make it under windows?

    I tried Xshell+Xming under windows 7

    but it’s very slow…

    I tried script below
    ssh -c arcfour,blowfish-cbc -XC username@host

    But when I use Xshell it’s always think “-c arcfour,blowfish-cbc -XC username” is my username!

    Is there any other way to make it faster?

  • datruche October 15, 2015, 4:06 pm

    As Wizzy noted above, CompressionLevel is available for SSH1 only (unsecure). As one can read in the man page:
    [quote]CompressionLevel …..The meaning of the values is the same as in gzip(1). Note that this option applies to protocol version 1 only.[/quote]

    Also OpenSSH 6.7 (2014-10) and 7.0 deprecated a number of ciphers of which blowfish-cbc and arcfour* (http://www.openssh.com/txt/release-7.0 ). Check your client’s ssh config file, and your server’s in case you move files on LANs where security is less a concern.

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">

   Tagged with: , , , , , , , , , , , , , , , , , , ,