the fast, reliable localhost tunneling solution


Tunneling SSH over PageKite

By Bjarni R. Einarsson 2024-12-20, 22:47

SSH can be tunneled over PageKite, allowing your SSH server to be reachable from anywhere, even if behind NAT or a strict firewall. This is very handy for remote administration, automated backups or simply copying files back and forth.

Contents:


Configuring the SSH server

If you have installed PageKite with the DebianPackage or RpmPackage, follow the instructions on ConfigureYourSystem.

Assuming you already have an SSH server running on port 22 on your local machine, and the machine has an active PageKite connection named user.pagekite.me, run the following command to add it to your configuration file:

$ pagekite.py --add 22 ssh:user.pagekite.me

Alternately, you can edit the configuration file yourself, adding a line like so:

service_on=raw/22:user.pagekite.me:localhost:22:SECRET

Restart pagekite.py, and the SSH server should be accessible.

Making sure you connect to the right server

If you want to verify later that you are indeed connecting to the correct server, you can display the server's public SSH key fingerprints using commands like so:

ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub

Exactly which of the above commands apply on your system may vary (and you may need to tweak the paths slightly), but one of the listed fingerprints should be displayed by your ssh client the first time you connect.

Configuring the SSH client

If your SSH client supports it, simply configure it to use user.pagekite.me:443 as the HTTP proxy and connect to user.pagekite.me on the standard port, 22.

Note: The Windows SSHAndTunnels page describes in more detail how to configure PuTTY for use with PageKite.

Configuring openssh for HTTP Proxying

The popular OpenSSH client allows you to permanently configure specific options on a host-by-host basis, by adding sections to the file ~/.ssh/config. Note: On some systems, including OSX, ~/.ssh/config might not exist and you will have to create it.

Assuming you have the OpenBSD version of netcat installed (openssh will use it to handle the HTTP proxy connection), you can add the following three lines to your SSH configuration to permanently enable SSH-over-PageKite for the host named user.pagekite.me:

Host *.pagekite.me
  CheckHostIP no
  ProxyCommand /bin/nc -X connect -x %h:443 %h %p

(Watch out for fake line-breaks, the above should be exactly 3 lines.)

Note for OSX users: netcat is located at /usr/bin/nc instead of /bin/nc -- change the above lines accordingly

Note for Android Termux users: The OpenBSD netcat package is named "netcat-openbsd" and is located at /data/data/com.termux/files/usr/bin/nc instead of /bin/nc -- change the above lines accordingly

After making this change, you should be able to use ssh, scp and any other ssh-based commands to connect to user.pagekite.me without any special arguments:

ssh user.pagekite.me  # That's all folks!

Note: Outdated instructions have been moved: HttpBeforeSsh

Configuring ConnectBot for HTTP Proxying (Android)

The official ConnectBot Android SSH client does not support HTTP proxying. However, we have submitted a patch to the developers, which will hopefully be included in a future release.

In the meantime, our patched .apk can be downloaded from:

This adds a "Use HTTP Proxy" to the "Edit host" settings. To connect over PageKite, change this setting to: user.pagekite.me:443

Troubleshooting

Here are a few common error messages you may encounter, along with the explanations and solutions we are aware of at the moment.

/bin/nc: invalid option -- 'X'

If you see the error above, or a similar one, then you are using the wrong version of netcat - you need the OpenBSD version, or some other version which has support for HTTP proxies. Another alternative which is known to work instead of netcat, is corkscrew. Then the SSH configuration is:

Host *.pagekite.me
  CheckHostIP no
  ProxyCommand corkscrew %h 443 %h %p

ssh_exchange_identification: Connection closed by remote host

This error can mean many things - but it usually does not mean there is a problem with passwords or ssh keys!

One possible cause of this, is if you have not configured netcat or an alternative correctly for the domain name you are connecting to. Check for typos in your configuration file.

In other cases, this error may be preceded by an error from netcat or your connection tool, which will give hints about what the real problem is.

nc: getaddrinfo: nodename nor servname provided

This error means netcat was unable to look up the requested host in DNS. Usually this means you either have a typo somewhere, or your the pagekite.py connector on the SSH server side is not running properly.

nc: Proxy error: "HTTP/1.0 503 Unavailable"

This error generally means pagekite.py is not running on the SSH server or has failed to connect to the front-end relay server.

