Click here to Skip to main content
Click here to Skip to main content

SOCKS Proxy + SSL Tunnel

, 22 Feb 2000
Rate this:
Please Sign up or sign in to vote.
A full featured SOCKS 4 & 5 proxy server written in Java.
  • Download source files - 41 Kb
  • The SSH Proxy is full featured SOCKS Proxy written in Java.
    It supports both versions 4 and 5 of Socks protocol.

    Additional feature that I have implemented in SSH Proxy is the possibility to make TCP connections through an HTTP-SSL Tunnel.

    SSH Proxy works in two modes:

    1. Normal mode - works as normal SOCKS Proxy
    2. TCP via SHTTP mode - Works as SOCKS Proxy but makes SOCKS TCP connections via HTTP-SSL Tunnel Proxy.

    Sample Image 1
    Sample Image 2

    The TCP via SHTTP mode is very useful when user woks behind HTTP Proxy and hasn't any other acces to the Internet. In this case the user can run SSH Proxy on his/her machine, and configure it to use TCP connections via HTTP-SSL tunnels which are commonly supported by most proxies. This way he/she will be able to use other internet applications, eg. IRC, FTP, e-mail, telnet, HTTP (of course Smile | :) but without caching and etc.

    But if SSH Proxy works behind a firewall (in SSL tunnel mode) - the other SOCKS commands BIND and UDP association will not work.

    SSH Proxy loads its configuration from file config.txt which should be in the directory of the SSH Proxy

    # Copyright (c) 2000 Svetoslav Tchekanov (
    SHttpProxyHost=<SHTTP Proxy Host/IP>
    SHttpProxyPort=<SHTTP Proxy Port>

    The variables UseSHttpProxy and EnableLog are logical. So you can specify their values either by 1, 0, Yes or No.


    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here


    About the Author

    Svetoslav Chekanov
    Web Developer
    Bulgaria Bulgaria
    I am a software development engineer.
    I am a programmer.
    And my projects can explain what I am.

    Programming Languages: C/C++ - 10 yr., Java - 6 yr., Delphi -7 yr., HTML - 6 yr., CGI, Servlets, EJB, Assembly, CNC G-language
    RDBMS Microsoft SQL Server 7.0, MySQL, MS Access, ODBC, JDBC
    Networking: TCP/IP, Winsock, HTTP, HTTPS, FTP, SMTP, POP3, TELNET, IMAP, SOCKS 4/5, RTSP, CGI, MS Internet Information Server
    The great projects, ordered by greatness:
  • Java Virtual Machine
  • Application Server + Internet Proxy Services
  • Instant Messenger - like MSN and Yahoo ones
  • Voicer - Freeware VoIP application
  • SSH Proxy - SOCKS 4&5 Proxy that can relay TCP Connections through HTTPS Proxy
  • HTTP Proxy
  • SOCKS proxy
  • Battery Test Suite
  • Internet Address Book - Synchronizes local Outlook, Outlook Express, Netscape and Eudora address book with database on WEB server located in the Internet
  • Advertising Screen Saver - Screen Saver that sends e-mails and gain prizes for the computer owner
  • Proxy Send Mail - Send Mail service that can send e-mails through SOCKS 4, SOCKS 5 and HTTPS proxies
  • Proxy Hunter - Very fast, and also works as proxy checker
  • Java Disassembler
  • CNC Gravuring System
  • Little DOS games - when I was schoolboy
    More information about my current work you can find here:

    Comments and Discussions

    Questionhow to use PinmemberShanLoly6-Feb-15 13:16 
    QuestionAct as proxy in a special way? PinmemberAshesOfTime17-Jun-13 3:05 
    AnswerRe: Act as proxy in a special way? PinmemberSvetoslav Chekanov18-Jun-13 22:01 
    AnswerRe: Act as proxy in a special way? PinmemberShanLoly6-Feb-15 13:17 
    GeneralMy vote of 5 PinmemberMember 43208446-Jan-12 1:35 
    QuestionHow to change this application to a HTTPS proxy server? Pinmembershewo5-Dec-11 15:37 
    QuestionGetting Error Because of Proxy Authentication Required PinmemberWindowsVsLinux15-Nov-11 0:09 
    AnswerRe: Getting Error Because of Proxy Authentication Required PinmemberWindowsVsLinux15-Nov-11 4:31 
    GeneralRe: Getting Error Because of Proxy Authentication Required PinmemberWindowsVsLinux15-Nov-11 10:55 
    I tried in different style now. I got the RFC of SOCKS v5 authentication from I applied it in this code, but still getting error
    Following is the modification done by me in file.
    public void CreateSSLTunnel() throws Exception {
            Log.Println("Initiating SSL Tunneling...");
            String user="username";
            String pass="password";
            Log.Println("Initiating Authentication...");
    //           Referenece
    //           +----+------+----------+------+----------+
    //           |VER | ULEN |  UNAME   | PLEN |  PASSWD  |
    //           +----+------+----------+------+----------+
    //           | 1  |  1   | 1 to 255 |  1   | 1 to 255 |
    //           +----+------+----------+------+----------+
            byte   ver        = 0x01;
            byte[] uname      = user.getBytes();
            byte[] passwd     = pass.getBytes();
            int    size       = 1 + uname.length + 1+ passwd.length +1;
            byte[] headerData = new byte[size];
            int    next       = 0;
            headerData[next] = ver;
            headerData[next] = (byte) uname.length;
            int i;
            for (i = 0; i < uname.length; i++) {
                headerData[next + i] = uname[i];
            next             = next + i;
            headerData[next] = (byte) passwd.length;
            int j;
            for (j = 0; j < passwd.length; j++) {
                headerData[next + j] = passwd[j];
            String cmd  = "CONNECT " + Host + ":" + comm.m_nServerPort + " HTTP/1.0" + EOL + EOL;
    What next can be done? Reply. I want to implement authentication in it.
    GeneralMy vote of 5 PinmemberWindowsVsLinux13-Nov-11 13:01 
    GeneralDNS Query Pinmemberkshitij22325-Mar-10 22:43 
    Questionhow to run this project & to see how it works Pinmembernuthanhebbar11-Jan-09 21:16 
    AnswerRe: how to run this project & to see how it works PinmemberSvetoslav Chekanov28-Mar-11 21:20 
    GeneralRe: how to run this project & to see how it works Pinmemberreinerotto2-Sep-11 4:23 
    QuestionHow do I run the applet? PinmemberDarklomba1-Aug-07 11:44 
    AnswerRe: How do I run the applet? PinmemberSyed Mohammed Khawar27-Mar-11 21:59 
    GeneralRe: How do I run the applet? PinmemberSvetoslav Chekanov28-Mar-11 21:16 
    AnswerRe: How do I run the applet? PinmemberSvetoslav Chekanov28-Mar-11 21:17 
    Generalprotocol detailed specifications Pinmemberavinu28-Jul-07 22:58 
    QuestionHTTP Tunnel PinmemberPriyanka Bindumahavan29-Jan-07 23:26 
    AnswerRe: HTTP Tunnel Pinmembersv_chekanov11-Jan-09 22:06 
    GeneralNew problem.. need help. Pinmemberaddagol14-Dec-06 3:52 
    GeneralRe: New problem.. need help. PinmemberSvetoslav Chekanov5-Aug-07 21:20 
    GeneralThank You and One question PinmemberJoshi Pranay22-Oct-06 7:54 
    GeneralRe: Thank You and One question PinmemberSvetoslav Chekanov23-Oct-06 6:38 
    GeneralRe: Thank You and One question PinmemberJoshi Pranay23-Oct-06 8:45 
    GeneralRe: Thank You and One question PinmemberSvetoslav Chekanov23-Oct-06 22:01 
    GeneralRe: Thank You and One question PinmemberJoshi Pranay25-Oct-06 9:25 
    Generalabout firewall in java Pinmembermeetbecks11-Oct-06 7:00 
    Generaloperating system user Pinmembervanichopra23-May-06 18:53 
    GeneralABOUT UDP its urgent Pinmemberpearlstar17-May-06 22:59 
    GeneralUDP support Pinmemberpearlstar9-May-06 22:13 
    GeneralRe: UDP support PinmemberSvetoslav Chekanov17-May-06 23:37 
    Generalauthentication by name/passpord Pinmemberpearlstar9-May-06 9:47 
    GeneralRe: authentication by name/passpord PinmemberSvetoslav Chekanov9-May-06 21:57 
    GeneralRe: authentication by name/passpord Pinmemberwira_redi25-May-09 20:13 
    Generalneeded help to understand concept of socket Pinmemberpearlstar5-Apr-06 11:03 
    GeneralRe: needed help to understand concept of socket PinmemberSvetoslav Chekanov5-Apr-06 23:30 
    GeneralRe: needed help to understand concept of socket Pinmemberpearlstar7-Apr-06 5:37 
    QuestionHow to use socks5 Pinmemberpearlstar2-Apr-06 21:36 
    AnswerRe: How to use socks5 PinmemberSvetoslav Chekanov2-Apr-06 21:41 
    GeneralA new Problem Pinmemberjaramillo.santi23-Mar-06 18:03 
    GeneralRe: A new Problem Pinmemberjaramillo.santi23-Mar-06 18:17 
    GeneralProblem... Pinmemberjaramillo.santi24-Jan-06 18:59 
    GeneralRe: Problem... Pinmemberpearlstar28-Feb-06 19:11 
    GeneralWebsite proxy server Pinmemberpvdwalt77726-Nov-05 6:19 
    GeneralWorks only on one machine. Pinmembervivekvsb5-Nov-05 23:26 
    Generalsocks doubt Pinmemberpsaras3-Nov-05 21:33 
    GeneralPlease Help with SOCKS Pinmembermattoqua23-Oct-05 10:04 
    QuestionIs there a way to make this work with proxy server which requires username and password? Pinmemberpetelam12-Oct-05 8:40 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

    | Advertise | Privacy | Terms of Use | Mobile
    Web03 | 2.8.150326.1 | Last Updated 23 Feb 2000
    Article Copyright 2000 by Svetoslav Chekanov
    Everything else Copyright © CodeProject, 1999-2015
    Layout: fixed | fluid