Talk:SOCKS

acronym
Could you explain the acronym? --Error 00:55, 22 Mar 2004 (UTC)

Quote from http://www.windowsitlibrary.com/Content/386/18/4.html: SOCKS: Wannabe Acronym SOCKS is not actually an acronym, despite the fact that the word has no obvious meaning and is spelled using all capital letters. You will see other terms based on the name SOCKS, such as “SOCKified,” which is used to identify an application written to use the SOCKS protocol.

I would let you in on the secret, but I don’t know what SOCKS means myself. I suppose it’s related to the term “Winsock.”Hrvoje p 23:36, 17 June 2006 (UTC)

I imagine it is a play on the TCP stack that almost every operating system implements called Berkley Sockets. According to the RFC, the first version of this protocol was developed in the field and not in academia so I imagine the original author borrowed the name to associate it with the TCP socket stack.


 * lets do a little less imagination and a few more facts here. SOCKS is indeed a word play on the Berkeley Sockets API. This is the API most commonly used to interact with TCP/IP networks, not only in the Berkeley Stack (where it was first introduced) but also in virtually every other TCP/IP stack in active use. The only other major API known is the System V Streams API, and that never managed to catch up to the Berkeley Sockets, due to their unrivaled simplicity and elegance.


 * The Winsock specification is an adaption of the Berkeley Sockets API designed for Windows (DLL) use. The SOCKS name comes because the SOCKS implementation is based on the idea to replace the Berkeley Sockets library calls with identical calls to the socks library, which does its proxy magic and then in tirn invokes the real sockets, if necessary. Originally this was intended to happen at a source code level (hence the necessity for application to be "socksified) but later techniques were implemented to do this based on dynamically linked shared library objects (e.g by the "socksify" command in Unix implementations or modified DLLs Wn windows systems) 145.253.3.223 15:57, 1 November 2007 (UTC)

- Does using SOCKS require modification of the client or the server? --Error 00:55, 22 Mar 2004 (UTC)

If a network app supports SOCKS, you can give it a socks server address much like you would give a web browser a http proxy address.

If it doesn't support SOCKS you have to use use a program called sockscap to launch the application. It acts like a wrapper and changes TCP/IP requests by the application to requests to the SOCKS server. 62.77.162.129 08:45, 13 Jun 2005 (UTC)

"According to the OSI model it is an intermediate layer between the application layer and the transport layer." This doesnt seem right. In the OSI model the application and transport layers are not adjacent. Change this to TCP/IP model??

After looking around online, it seems to exist in the transport layer, on top of TCP.


 * this is exactly right. There is no formal TCP/IP model, and if there were one, socks would have no place in it. Socks is an additional layer to implement meta connectivity at transport level between networks that do not have connectivity at lower layers. The TCP/IP design does not include such a functionality - the perimeter of a TCP/IP network is conclusively defined at the network layer, transport only adds additional services. So SOCKS would be somewhere in the upper layers of layer 4, since socks is built upon layer 4 services, but also provides layer 4 services and nothing else. 145.253.3.223 16:13, 1 November 2007 (UTC)

Nylon is not a client. It's a server.Jdstroy 18:16, 17 December 2005 (UTC)

Quote from http://www.windowsitlibrary.com/Content/386/18/4.html: SOCKS is an OSI session-layer protocol designed to allow access to an external network using TCP-based client/server applications from the internal network. Hrvoje p 23:36, 17 June 2006 (UTC)

I'm not so sure, but isn't the IP address and port number in the example in host byte order? They should be in nbo as stated. I tested it and gave 62.77.162.129 to inet_aton, then I printed the struct in_addr.s_addr value to stdout in hexdecimal presentation, and it came out like this: 0x63076642 which leeds me to believe that it is host byte order.

- My ISP has blocked ports 1080, hundreds of Socks5 use this port. Is there anyway for me to bypass this? Please advise. Thanks.

"Exterior server"
Does "exterior server" have some special meaning, different from "external server"? Nurg 22:49, 16 October 2006 (UTC)
 * There is not (any more) present in the aricle, so I can't know for sure. But since SOCKS is essentially designed as avehickle for firewall traversal, the key property of the server is that it is under somebody else's physical control than the client. Thus, "external". It also needs to have the actual connectivity the client needs but does not have, in order to do its job. Fore this it is often located at the outer network perimeter. Wefa 16:27, 1 November 2007 (UTC)

Hi,

sorry but I dont like the SOCKS page much. It does not explain the protocol well or give a decent examples. Way to technical for a beginner.

External links cleanup/de-spamming
I have requested a review of article's external link lists here and here. Please do not remove cleanup-spam tag from the Software section until more people respond on a matter. The section is in clear violation with WP:EL guidelines and at the very least it requires an independent review. Alex Pankratov 23:57, 14 October 2007 (UTC)
 * this "cleanup" you did/ordered is destructive and amounts to vandalism. This List was quite helpful and decently accurate. Please reinstate that list or at least explain in more detail why you destroyed/ordered to destroy it.Wefa 16:21, 1 November 2007 (UTC)
 * See here for details. Alex Pankratov 21:34, 1 November 2007 (UTC)
 * well, I have read that page now. Apparently, it's a talk page for an ip address which you are basically using to talk to yourself. And that is supposed to explain? Especially when your main reason for deletion seems to be that some undefined person "leaves you no choice"? Especially, since you seem to think being "left no choice" to destroy worthwhile content? Now, is that rational article debate or some kind of power play? To put it mildly, I am confused. I suggest you reinstate that list, in whatever sequence you think one of those countless policies you quote mandates Wefa 02:27, 5 November 2007 (UTC)
 * You may want to read my Talk page for the other person's responses. It sounds like you are not aware that there are two ways to conduct the discussion in WP - all exchange in one place (like the one we are having now), or using each peers' Talk pages. Latter is quite odd, but it's commonly accepted to use the way that the replying person chooses. Alex Pankratov 05:05, 5 November 2007 (UTC)
 * To reply you on a subject matter - if you want the material to be reinstated, you may want to talk to a person who actually removed. The issue of external links is a tricky one. I was pretty much on the same page with you ("whatever the info, removing it is universally bad"), but then I asked other people's opinion on a matter (the link is a copy-paste from a page I linked above). Have a look at SiobhanHansa's response from 16:41 there. Hopefully it will clarify some hidden issues with EL to you as it did to me. Alex Pankratov 05:23, 5 November 2007 (UTC)

Technical Tag
This article is full of jargon and extreme technical detail that make the page difficult to understand for all but the most knowledgeable of network administrators or internet protocol programmers. For example, it is missing a simple analogy or example that explains the use of a SOCKS proxy, as well as simple details that explain the difference between a SOCKS proxy and other similar proxy protocols.

At the current time, I visited the page attempting to ascertain the difference between using an http proxy and a SOCKS proxy, but this page was not helpful in that pursuit. I suspect most people visiting this page will have a similar question. And I am a more technically-minded and computer saavy user than most. Rritterson (talk) 05:32, 29 August 2008 (UTC)
 * I agree - I am well versed in SOCKS and HTTP proxy network systems and protocols (in a hobbyist capacity), and this article has several huge flaws. The first sentence does not accurately reflect what SOCKS is or what it does. The rest of the article seems to focus completely on the technical aspects of the protocol - which I admit is massively useful to someone writing a proxy server with the SOCKS protocol in mind - but the article fails to describe the uses of a SOCKS proxy and its differences to a HTTP proxy. I will alter a few sentences to fix some of these issues, but I will leave the bulk of things to someone with a much more professional level of experience. Burningmace 14:30, 9 January 2009 (UTC)
 * Actually, once I got started I ended up overhauling the whole article. If anyone has an objections or suggestions regarding the changes, shout up :) — Burningmace 15:01, 9 January 2009 (UTC) —Preceding unsigned comment added by Burningmace (talk • contribs)
 * I visited this page in search of certain technical information. I was very happy with what I found (assuming it was correct, but it looks good enough for my purposes).  If you rewrite it then please don't remove the information, just re-organise it!  (Or perhaps the complaints are already out of date and the page is now the way it should be?) --Michael  — Preceding unsigned comment added by 84.130.244.32 (talk) 10:01, 12 January 2012 (UTC)