Comments

  1. zellda said on 2011-12-20, 16:19
    No luck with that.
    Get:
    /bin/nc: invalid option -- 'X'
    when I try to connect.

    nc -h shows no x-option!
    Permalink
  2. Bjarni Rúnar Einarsson said on 2011-12-20, 16:24
    You need the OpenBSD version of netcat for these examples to work. There are other tools which can accomplish the same thing, for example corkscrew (ex. http://wiki.kartbuilding.net/index.ph...).

    Basically anything which will let you connect via. an HTTP proxy will work, you simply treat your PageKite hostname as the name of an HTTP proxy on port 443.
    Permalink
  3. Frédéric Gobry said on 2012-01-30, 19:12
    corkscrew worked quite nicely for me:

    ProxyCommand /usr/bin/corkscrew %h 443 %h %p
    Permalink
  4. Amit said on 2012-02-20, 02:40
    And it works like a charm. Beauty!
    Permalink
  5. Thiago Jung Bauermann said on 2012-02-23, 03:08
    Just FYI: I asked pagekite to listen for SSH connections on a different port than the standard one (22), and when trying to connect I got:

    nc: Proxy error: "HTTP/1.1 400 Bad request"

    When I changed pagekite to listen on port 22, it worked.
    Permalink
  6. Bjarni Rúnar Einarsson said on 2012-02-23, 09:20
    Hi Thiago!

    Note that there are two port settings that matter. One is the port setting on your local computer, where the ssh daemon is listening. Usually that is 22, but sometimes people move it. The other is the "virtual port" which is sent in the HTTP CONNECT request to PageKite - that can be anything.

    For example:

    # If sshd listens on port 23 instead of 22
    # SSH clients connect to foo.pagekite.me:22
    pagekite localhost:23 raw://foo.pagekite.me
    # config file: backend=raw-22:foo.pagekite.me:localhost:23:SECRET

    # If sshd listens on the standard port 22
    # SSH clients connect to foo.pagekite.me:23
    pagekite localhost:22 raw://foo.pagekite.me:23
    # config file: backend=raw-23:foo.pagekite.me:localhost:22:SECRET

    Hope this helps!
    Permalink
  7. Thiago Jung Bauermann said on 2012-02-23, 17:32
    Hello Bjarni!

    Indeed it worked now, using your examples as references. I must have screwed up somewhere.

    Thanks for your help!
    Permalink
  8. n00bboy said on 2012-10-20, 10:43
    I have my own sub domain SSH.example.com how would I set this up to use it instead of pagekite.me tried the tutorial on public front end but i must have messed up somewhere
    Permalink
  9. John Brisbin said on 2012-12-11, 21:07
    I seem to be able to login via ssh only using the public key authentication, no password option is offered.

    I see no mention of this limitation, how can I avoid it?

    I have seen this when pagekite is installed on a Linux host as well as a Mac host.
    Permalink
  10. Bob Solomon said on 2013-01-29, 23:47
    this works for me on port 22 but does not work on an alternative port. I have sshd configured and working to connect on that port. If I change 22 to my alternative port in .pagekite.rc I get:
    ssh_exchange_identification: Connection closed by remote host

    Permalink
  11. Bob Solomon said on 2013-01-30, 00:03
    Never mind. Read #6 above and got it.
    Permalink
  12. Lukas Zapletal said on 2013-01-30, 20:38
    FYI if you tried to get this working with ncat (non-OpenBSD nc), don't bother - it does not work.

    ProxyCommand /bin/nc --proxy-type http --proxy %h:443 %h %p
    Permalink
  13. zellda said on 2013-02-26, 09:27
    Simple!
    When I follow the guide and do a:
    $ pagekite.py --add 22 ssh:user.pagekite.me
    on the server, I can connect with:
    $ ssh user.pagekite.me
    from my Linux client. Nothing more necessary. No port or anything on the client to specify.

    Don't know if it is mentioned here. Couldn't gather that from the guide so I wrote it down for anybody having trouble to connect.
    Permalink
  14. Luke Timothy said on 2013-03-13, 22:10
    Can anyone help me configure cygwin SSH?
    Permalink
  15. Alan Brenner said on 2013-03-24, 14:44
    Under Mac OS 10.7, use /usr/bin/nc on the ProxyCommand line instead of /bin/nc, and it works fine.
    Permalink
  16. Rafal said on 2013-05-07, 15:57
    One other thing to check when you have trouble getting your .pagekite.rc read correctly -- the command line config overrides what's in the .pagekite.rc, so beware! Also, the command-line config seems not to accept the whole syntax of what can be done in the .pagekite.rc (e.g. I can't do "ssh-2222://foo.pagekite.me" or "raw-2222://foo.pagekite.me").
    Permalink
  17. Rafal said on 2013-05-07, 16:01
    Oh, to follow up to the last:

    ssh://foo.pagekite.me:2222

    does seem to do what I need when specified on the command line.
    Permalink
  18. Guillermo said on 2013-08-02, 16:51
    Couldnt get it work on my mac, followed the guide, checked for typos on the config file, i did:
    $ pagekite.py --add 22 ssh:user.pagekite.me
    $ pagekite.py user.pagekite.me
    >>> Hello! This is pagekite.py v0.5.6a. [CTRL+C = Stop]
    Connecting to front-end 173.230.155.164:443 ...
    - Protocols: http http2 http3 https websocket irc finger httpfinger raw
    - Protocols: minecraft
    - Ports: 79 80 443 843 2222 3000 4545 5222 5223 5269 5670 6667 8000 8080
    - Ports: 8081 9292 25565
    - Raw ports: 22 virtual
    Quota: You have 17458.23 MB, 13 days and 6 connections left.
    ~<> Flying localhost:22 as ssh://user.pagekite.me:22/ (HTTP proxied)
    << pagekite.py [flying] Kites are flying and all is well.
    $ ssh user.pagekite.me
    ssh_exchange_identification: Connection closed by remote host

    Of course i changed the user.pagekite.me with my own kite.
    Permalink
  19. Bob Solomon said on 2014-09-29, 19:36
    I have ssh/pagekit working.

    Question is how to connect with the client behind a (squid) proxy server..

    ssh to a normal host through squid is also working (with corkscrew).

    I can connect to the pagekite host from the proxy server, but can't figure out how to chain the PorxyCommand. Aslo tried tunneling with nc with no success.

    thanks,

    Bob
    Permalink
  20. Davíð James said on 2014-12-05, 07:40
    Trying to connect to my pi via ssh on adroid. I can connect locally and I'm using your version of connectbot.

    What am I doing wrong?

    Connecting to foo.pagekite.me:22 via ssh
    Connecting via proxy: foo.pagekite.me:443

    Connection Lost
    Failed to connect to HTTP Proxy.
    Permalink
  21. Sasha said on 2014-12-11, 13:09
    Hi,
    Could you explain to me where I should set up a password(and user?) for kite when I connecting via ssh?
    Can't figure out this.

    Thank you in advance !
    -----
    Sashas-MacBook-Pro:~ Swift$ ssh foo.pagekite.me
    Swift@foo.pagekite.me's password: "What is the password?"
    Permission denied, please try again.
    Permalink
  22. mathew said on 2015-07-17, 22:13
    Hi!
    SSH worked flawlessly the first time, but we restarted the system and consistently get:

    nc: Proxy error: "HTTP/1.0 503 Unavailable"
    ssh_exchange_identification: Connection closed by remote host

    the system claims to connect successfully to the front-end at 173.230.155.164:443

    We can't figure out why it won't connect. any assistance would be great!

    thanks,
    Mathew
    Permalink
  23. Michael Breidenbach said on 2021-10-05, 18:01
    If i try to connect via ConnectBot/Android to my PageKite-Freedombox journalctl -f shows:

    sshd[27863]: Unable to negotiate with 127.0.0.1 port 54484: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 [preauth]

    is there any solution on the way?
    Thanks, Michael
    Permalink
  24. Ali Raza said on 2021-11-04, 14:37
    Ali Raza
    Permalink
  25. Silas said on 2021-11-26, 01:40
    How do I create open tunnel file and configure for internet pls help me
    Permalink
  26. Tobias said on 2021-11-27, 18:21
    La aplicación más facil
    Permalink
  27. Eoin said on 2023-12-31, 00:43
    I've got pagekite installed on my raspberry pi but cannot figure out how to actually connect to it using my Android phone.

    Looks like the ConnectBot solution doesn't work anymore.
    Can't install it on Android 14 (Samsung Galaxy S23) because it's built for an older version of Android.
    The patch submitted on gcode is gone, and that solution is 11 years old by now.

    Is there a way to use the mosy recent version of ConnectBot?
    Or does anyone have an alternative solution to SSH into pagekite using an Android phone?
    Permalink
  28. Someone said on 2025-07-09, 03:14
    Hello! I am trying to set up a ssh connection. I have configured ssh on my localhost and checked if I can connect to it localy (yes I can), then I have added ssh service to my pagekite, and started it, it shows that everything running and all good. (remark, I have started it via "pk 22 some2025test.pagekite.me")
    It shows that it's connected, then I have added on my remote linux netcat-openbsd and config file in ".ssh/config", but once I run "ssh deb@some2025test.pagekite.me" i am getting this error:

    nc: Proxy error: "HTTP/1.0 503 Unavailable"
    kex_exchange_identification: Connection closed by remote host
    Connection closed by UNKNOWN port 65535

    Yes, I saw your troubleshooting for this scenario, and also red comment #6, but none of that is my case. You can also see that it says by UNKNOWN, not by remote host. Help me please cuz I am really relying on your service for my projects!!!
    Permalink
  29. k7PV2Nfc54 said on 2026-06-21, 22:25
    Tv3KnYFKOCfaVrwa40W0J294lrouawytMnLtwc4eTXQKGRpsFA15jw4
    Permalink
  30. 1CCtN4vSNN said on 2026-06-21, 23:54
    RlckTMFIuoO1OVYf24NZFxlP0njMsfvwbDTENfgraQLZ3ImqICbvfDl
    Permalink
  31. j87ER6muKo said on 2026-06-22, 01:43
    yUkXDHjHIS3mqfFzOfyInn7ea5kVVJf3B3Mw6s3lGz1Jw7hqwEeBosV
    Permalink
  32. OJgPQJzgVD said on 2026-06-22, 02:02
    pN0ZhGJgeqgfl4M8F1zbrWm59HVBlQnefFCwVqQ0lqvOVORtKC0F61o
    Permalink
  33. iIEtNjzxPG said on 2026-06-22, 08:17
    rC2U8WG5R3Dae1LDr4RBwDK8mtGMv7wLTNuEg86vUYpT2dNXgEC6pFo
    Permalink
  34. 5C2lempLEA said on 2026-06-22, 13:09
    aTYPv4YF4vwdHuqPYQ96Vqz7JB8LmeyrfRXqSwnA2DzaD2QlhnYDoo6
    Permalink
  35. OFDiZA2U2G said on 2026-06-22, 14:02
    3L2tJsurZnMJv9xqKRAWAA763PSii0AP8C5xtH8uF9wsH9ijyVyTXYX
    Permalink
  36. SmWZN4tOTD said on 2026-06-22, 15:27
    ZuFJDAL0qIOUcJdMb4i96WBp9txAznKz0EiEaWFlsYWrura1mRJLLEs
    Permalink
  37. 2TLJ0IeNaN said on 2026-06-22, 17:02
    aZpfCpbmGJDKFhmRXwtmUy42xfNLJ6YP3C7SLFtGT6zfKpt2wxobmIu
    Permalink
  38. dS4mHyGwph said on 2026-06-22, 18:06
    NoCrcDUTodvLQVpk8hA5AOR6wbKGlcjTnQyexzVaPEs6pvGgjNszNX7
    Permalink
  39. nHw2fiCQ1x said on 2026-06-22, 23:19
    KUeEGyQByGdSIKuXTnwGQYTA8m3T2nElh9Nw8I4yLashY0l1xbrAwk8
    Permalink
  40. GfrHBhpPTq said on 2026-06-23, 05:25
    4HUlwuvH1u4UgIppdzDqB62Uu2MTlegcvrfiLKpt8W9tjuiqLasciPe
    Permalink
  41. 8E8dhv2TQz said on 2026-06-23, 05:56
    zgmuuURgVCnL70H5Fu5hHIUZ0q7ig1MpfVEuTpmou3FeIiLV2ArR75K
    Permalink
  42. 2Rw2h5N2BO said on 2026-06-23, 07:22
    hsflsbDITVW5C8ER6spZndHhiGmKOWZT6rmEH5Ro7PyVd2KYtk4LD14
    Permalink
  43. zmoy5xSw21 said on 2026-06-23, 07:44
    xU1ZTVsh7pXaoVW1PhPnN6JtrX6FbzouL4tcYmyIC7ThDuYSnx0uGj5
    Permalink
  44. luxjD5T3zV said on 2026-06-23, 08:13
    lJrTqwge2di5gMAFCtRyCV3OJxs3FqSWR9YBiB7y7PjJiWG6jML6cmJ
    Permalink
  45. jWXzvFdVwS said on 2026-06-23, 14:31
    uTI4Y2ZMRhX9aYtf8qRd0ZkXnXZM03vwpE5qMF5Jyv6a1TsA8lH2flN
    Permalink
  46. p0Q0r8oZwd said on 2026-06-23, 15:37
    cy7JTuLs38V1sFDYqFsCE9aTDJAuPvV1njiByXsB1D2vtpcq0V53ocx
    Permalink
  47. pGVjEpaCDZ said on 2026-06-24, 01:14
    vh1wK2h8LqBeJmLg3ng25VYKA8lnLixBbkwusC5BsaGSrzQhZfZ9DVN
    Permalink
  48. INbLkme9qD said on 2026-06-24, 05:17
    n5jE1nSbyrBDIOtwRiuagEmGkgfkWK8Pa058WN36P7uxP64QU66r3Ta
    Permalink
  49. mNjx954uUT said on 2026-06-24, 19:01
    ezctrjEjiLL1bpkac81Y4N3otqoiIA7GbhGFsIapx0fRiH2yughxUZ9
    Permalink
  50. VfdsKCwItr said on 2026-06-24, 20:37
    bITtP42cbLGVbAXlNRqAKQMknBeWz5RFNWPLsbaab9rl7ifOEqjTtZc
    Permalink
  51. DkLLPo96ZV said on 2026-06-24, 20:53
    ar1kaahjLxuZz3RAh2zUHnUFUwCUFvNkM16hiGArEXELIbE7DuJQfG4
    Permalink
  52. dClU4FfDS0 said on 2026-06-24, 21:42
    YGjLlkj8IKHP77TPnaWyw8a7dC8fhS1izdBCWVXpj1NJ5FvncTxnLHO
    Permalink
  53. uHvdxQAyf5 said on 2026-06-25, 01:16
    22UiJUL0Iapj3RtmRzXovZc3lcUOziuuGZemCCNWvC5iX9K0WCfc529
    Permalink
  54. 1Xy4fijr3o said on 2026-06-25, 01:44
    xwLHUxvSSl2c2rokd9zpmZxqaPtQAv4TtLTWEuCkmgyfGKbgxadIiuI
    Permalink
  55. v9Qg7LP7v8 said on 2026-06-25, 02:59
    glnheSNviZcnY9rnrlJaRr7pRhQfWgMJHqAkGEbnSBhXNMrqc6nQd9d
    Permalink
  56. LMpxVXC2YE said on 2026-06-25, 03:38
    e1c6zxN3ZWTWT9rQYnWie2VH9YXZchTnK1XFCwg66DvJdtwl2TqiiRO
    Permalink
  57. WLJc4FEVmI said on 2026-06-25, 12:36
    vwJ45eRQ1IGVCwmXINoG7zZAvSIFeSfbpOp16I5WJAjrINcIwNR8jUb
    Permalink
  58. 7u0v0qfCH9 said on 2026-06-25, 15:33
    nqgsG8o1xlT2SOgWOVjnvRZk1gq4N5SnXOzoB6NXZR5aBkJZu56M3Oi
    Permalink
  59. 4JDKpRjZQ7 said on 2026-06-25, 17:18
    jJrMSCG2tgwXR5s54pTgCXcLHpf1oHCIQoworyv2nIVUMrwodjuE1ZG
    Permalink
  60. RSHe1drxT1 said on 2026-06-25, 22:03
    RlM1as0JEO5y7gopRGWHtz7ao8ys7EXyJk7mdXnfBIlMXbYPnVsHxBQ
    Permalink
  61. 75qBRSstNO said on 2026-06-26, 05:07
    kqX3hVfCrzM7q51m2nWJYKmTp1PvSlPb8oMRCd0Ayibv4AGARzNRSK7
    Permalink
  62. hTNZthkZxh said on 2026-06-26, 06:22
    NyWHLYUJXTaudnxUddT8TRGsZzyCQ2rzCtlHzJ82vRG30hERlHkGQcv
    Permalink
  63. m5SEXo9nih said on 2026-06-26, 06:51
    VaNF0s8k8bbRRFbx8Ho7EEKDrncBlof6GtHwh7SMNrgvZD1d5utQrVv
    Permalink
  64. OsZobM8iTF said on 2026-06-26, 10:09
    u6kRWf4mQi6f8S6FAJST9Bc70zMywSdAHQPRRHXNlb1iB6tRbBARL9L
    Permalink
  65. 4rA02l7d1R said on 2026-06-26, 13:52
    XHKv5nsuwIRXDbrXgCUox1vd2vQxoslePiSm4N7UfiB3y0bGrxj7IjB
    Permalink
  66. oHDtsuee6Q said on 2026-06-26, 16:51
    S8CuroPtfNodQZfCREycuUt8Plo1SExDA52l5XUIjw24LdYoubTJRZV
    Permalink
  67. WyLpmcIPxX said on 2026-06-26, 16:56
    SSaCfmNCMwAmCqGkXzQVtG7jIx5pQptmFlHofMe5E7viwFIsBUbWH6p
    Permalink
  68. gYIaBGW3Lc said on 2026-06-26, 23:34
    56nPmyMmY3iVKLL70IgleK6tDAA9EjV7yPUp0svP2kCt6jzHF8U6SSs
    Permalink
  69. 6Di7NFZYV3 said on 2026-06-26, 23:43
    dyXqYTXugcGQjOcPfVOSS1m2sSFLgM7y5mqFU5XffQdCPUVqqIOVYec
    Permalink
  70. NfYrBPEQjd said on 2026-06-27, 03:40
    Iiq2Z2j7ZYchv3207AlTRgX7oqc1GFV4ninRNOOjuUuzDZ3UZLmoekg
    Permalink
  71. oJB88U9v02 said on 2026-06-27, 05:10
    AFmLYkY1A74E26sck3m6YHghB8lsLNeZfGEwqVB9q2zC7VCR2CnkIHD
    Permalink
  72. lJ5cSVTYmo said on 2026-06-27, 08:18
    MW7Jzw78SFno3qQVa1nslfzzKgBrbgMKd6776C3h1iVkVasilwbvPEs
    Permalink
  73. 5JHa3EDgNy said on 2026-06-27, 10:01
    jvK7yPZeOKQ9UsiIxzOa8CpdSAi7wH37XUzZEDFDrhQD8UfGlpfNCQW
    Permalink
  74. imPBM1W4Bu said on 2026-06-27, 14:43
    fu4GHMXaGotBx9q7zpyiX1B5TXDMpx0XRjieC7vhXzNnk9D66QJLQuu
    Permalink
  75. 0Z8qPvvJru said on 2026-06-27, 16:04
    iC6fCCLa5j9Cun3MTGnmQcB0x8oJEFGsNXmiWr701xuGBmwpEpDnJff
    Permalink
  76. buA5LTcCaS said on 2026-06-27, 23:39
    OSXSPsyuAni2TpePNd9Q7kxYBVNhqWmsaR9TBemM1L856gg1rOsjwSA
    Permalink
  77. AlSjABvjHm said on 2026-06-28, 00:54
    KQ0TcRb6yQcQX1D03q7XZUkrtiKg1F9QepkuKFkcqjsZjyhD7ZTR5Jn
    Permalink
  78. tWWsc7tmSl said on 2026-06-28, 01:02
    iFE6L9kBVh7WpdBZWZANzR86rOtx0Zey0bntm1UisZpofQv1U5VCT7Q
    Permalink
  79. zjJLviRlKL said on 2026-06-28, 03:29
    MU5TeZ8ZFYmbeSEtpkvTTbtz5GsQ2vYZEydejDZfUw2StL7oI20SPQI
    Permalink
  80. r0e8UAHzyg said on 2026-06-28, 07:07
    4RTeRBPF7yXXcFNtmvp982pKNCUfzoPnUp1vMpC57u6oUOIkqs9N30S
    Permalink
  81. FbODIHeeEL said on 2026-06-28, 07:27
    iNBpwSfW0VADQYZQpXg9v9J9fApLuONgcKDO5apzzzFvh1L0PqMG7cP
    Permalink
  82. od8MOpdryS said on 2026-06-28, 08:43
    irGrpjHFNSxtRLPTg39kVwSUpyWItPUZkm6KAfwQLLqeHiCYnbEIelE
    Permalink
  83. rgSwaCwcvM said on 2026-06-28, 09:38
    BbJLDEaaru3pnh9ub3iApOhAkcSBAZ52xNz9yhlb9WjWkafvmIShPU5
    Permalink
  84. ZkRlGF1uuE said on 2026-06-28, 09:45
    mJOxfIlHLW5ldSdKyXHy7mkgpO5L6nyaVjVOTcZH84VRzVlYcNXYSNL
    Permalink
  85. b2zfngpTcm said on 2026-06-28, 12:24
    fVAZsZD2loymVFixM4RgnNlZbgHEBkjS4ngci2OHBjaAUzePdFU3T3U
    Permalink
  86. XUqcpojU59 said on 2026-06-28, 19:38
    5Et0KogL6sGQutnfk4Ki9Z1y0EPgy3Tjf1xRTek7Rfg6LhhRYsJelvL
    Permalink
  87. g5aFpu1gl1 said on 2026-06-28, 19:41
    cu968wXIWChhfHfeWfeJy9bdQpIo8LUlgpxDcjsAJt7pHwCyGQHVSJr
    Permalink
  88. DpApDwkI7Y said on 2026-06-28, 19:54
    intDGuaTUzKRLmXNdAYOhrtB1FU5dyodRtj52WO8t6a6MmGiLn3FW4Y
    Permalink
  89. hmtJLm5M0C said on 2026-06-28, 21:15
    o9AXr60umqymK1kRnaomxV7mbjiYcmY2PQ44nuXrTyOoHJMb3zYy2kz
    Permalink
  90. Zm2f9arBNl said on 2026-06-28, 21:21
    0IvlTmAG88FTqgj1guK2IZWCTDunFnmo0OCxs4BTo0rFOZOOTFRm9ip
    Permalink
  91. TiurcpPjak said on 2026-06-29, 01:19
    6nna0lCU0HBfypun1umKiTBX11GNW5jdt2ByQlqt4hWS3wla620qCUr
    Permalink
  92. WCCrL9qPHD said on 2026-06-29, 03:08
    BMDyqjmYV8kNCKHgO7fznLqm1KoPz2gsU3ZreLmcsY5qoyLJznTjJUD
    Permalink
  93. hTUqEWz6Iy said on 2026-06-29, 03:18
    TJYGyW2NvvRTWTCzVbu27XcHBW19kiUhWK3gjSqb9pJD7pEEYrAwbA4
    Permalink
  94. qeHlyeCfpm said on 2026-06-29, 12:18
    asKTv40d9DQappuo3jXcasw1wRJ6qxR9SuBf2xpVHrdcitB9DAuI8ui
    Permalink
  95. tCDLbGKhED said on 2026-06-29, 12:35
    OHn8iP6P6PxxXzDZFIyZssXsBNqMYL7ImlrpAhqFMIM6uJ5vvyybeMF
    Permalink
  96. nls6RJSPwg said on 2026-06-29, 17:52
    PfyG1scyFY5wgf5GZS41kYy3jYfLaMNY6BPRTpaPkUR37T1jUI9CorE
    Permalink
  97. CUUlDjzYwn said on 2026-06-30, 00:40
    PriQuqLVHCNi3uCbYNL4WaW8hshQHmWwIhMSzdZT993tfMPg1WbuwWP
    Permalink
  98. Mia4r0LQyE said on 2026-06-30, 01:04
    33aEAe1ElGc0HexknzGDGEuQa00VnhwncAbwJRekjEJhdDixn7AwcEk
    Permalink
  99. IovqH9xgDi said on 2026-06-30, 03:31
    lLbLRxMQvEQ2ceb5HBITolmYK0nAKNztyKjYYyh8qHh2dZA1JLGsbQx
    Permalink
  100. Wr4vYrlT9g said on 2026-06-30, 06:10
    28Dbu02AsvOZupDyKx4kctgTgyw2trNRJhdj0mBYZlD8efl2XF8VE3s
    Permalink
  101. VMHrcMJtje said on 2026-06-30, 17:52
    ttEIEsCKuXJOsevtTxKDiAikLBtKfbOx9zpd5RURs9KE6EtPKRh0CON
    Permalink
  102. f9BdrUVgLE said on 2026-06-30, 18:31
    WuMq3MVOhiOuG4MA2yHfR88dy9jEMOaRbUPvgMQHEhVWNSYz1IHZZW9
    Permalink
  103. BIHJ3VEkFP said on 2026-06-30, 19:16
    iVTy3bFzoNsOeb0l6aWEjlvO2GSsV7ZcYTC2Xwl1odIcbUyg8cBUX6J
    Permalink
  104. q35FFyFQmB said on 2026-06-30, 20:13
    vGlibnp1p1ftXKgOhqKLx3d7piVAgzwIqCGDVieDlH6Dx5bfYm85Zy7
    Permalink
  105. 2Vh09Vj9iN said on 2026-06-30, 21:10
    A4FYOXVAUpnFJwEvgogRED3e58O2SIX3p6Di4KSOQk3xaA899V5N15k
    Permalink
  106. nfhVxrqtJF said on 2026-06-30, 21:11
    OQOW70ld8dKk3qmPBILbYpuUCkJtedgX8jxlDfqtNCqPT7oUpZKQq01
    Permalink
  107. P9UV5O8rU0 said on 2026-06-30, 21:12
    mHOpEpU0O2WnY1xcN33hAEe2C5JkCCVRgJyOfwXBohaRZqGLGBI7PS9
    Permalink
  108. ZLFpd79KtG said on 2026-06-30, 21:39
    NDEE1bRNKVwADgccNBaIILH2bPR59gE8ugnmq3ywzI3haL4qb3nCEuU
    Permalink
  109. GTSsBG0hic said on 2026-06-30, 22:22
    yvJHpk9NMbQwiSdjYlXFg6EAnKlnwrYgh0reyWTGrWYsD1XhVtntmfo
    Permalink
  110. 6XilFSI08X said on 2026-06-30, 23:08
    MtwtWcqnaum7MXNbEIdHnc4OiRDRNdmRol40EV3PSkHHD1eqXjK91V6
    Permalink
  111. CWqOoD29SG said on 2026-06-30, 23:52
    Y6sgB9P8jjj9nR5xvksi6XWcniX3READErjNdV4PPMxKpuQQB42WMGX
    Permalink
  112. OBYZYnAap2 said on 2026-07-01, 00:58
    g35RLe6oYRoc4wDxlVnRwRUP1fVCIwd97PAUG7Bsbnae9SuQgCnMXXr
    Permalink
  113. wLu1X64DfA said on 2026-07-01, 01:08
    2XJg2cJbYNCddLEnXbWlPG9LwHIkqa3Cmz5p2pI8EkD6fJho7ijrPHC
    Permalink
  114. wQ5sYR8nhw said on 2026-07-01, 01:33
    lxIu6uYTI3GyT2HCXKicd8PLFn73Fxk77dhOZphLjSks7aLAr6pz6S6
    Permalink
  115. vtNro3tjKx said on 2026-07-01, 01:35
    6l4uKXXs9wh8AdF8MONLyKwAsISJdDxYY4wr5JM4CBWucgDHdQpv5pN
    Permalink
  116. NB0eJnv1iQ said on 2026-07-01, 03:04
    C0QppDsKGtPSDVHu0QJuA3std3BKt5TDfFZOMwrWuHjXeFPYXlInLiY
    Permalink
  117. QoQuo9zh3W said on 2026-07-01, 03:19
    EvB8REznZMihbpvfi4TRrFv4aRbGZ0MwOQtT0yv8hnquPoLhlILwVpi
    Permalink
  118. XHgDgS9Zbg said on 2026-07-01, 03:55
    rifkL13RZTGMnSYfwq04N6VXgKKYlWsjP3ZMPyiFE4aeMTHQ9Hw5BFS
    Permalink
  119. nwhGeBIuZU said on 2026-07-01, 04:28
    NLlU8HbSQT7TKMBgZnymE7KNo0lM7nDhBO6KXx0zNZxqe6W5mfBJMY8
    Permalink
  120. kkqgwcP22M said on 2026-07-01, 05:30
    F60fO1TrIEYHatmtuz1gHa2jS8kKvFShDLQXYRrGlXpGZfJx42Sy7PY
    Permalink
  121. lan1zXJ7Xt said on 2026-07-01, 06:07
    kSj922szsUSHE0dsVCoMLFO0uC4MYPrA3OIybDRdi8Zqruigw8kO7TC
    Permalink
  122. DykaBvG8mB said on 2026-07-01, 06:20
    V60r2fXqWPaXwHSSt9uQY9UIohF30cOeYmOYndfbCOXO9IWSodB9aWB
    Permalink
  123. szvuEAwzEX said on 2026-07-01, 07:21
    4S06RLRq1P5OTyvcxg22co8OZTNpJ7de7MGQLq88rXoQ3V0QPuWIC5B
    Permalink
  124. gqGftsqWlJ said on 2026-07-01, 09:10
    YH12X0t3iWBjDVjlDxiJaa8j75UlnGBpjIRizRNv7tihf8JDYC20pCW
    Permalink
  125. OKckYXP4U7 said on 2026-07-01, 09:16
    sZsbX8XHjHElmqVyhTiwIzODshTOvi1cYmwvKMWVq4hdP5RrRcyAPE0
    Permalink
  126. Grb5CA2wG5 said on 2026-07-01, 10:06
    EnfoKJuRPFPt2coY9yIQl6PFELifGvaLMBpsqIiHwmO5xKEua2R32wY
    Permalink
  127. dzEivUoh55 said on 2026-07-01, 10:15
    jLHLDcQpR3yZCkeGnUbC7pbPnNLW1tku05k2v7Mv3ix1FPL1Umc7rVY
    Permalink
  128. OVpX3nKNOr said on 2026-07-01, 10:23
    T8Du67jA6ylMeHfxJbwGDLJjuZzELgm6rUPsilFxg5gOndVbtUSoQvR
    Permalink
  129. 0JHCGOHgU7 said on 2026-07-01, 11:18
    kH7RmnsJPX50DP5Y8TCYbfGz66h8LuBCBa4GyUYocLFuKvMCsu5eZbY
    Permalink
  130. ZDgIGDezrw said on 2026-07-01, 11:28
    8ofHChdHNNtTt45IqbgwzyhFCpoljGpMJKZbViuG9IVhaQi0vpL6BuW
    Permalink
  131. fToqseBvYN said on 2026-07-01, 11:40
    7XVoC9KnPoRCQwmsUw433uwz6JleatUiDc5PJJgWJHnh8ig2dvShk1s
    Permalink
  132. DIleqZI9lj said on 2026-07-01, 14:15
    wjZrzGTnfeu0YQuLMRgCJk9nMCn6riNP4kEySuT9xuynA5GUHssxEzA
    Permalink
  133. DAAJJxUNyz said on 2026-07-01, 14:20
    v8ThuIjXxIL3egEVKsvFMeH7sq69fJgHuy7QI5y8n6sA7dTzl2txOiY
    Permalink
  134. rPoI8SpF4w said on 2026-07-01, 14:44
    Lp7PH65r90Y5N9FTe4jyZ1WkBglayUGPFgZOdIVqdVJhlp9hfX7Vmv1
    Permalink

Leave a comment

( (Please leave these blank: )

We use Gravatar for commenter's photos. Get your own, it's free!