Kasperian Moving Parts

kinda like Batman, but with a wife and 3 kids

It’s the little things, like usability

I’ve been banging my head against the wall for a good couple of hours and had to vent….

I needed to get Kopete (a REALLY good KDE IM client) to use my Squid proxy server. Well, it’s not designed to do that, so that’s one thing, but what it can do is use a SOCKS proxy server. I proceeded to set up the Dante SOCKS proxy server on my aging-but-still-ticking debian box. All that’s left is getting Kopete to use it, right? Nope, not so easy. You can’t have just Kopete use a SOCKS proxy server, like gaim can. You have to have the entire desktop environment (all of KDE) use the SOCKS server. Okay, fair enough and understandable. Ahhh, but then my question for you, oh fair seeker of truth, knowledge and KDE enlightenment, is how the bloody heck you do that.

There’s the Proxy configuration settings dialog in KDE’s control center. And it has 2 tabs… Proxy and SOCKS. One would think that one could just go to the SOCKS tab and enable SOCKS support, right? Well, at least for me (running Fedora Core 3), this doesn’t work. Every time I tried to enable Dante support, I got an error saying “SOCKS could not be loaded” or some-such. I had to download dag’s dante RPM to get the libsocks library, and then set this up as a custom library. This was a pain, but after that, things should just work swimmingly, right? Wrong.

KDE uses a combination of the 2 tabs–Proxy AND SOCKS. You have to change the Proxy settings from “direct connection to the internet” to something other than that. And, again, my question for you, oh fair seeker of truth, etc., is what you are supposed to use??? Unlike with firefox, where you can specify the SOCKS server easily (there’s a text field that says “SOCKS server:”), there is no place to do this in the Proxy dialogs. The ONLY way I could figure out how to get this bloody thing working is to write my own simple auto-proxy-configuration file and have KDE use that.

The REALLY annoying thing to me about all of this is that I could not find ANY documentation on the ‘net or the KDE site on how to do this!!! Surely there must be a simpler, more correct way. I’m putting my money on my KDE RPMs being screwed up, or possibly in me missing an RPM or something. *sigh* But MAN, this was annoying.

Having said all that, however…. The coolest little bit of magic that I learned tonight was the brilliance that Netscape created more than 8 years ago. Think about that! 8 years ago. =:) Anyway, said brilliance is an auto-proxy configuration standard that Netscape created that lets you tell the browser what proxy settings to use, and it can be as complex as desired. For the time being, I want all web queries to go to my SOCKS proxy, so my file looks something like this:

function FindProxyForURL(url, host)
{
return “SOCKS localhost:1080”;
}

Literally–that’s it. Just put that into a text file and save it as is. I’ll likely expand it later to be more complex, but for now, it does what I want it to.

Okay, I feel better now.