HTTP proxy not only for HTTP
"SOCKS uses a handshake protocol to inform the proxy software about the connection that the client is trying to make and may be used for any form of TCP or UDP socket connection, whereas a HTTP proxy analyses the HTTP headers sent through it in order to deduce the address of the server and therefore may only be used for HTTP traffic." This is completely wrong. What about HTTPS proxies?


 * HTTPS uses connect method exclusively, so for most practical purposes it does not differs from socks (as https proxies). Ordinary http proxies can use either GET or CONNECT methods, but https works only with CONNECT. SOCKS, also can route connections other way (incoming connections), no http proxy can do it, also socks can handle UDP traffic, no http proxy can do it either. -Yyy (talk) 20:02, 14 March 2010 (UTC)

Don't understand
I don't understand what this article is about. It lists a few technical specifications - which is cool for hackers I guess - and some general technical information, but I don't get an idea about exactly WHAT it is SOCKS can be used for. For HTTP there's no problem, as I know that it's used to access mostly static web-pages, that is pages that are published and readily accessible to most people. The current version of this article (at the time of writing) appears as unclear about the use of SOCKS. --Kebman (talk) 08:59, 17 September 2009 (UTC)


 * From the article
 * SOCKS uses a handshake protocol to inform the proxy software about the connection that the client is trying to make and may be used for any form of TCP or UDP socket connection
 * which basically sayss you can use whatever protocol you want as opposed HTTP only for HTTP proxies. A little reading goes a long way doesn't it. --antilivedT 10:42, 17 September 2009 (UTC)


 * Writing good articles where you don't have to be a PhD to understand them goes even longer, antilived. In any case your condescending argument is rendered moot now that the article has been improved. Thank you everyone else, and especially you Hm2k! :) --Kebman (talk) 20:18, 5 August 2011 (UTC)


 * I agree, it's difficult for a non-technical person to apply usage. --Hm2k (talk) 14:03, 30 November 2009 (UTC)


 * I would add the following to the article, after the very first sentence (I can't do it myself because the page is protected):
 * ... applications via a proxy server. More precisely it specifies how the client communicates with the proxy and in particular how it tells the proxy which server to connect to.
 * (This is what I wanted to know when I looked up SOCKS and what I only found out by reading the technical details in the section "protocol") 128.176.181.171 (talk) 12:52, 15 December 2010 (UTC)

Examples of usage
I see no reason why we can't find sources of usage to be used as examples to assist non-technical users understand what SOCKS are for and how they are used. How are SOCKS used?

You can help too. --Hm2k (talk) 14:03, 30 November 2009 (UTC)
 * I discovered that there is no available relevant news articles for SOCKS4 or SOCKS4A before 2000, however SOCKS5 appears in news articles as early as 1996. I believe this is because the SOCKS4 protocol was never approved by the IETF, where as SOCKS5 was. It seems the only reason why SOCKS4 and SOCKS4A are mentioned is due to them being extended into SOCKS5. I think the focus should be on SOCKS5. --Hm2k (talk) 12:02, 1 December 2009 (UTC)

Name change
I suggest the article be renamed as it seems to be becoming a spam target due to it's ambiguous title of "SOCKS" which is clearly being confused with Socks. I will boldly move it to SOCKS (Protocol) which should solve this. SOCKS will redirect here, but may be changed to Socks if that is deemed appropriate. --Hm2k (talk) 19:19, 26 February 2010 (UTC)


 * That's what hatnotes are for. Regardless, "Protocol" should not have been capitalised. I've moved the page back as there is already a hatnote. Chris Cunningham (not at work) - talk 11:25, 5 March 2010 (UTC)


 * "Using names and terms that are precise, but only as precise as is necessary to identify the topic of the article unambiguously." as per WP:AT. "SOCKS" is NOT unambiguous. We're now in the process of WP:BRD. I propose a move to SOCKS_(protocol) as per your suggestion. --Hm2k (talk) 13:03, 5 March 2010 (UTC)


 * It's ambiguous enough. The purpose of disambiguation is to ensure that people do not end up on the wrong page: it is not to attempt to find every article a canonical "correct" name. The term "SOCKS" in uppercase is distinct from the term "socks", which does not redirect here. Every incoming link to SOCKS refers to this subject. Disambiguating further is either pointless (if you would have SOCKS redirect to SOCKS (protocol)) or actively harmful (if you would have it redirect elsewhere, which would break ~50 incoming links. Chris Cunningham (not at work) - talk 13:28, 5 March 2010 (UTC)


 * Moving SOCKS to SOCKS (protocol) would not be harmful as those 50 links would be updated over time (usually by a bot) to the correct article title, while SOCKS should probably (eventually) be redirected to the Socks disambiguation article instead. The point or purpose as I have already explained is to make it clearer for users, especially those who are non-technical. With that in mind, I see no good reason not to move the article. --Hm2k (talk) 18:11, 5 March 2010 (UTC)


 * You haven't demonstrated why any confusion is not clarified by the article's hatnote. We do not disambiguate article titles unless it is actually necessary, which it is not. If you want to move the page again then I would suggest taking it to WP:RM for wider input. Chris Cunningham (not at work) - talk 20:06, 5 March 2010 (UTC)


 * If you look at the edit history of the article you'll see that it has become a target of abuse due to it's ambiguous title. My proposal is to help prevent this and make the whole thing easier for non-technical users to understand. It's not necessary, but in the name of development, it's probably a good idea. --Hm2k (talk) 10:27, 8 March 2010 (UTC)

Requested move

 * The following discussion is an archived discussion of a requested move. Please do not modify it. Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section. 

The result of the move request was: No consensus, Page not moved  Ron h jones (Talk) 01:30, 22 March 2010 (UTC)

SOCKS → SOCKS (protocol) — To help prevent the article being a target of abuse and for disambiguation to avoid confusion with Socks. Hm2k (talk) 10:27, 8 March 2010 (UTC)
 * Rename to SOCKS (protocol) for clarity and for disambiguation. Whatever the theoretical issues around ambiguity of the capitalised form, it's clear that in practice it is confusing people. -- Brown HairedGirl (talk) • (contribs) 14:54, 8 March 2010 (UTC)
 * There's already a hatnote. The most common use for the term "SOCKS", in capital letters, is to refer to the protocol. I've seen no actual evidence that this is confusing people other than some anonymous vandalism, and page moves are not the correct way to defeat that. Furthermore, the question remains of what SOCKS would point to after the page move. If it were to point to SOCKS (protocol), then all the vandals would follow anyway making that pointless. If it were to point to a disambiguation page, we'd be doing a disservice to other editors by making it more difficult to link the correct page, not to mention the need to dab the ~50 existing inbound links. Chris Cunningham (not at work) * talk 09:53, 11 March 2010 (UTC)
 * agree -Yyy (talk) 20:04, 14 March 2010 (UTC)
 * Google is unable to decipher from, this rename would fix that making it clear for non-technical users and thus helping to prevent being an abuse target. Keeping it as SOCKS only prevents progress. --Hm2k (talk) 13:46, 15 March 2010 (UTC)
 * If it is true that SOCKS has many incoming links meaning the protocol, perhaps leave it alone. Anthony Appleyard (talk) 15:40, 18 March 2010 (UTC)
 * For clarification, all (173) of these links will be automatically updated by bots to the new title when the article is moved. While external backlinks is no reason for this to stop progress. They will redirect and update in time anyway. --Hm2k (talk) 15:59, 18 March 2010 (UTC)
 * Evidence of further abuse just today. Can we fix this already? --Hm2k (talk) 12:27, 19 March 2010 (UTC)
 * I have semiprotected page SOCKS. Anthony Appleyard (talk) 09:59, 20 March 2010 (UTC)
 * That doesn't resolve the issue. The reason why it is a target is because users searching for end up at this article. Disambiguation in the title would help non-technical users understand that it is a technical article, which should encourage them not to attack it. --Hm2k (talk) 10:31, 21 March 2010 (UTC)
 * That is not a valid reason for disambiguation as Wikipedia understands it. Nor is the existence of disambiguation bots an excuse for moving articles to arbitrary titles on ill-founded grounds. Chris Cunningham (not at work) - talk 21:58, 21 March 2010 (UTC)
 * The above discussion is preserved as an archive of a requested move. Please do not modify it. Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.

Port naming issue
Port 1080 is not a well-known port, it is a Registered port - please change...  - Ze0h4x —Preceding unsigned comment added by Ze0h4x (talk • contribs) 15:00, 22 March 2010 (UTC)
 * Thank you for your suggestion. When you believe an article needs improvement, please feel free to make those changes. Wikipedia is a wiki, so anyone can edit almost any article by simply following the  link at the top. The Wikipedia community encourages you to be bold in updating pages. Don't worry too much about making honest mistakes—they're likely to be found and corrected quickly. If you're not sure how editing works, check out how to edit a page, or use the sandbox to try out your editing skills.  New contributors are always welcome. You don't even need to log in (although there are many reasons why you might want to). --Hm2k (talk) 15:39, 22 March 2010 (UTC)


 * This use wasn't autoconfirmed, so couldn't edit the page thanks to the semiprotection. I've now made the requested change. Chris Cunningham (not at work) - talk 18:40, 5 July 2010 (UTC)

Software Section
Want to add dante in the software section. Rwstandridge (talk) 19:29, 28 July 2010 (UTC)
 * I recommend you write the article first. --Hm2k (talk) 07:14, 29 July 2010 (UTC)

There are quite much scenarios where transparent proxy servers where interesting, especially in combination with iptables. A example is the use of redsocks (https://github.com/darkk/redsocks/) which includes the usage of UDP. There is no other programm that uses UDP and Socks as a transparent proxy. Maybe we can add the link of redsocks to the softwaresection. Xarkas (talk) —Preceding undated comment added 12:59, 11 January 2011 (UTC).

Edit request from PhilLello, 3 November 2010
Change 'citation needed' near article end for programs to socksify.

Example 'socksify' programs include:

IP tables & transocks: http://coderrr.wordpress.com/2009/07/29/how-to-force-flash-or-any-program-to-use-a-socks-proxy-using-transocks-and-iptables-in-linux/ tsocks: http://tsocks.sourceforge.net/

and many others that can easily be found via googling 'socksify'

PhilLello (talk) 03:07, 3 November 2010 (UTC)
 * Yes check.svg Done Stickee (talk)  03:10, 3 November 2010 (UTC)

Authentication Support
I wrote a SOCKS5 proxy with password authentication, so I can share a proxy with my friends (afaict there are no simple SOCKS5 implementations). Anyway, it turns out none of the major browsers actually support SOCKS5 authentication. Someone should add that info. 155.198.65.73 (talk) 15:54, 9 March 2011 (UTC)
 * I found the same issue when I wrote sss.pl. Although there is a bug report for "SOCKS: Username/Password Authentication" at Mozilla, there's no or little news coverage of this, so it's not really a notable point. I've not tested with Google Chrome but I presume the case is the same there as it is with Internet Explorer and Mozilla FireFox. --Hm2k (talk) 08:17, 6 August 2011 (UTC)

Software
All software listed in this article must meet the Notability and Verability guidelines, please also consider writing the article first, before adding any additional software. Thanks. --Hm2k (talk) 09:33, 13 September 2011 (UTC)

Socksifiers
The Software section is incomplete and is not categorized. It should contain at least two categories: SOCKS Servers and Socksifiers like in the German and French versions. — Preceding unsigned comment added by Mr565 (talk • contribs) 21:55, 13 September 2011 (UTC)
 * There is nothing that defines what "Socksifiers" are, nor are they notable and are unencyclopedic. --Hm2k (talk) 22:36, 13 September 2011 (UTC)
 * You seem to have no idea what you are talking about. You obviously don't understand how companies and home users use SOCKS proxies today and for what purposes. You should study the topic first. — Preceding unsigned comment added by 79.178.123.201  (talk • contribs)   23:48, 13 September 2011
 * Please comment on content, not on the contributor. The way SOCKS proxies are used should be documented in the article. Please follow Wikipedia's policies and guidelines, in particular: Wikipedia is not a repository of links. --Hm2k (talk) 09:10, 14 September 2011 (UTC)
 * It was rather advice.
 * The links agree with the content of the article. None of the titles left after your deletions are compliant implementations. You're welcome to move all the links to a separate page with tables, e.g. comparison of servers/clients - not simply delete. — Preceding unsigned comment added by 79.178.123.201 (talk) 12:00, 14 September 2011 (UTC)
 * You claim that a whole class of useful programs is not notable and unencyclopedic. How did you come to this conclusion? The first socksifier SocksCap was developed by NEC who also made major contributions to SOCKS specifications. — Preceding unsigned comment added by 79.178.123.201 (talk) 20:11, 14 September 2011 (UTC)
 * Please read about the burden of evidence. You claim that these are notable, yet supply no evidence to support that claim. You MUST follow the Wikipedia guidelines or your entries will simply be removed. If not by me, by somebody else. If you truly wish to improve this article, please follow my advice. Also see: "In any encyclopedia, information cannot be included solely for being true or useful". --Hm2k (talk) 22:00, 14 September 2011 (UTC)

SOCKS Servers
If a specification compliant SOCKS server, e.g. Dante, running on millions of Linux computers worlwide doesn't have a page at Wikipedia, should it be deleted while non-standard Wingate which does have a page at Wikipedia remains? — Preceding unsigned comment added by 79.178.123.201 (talk) 20:11, 14 September 2011 (UTC)
 * See WP:GNG --Hm2k (talk) 22:14, 14 September 2011 (UTC)

Is Polipo not a caching HTTP proxy and a SOCKS client, rather than a SOCKS server?
 * Yes, of course:)

OSI has no place here
The article refers to "layer 5" of the OSI model. That's bullshit -- OSI is a competing network stack, not an educational ideal. SOCKS works in the application layer of the TCP/IP model; it does not provide network services to TCP/IP networks on a different network implementation. — Preceding unsigned comment added by 194.78.18.170 (talk) 10:27, 22 February 2012 (UTC)

The example in SOCKS is bad
I'm no expert so didn't come up with a better example. However,

The example we have now is just "One can use SOCKS proxy to get through the firewall if he/she isn't authorized". It's indeed an application of SOCKS protocol but a security hole,rootkit..etc entails the same thing. A better approach should explain "What is SOCKS" and "why/when we use SOCKS instead of the others" 203.186.27.101 (talk) 16:20, 29 October 2012 (UTC)

Etymology of the name
As evidenced by the earliest references, like the Koblas' USENIX paper here, the protocol was always called simply Socks or SOCKS, and to my best knowledge it was never explicitly stated by anyone to mean anything more. As sock is an extremely common clipping of the word socket commonly used in software (in names of variables, in Berkeley sockets API in constants like SOCK_STREAM, or types like struct sockaddr, etc), this is what people always associated it with and that part seems self-explanatory. Although Socks was originally defined in context of security systems as a way of traversing a firewall, I can see no evidence of the name being an abbreviation of any kind beyond that. Note also that the server was called sockd in the paper (without s) suggesting that the s part wasn't that important for whatever the author had in mind, so earlier explanation of it standing for sockets sounds more likely than security. The idea that it could actually stand for something silly like socket secure first appeared on Wikipedia in early 2012 without any source (Special:Diff/469231213) and was left until 2018 (Special:Diff/846123106). In the mean time it was copied into other Wikipedias (ru:Special:Diff/41598250, uk:Special:Diff/8810620, lv:Special:Diff/1587925, nl:Special:Diff/38209027). It's probably a result of interpretation of the final -s by analogy to the later convention of using service names like https, ftps, telnets, etc. Unfortunately Wikipedia is a great place to spread things like that. For example, in 2009 someone added ridiculous backronym in Special:Diff/267165309 (replacing earlier reference to sockets) and it can now be found in many places all over the Internet including the French Wikipedia. Likewise I believe the recently added (Special:Diff/1013878565) reference for socket secure is actually a result of Wikipedia citeogenesis (although it doesn't quote any sources itself and is dated 2019). I also find the weird capitalization of "SOCKs5" (all caps except for the small s) used in that reference particularly suspicious. –MwGamera (talk) 07:29, 24 May 2021 (UTC)


 * I agree with your reasoning and I removed this statement. Anton.bersh (talk) 09:27, 4 June 2021 (UTC)

Security of SOCKS
This article has a long-standing issue with miss-representing security properties of SOCKS. Please add only info backed by reliable sources. At some point it suggested that users can use SOCKS to bypass network portals (so bypass authorization and paywalls). Recently I removed info criticizing SOCKS for lack of data concealment and for being susceptible to "censorship". Neither is appropriate info because SOCKS does not set out to do either. So ability to circumvent network restrictions by SOCKS is a mistake on network administrator's part and inability to bypass competent firewall is not a valid criticism because SOCKS is not menat to do that. Anton.bersh (talk) 12:51, 18 June 2021 (UTC)