17 Replies to “It’s the little things, like usability”

  • Bah. I was wrong. This didn’t fix anything. 3 days later and I’m still fighting the same stupid problem. I can’t get SOCKS proxy working with KDE. =:/ I’ve sent an e-mail off to the kde@mail.kde mailing list. Hopefully help will come. =:/

  • Well, I’ve not tried it lately, but afaik, nothing has changed. You still have to configure a SOCKS proxy outside of KDE (dante client, libsocks, working /etc/socks.conf, etc.). And KDE still operates as a whole–either the entire KDE desktop will use your socks proxy or nothing will. I suppose this isn’t horrible, but when everything BUT IRC should not use my proxy server, it is prohibitive in the least for getting things working. As it happens, I continue to use gaim and xchat for my IM/IRC clients. Both allow me to configure a SOCKS proxy for them. I would LOVE to see 2 things:

    1) for Kopete/Konversation, etc., to allow SOCKS configuration individually (I don’t EVER want to use a proxy for kmail, konqueror, etc.).

    2) for KDE to not rely on an external library/configured SOCKS subsystem.

    But alas, it’s not so yet. =:/

  • Amen!
    Been experiencing the same problem. Just dont understand why KDE has to have such a stubborn configuration, while the overall look is made to look otherwise.

    By the way, would you know of a tool i can use to Chat on a LAN?
    I use IP Messenger for Windows. Very useful and lite. but anything similar for Linux?
    Would be a boon if it even recognizes the windows IP users … cuz it basically uses ICMP, i think.

    ~A

  • Hi Ashutosh!

    Well, the best (as in most feature-complete) chat client for Linux is Gaim. It’s what I have used for years both on my work LAN (using an internal Jabber server), home LAN, and abroad. And you can use it in Windows too, if you want.

    And as far as the SOCKS issue goes, I think I recall some discussion that KDE4 might have this feature-set internally, and that would be a good thing, IMHO. =:)

  • Hi Jason,
    Apologies for the late reply. Was busy trying to get used to SUSE 10.
    PRetty good. :o) I have finally got used to the KDE interface..funnily I was very attracted to GNOME. but now it seems to be KDE.. strange..
    I dont have any technical reasons..just instinctively liked KDE on SUSE more.

    As for GAIM. Yea, i use that on other distros..but on SUSE had some trouble with missing libraries..thats where most of my research or adventures come to an end. quite annoying.

    Oh yea..since im cribbing..whilst configuring GAIM, if the monitor size is small, the config dialog box does not resize..i have to guess where the Save button is! :o) Quite comical.

    Here’s to the arrival of KDE4 *klink*

    ~A

  • Jason,

    Any updates on matter? I still can’t see any difference and can’t make kopete (and kmail) work. Would be glad if you can help 🙂

    Thanks

  • Ashutosh,

    I am using ksalup, it is similar to Winpopup. It uses NetBios protocol over TCP and you need to have samba installed.

    About the other problem -> still no success…

  • I have the same problem… And after many year using GNOME, now I love KDE.

    But I think this is the kind of issues that makes people stay away from Linux: simple things are sometimes extremely complicate. Until it is fixed 2 years later (in this case, more than 8!), but since technology changes, then there is another issue… Even in windows, with putty and firefox you have SOCKS proxy. In Linux with SSH and Firefox. But not with konqueror!!!!!!!!!!!
    Hellooooo… KDE people…??? >:(

  • I used kopete for 3 years without proxy.
    Today I need to pass by a SOCKS proxy : omg, where is the fields where you enter the SOCKS Server IP and port ?????
    As you said, there is nothing helpful when you search on Google 🙁
    So i moved to Gaim waiting for Kopete to have an simple SOCKS proxy setting :((

  • I succeed with dante in kde 3.5.5. if the socks.conf have a mistake then kde fails to load the library. for me it also crashed kontrol, login process, etc

  • hi Jason!
    new look on your site once again! 🙂
    good to hear about the SOCKS support.
    didn’t realise how time has gone by.
    finally got a machine up at home…havent had the time to install a distro yet…new job…

    how are things with you? (i should be reading your blog for the answer. but wth, i hope u don’t mind 🙂 )

    ===========
    Hey Hristo,
    sorry for the late reply. thanks for your suggestion for an alternative version of IPmessenger.
    Turns out there is a GNOME version out there on sf.net :oD
    http://gipmsg.sourceforge.net/

  • Heh. Hey Ashutosh! =:) Yeah, I’m very interested in how the SOCKS stuff works in KDE4. Things are pretty good, thanks. =:) KPilot development is still going slow, but that’s a natural result of trying to balance life, family, work and hacking. =:)

  • Hello guys! Having the same problem woth Dante SOCKS. Are there any good tutorial on then net on sockd.conf and socks.conf on the net? Ok, i’ll setup it behind of KDE but i cannot find any good articles on SOCKS setup.

    Thanks in advance,

    Antony

  • Hi Antony! I just googled for “socks.conf”, which is what you’ll need to set up, and it looked like there were a few resources out there. It’s really pretty straightforward after you spend a couple of hours understanding it. =:/

    As an example, here’s mine. Now, everything is going out localhost:11080 because I have ssh -D 11080 running.

    route {
    from: 0.0.0.0/0 to: 10.0.0.0/8 via: direct
    }
    route {
    from: 0.0.0.0/0 to: 172.0.0.0/8 via: direct
    }

    # have a route making all connections to loopback addresses be direct.
    route {
    from: 0.0.0.0/0 to: 127.0.0.0/8 via: direct
    command: connect udpassociate # everything but bind, bind confuses us.
    }

    route {
    from: 0.0.0.0/0 to: 0.0.0.0/0 via: 127.0.0.1 port = 11080
    proxyprotocol: socks_v4
    }
    route {
    from: 0.0.0.0/0 to: . via: 127.0.0.1 port = 11080
    proxyprotocol: socks_v4
    }

    Hope this helps! =:)

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.