Russian

Proxy servers advanced FAQ.

http://www.spszone.com/articles/proxy_faq_en.htm

Before reading this guide on proxy servers' work, I'd recommend you to download the following programs:

"Anonymous Guest Professional"
http://www.spszone.com/download/AnGuestPro2.00.zip

and "Socks Cap"
http://www.spszone.com/thirdparty/sc32r234.exe

We will need them in the third and the fourth parts of the guide when we get down to work with proxy servers.

Contents

Part 1. What is an IP-address? What is a port and what is a protocol?
IP-addresses, ports, protocols - everything is very simple.
Experiments with IP-addresses.

Part 2. Proxy server.
What is a proxy server?
How does proxy work?
What is a proxy used for?
Types of proxy servers: SOCKS4, SOCKS5, HTTP, HTTPS proxy types.
You have to know it to work with a proxy server.

Part 3. Working with a proxy server.
Definition of the type of a proxy server.
How to start a program through a proxy?
Starting the programs through a proxy.
How to start ICQ through a proxy?

Part 4. Let's make our lives easier!
There is a rescue!
Why you need a SocksCap.
How does SocksCap work?
The chain "SocksCap" - "Anonymous Guest" or how to change the proxy in 3 mouse clicks.
Working through the chain of proxy servers.

Part 5. Your safety.
What is an anonymous proxy server?
Checking the anonymity of a proxy server.
Advantages of working through the chain of proxy servers.

Part 6. Miscellaneous.
Finding lists of proxy servers.
Steps that you should take when the program is not working through the proxy server.
Your actions if it still is not working.
This is where you can find the guide on proxy servers' work.
All rights reserved.

PART 1.  WHAT IS AN IP-ADDRESS, WHAT IS A PORT AND WHAT IS A PROTOCOL?

IP-addresses, ports, protocols - everything is very simple.

Let's talk a little about computer networks and cars. What do they have in common? Every day we use a car to reach our workplace or to get home. We know that each car has its own registration number. The same goes for every computer in the network. Every computer in the network has its own unique number. This number is called the IP-address.

IP-address is the number of the computer in the network. It is used to find the computer that you need among the others.



On the pictures computers have IP-addresses: 1, 2, 3, 4.

On the parking place we can find our car if we know its registration number. The same goes for every computer - to find a computer in the network we will need to command to connect to the computer that has the registration number XXXX (or the IP-address, which is the same).

In the Internet there are too many computers and the IP-addresses are usually long, such as 64127244101, 64127244102, 64127244103. It is useless to try to bear in mind such addresses and people agreed on dividing it by dots, like: 64.172.244.101, 64.127.244.102, 64.127.244.103.
To feel even more conveniences it was agreed to use domain names (www.yahoo.com) which is not problematic to remember. When we type a domain name in the browser, the computer interprets it into the IP-address (the number of the computer in the network) and proceeds to work with its IP-address. For an example the domain name www.google.com will be interpreted into the number 66.102.11.104, www.yahho.com will be interpreted into the number 216.109.118.74 and www.yandex.ru will be interpreted into 213.180.194.129. This is the way the computers find each other in the network.



Let's now take a closer look at one separate computer and talk about ports.

Let my computer have the IP-address 192.168.0.2 and I have a web-server, mail server and ICQ server installed on it. And you have your lovely Internet Explorer. You command it to connect to the computer with the IP-address 192.168.0.2 if you want to take a look at the web-site that it has. Your Internet Explorer will surely find my computer but there will be a kind of mess because I have 3 servers on my computer and your computer does not know which one to choose.



To avoid it, I will give a certain number to each of the servers. And this number will be called a port.



On my computer the mail server will have the number 1, ICQ server - 2 and web-server - 3.

You command to your browser to connect to the 3rd port of the computer 192.169.0.2 to see the web-site that it has and the Internet Explorer will find it on my computer.



Then you may command to connect to the computer 192.168.0.2 to the port 1 to see if you have new mail. There will be no mess again your mail program will directly connect to the mail server on my computer.

The program that expects to be connected to by another program is called a server program. The program that connects to the server program and commands it to make some functions is called client program.

Port is the number that correctly indicates the server program on a chosen computer. Client program uses the port to specify to what server on a chosen computer it wants to be connected.

We know now that to be connected to a certain computer we need to know its IP-address (to find computer in the network). We need to know the port to connect to the server we need in chosen computer. In short it looks like: "IP-address:port". Here are some examples:

192.168.0.2:1 (IP-address is equal to 192.168.0.2, and the port is - 1)
66.102.11.104:80 (IP-address is equal to 66.102.11.104, and the port is equal to 80)
216.109.118.74:316 (IP-address is equal to 216.109.118.74, and the port is - 316)

When a computer owner installs server programs he himself appoints ports to these programs. What is the way to find out the port of the WEB-server on www.yahoo.com (IP 216.109.118.74)? Fortunately all administrators agreed to appoint certain ports to servers. It was made to avoid mess.

It was agreed that web-servers will have the port number "80"
FTP server will have the port "21"
SMTP-server usually has port "25" (for sending mail)
POP-server to receive mail usually has port "110"
ICQ server has the port 5190.

This is why the search machine on www.yahoo.com (IP 216.109.118.74) will have the port "80".


And now let's say some words about protocols and then make some experiments with ports.

I have a friend speaking Japanese. Want to talk to him? I can give you a telephone number but hardly you will understand each other if you don't know Japanese. The same goes for programs that use different languages (protocols) to communicate to each other. Consequently we conclude that if one program does not know the language of the other, they won't be able work with one another.

The set of rules of communication between programs is called a protocol. Different programs use different protocols.

Internet Explorer perfectly understands the language of WEB-servers and displays us sites in the Internet. But let's try to make it connect to the ICQ-server and see what will happen. Let's command to Internet Explorer to connect to the server "login.icq.com" using the port 5190. The reply will be "OK". Explorer will interpret "login.icq.com" into IP 205.188.179.233 and will connect to the server through the port 5190. The ICQ-server will reply to this connection attempt saying "Hi! I am the ICQ-server!". Explorer will not understand it because it does not know the protocol of the ICQ-server, it will say: "What are you trying to say? I don't understand you!" In its turn, ICQ does not understand what Explorer is trying to say. ICQ can't identify Explorer and understand what it is trying to ask. It can't communicate to Explorer on these terms. After all that ICQ terminates connection to Internet Explorer and Explorer informs us about the connection mistake. However your ICQ-pager easily connects to ICQ every time you need it and you can communicate to your friends.

We can conclude now that a mail program must communicate to a mail server, a WEB-browser must communicate to a web-server, FTP-clients must connect to FTP-server and that is the only correct way.


Experiments with IP-addresses.

When reading the previous chapter you might be asking yourselves one question: "how the computer does interprets domain names, like www.google.com, into IP-addresses, like 66.102.11.104?" Let's pretend to be a "Windows" and define the IP address for www.google.com. It will not demand any extra forces. Let's first initiate the command line. Here is the way it looks:



Now let's type the line "ping www.google.com" and press "enter" button.



Here is what you approximately will see:



The figures in the brackets [66.102.11.104] is the IP-address of the computer that has the search server www.google.com in it. If you received another address, do not be upset: for different countries the name www.google.com different computers may be indicated.

Here is the way www.e-gold.com looks: it has the IP-address [63.24.230.10]



And here is what we have for www.petsmart.com: [66.77.62.4].



Now we will try to connect Internet Explorer directly to the WEB-server [66.77.62.4].

Surely you remember that we also will need a port for it. If you forgot the number of ports for web-servers, take a look above and you will see that it is the port "80".

Let's type http://161.114.87.252:80 in your browser and press "Enter". Here is what we see after:



All is working!

Let's try to do the same for www.compaq.com. We define its IP as it has been described above. I have [161.114.87.252]. We remember about port "80". In the browser we enter: "http://161.114.87.252:80" and press "Enter". The result is:




PART 2. PROXY SERVER.

What is a proxy server?

When we know definitions for IP, ports and protocols, it is time to try to understand what a proxy server is.

Last year New Year I decided to visit my friends in France and chose to go by train to get there. I telephoned the railway station to book tickets from Moscow to Paris but I found out that the tickets were all sold out. I booked tickets from Moscow to Berlin and from Berlin to Paris and in two days, just before Christmas, I was in France. All this situation reminds much about the way proxy servers work. If we imagine that Moscow is my computer and Paris is the computer that I want to reach, Berlin will be the proxy server.

Direct connection of computer "A" to computer "B":



Connection of computer "A" to computer "B" through the proxy server:



An intermediate computer that helps one computer to get connected to another is called a proxy server.


How does proxy work?

All is very simple. Your program connects to the proxy server and commands it to connect to the computer with you need using a certain IP and a certain port. If the proxy can do it, it will say "All is OK! Connection is installed!" After that the program starts sending and receiving the data to and from the proxy, and the proxy sends and receives the data to and from the server it got connected to.




What is a proxy used for?

Proxy servers are used for many reasons. Here are some of them:

  • To hide the real IP address of the computer.
    When you get connected to a computer in the internet, this computer can see your computer's IP-address. If you don't like it, you should use the proxy server. In this case the computer you want to connect to will see the IP of the intermediate computer (proxy server) that you are using in your work.
  • You can not get connected to a certain computer in the Internet.
    Let's imagine that you are denied access to ICQ by your administrator because you have been using ICQ too much during your business hours. Don't be upset! You can get connected to ICQ through the proxy and continue talking to your friends in the ICQ until your administrator denies you access to the proxy server.
  • To avoid hackers' attacks and control of your Internet connections
    When you need to administer the computer network, you can let your employees work with Internet only through the proxy server. In this case you will need to control only one program and it will save your work time.


Types of proxy servers: SOCKS4, SOCKS5, HTTP, HTTPS proxy types.

You understand that your program must be able to work with proxy servers. It can be done with the help of protocols. There are 4 types of most widely used protocols for a proxy: SOCKS4, SOCKS5, HTTP, HTTPS.

Proxy servers that understand protocol SOCKS4 are called SOCKS4 proxy servers, proxy servers that understand protocol SOCKS5 are called SOCKS5 proxy servers. Proxy servers that understand protocol HTTP are called HTTP proxy servers, proxy servers that understand protocol HTTPS are called HTTPS proxy servers. Sometimes SOCKS 4- and SOCKS5 proxy servers are called just "SOCKS".

ATTN: If your program can work with HTTP proxy, it is not permitted to connect it to SOCKS5 proxy server. The same goes for SOCKS4 proxy server and SOCKS5 proxy server. If you still want to try to do it, do not be surprised that your programs will not work. It is the law!

HTTP and HTTPS there are two different types of proxy servers. They also not a compatible one to other. The "Anonymous Guest" software can work only with HTTPS and SOCKS proxy servers, not with HTTP.


You have to know it to work with a proxy server.

So, for your program to start working through the proxy, you will need the following:

1. The program should be able to work through the proxy. If it is not so, it won't be able to make such a program work through the proxy.
2. You must know IP-address and Port of the proxy server to get connected to it.
3. You must know the protocol (type of proxy) for the chosen proxy to communicate to the program you want. When setting your program, you should clearly define the type of proxy you will be working with.


PART 3. WORKING WITH A PROXY SERVER.

Definition of the type of a proxy server.

It is now time to start working with proxy servers. First, let's install "Anonymous Guest Professional" and copy the list of "fresh" proxy servers. It can be done with the help of the item of the menu "Tools -> Download Proxy List".



After that a browser window will be displayed and you will see the list of proxy servers in the format "IP-address: port"



Save this list to disk under the name "proxy_list.txt" and proceed to "Anonymous Guest", item "Proxy Manager" and download it with the button "Load".



Now we will test out these servers and define their types. To do it, you should click "Test".



After the test is over, we will see the proxies working (marked in green color) and in the field "Type" there will appear types of these servers: HTTPS, SOCKS4 or SOCKS5. The proxies that will not work will be marked in red color.




How to start a program through a proxy?

For your program to start working with a proxy, it is necessary to know the IP-address, port and type of a proxy server. If at least one of these parameters is not correct, the program will not be able to work with the Internet.

ATTN: In each program the setting for the proxy server are located in different places. You have to find it on your own. If there are no settings for a proxy in the program, it will be impossible to start it through the proxy server.


Starting the programs through a proxy.

Let's choose any of the working proxies from the example. I like the proxy under the number 5. It has the IP 216.3.82.43, port 80 and type SOCKS4. Now I can make programs start working through it.
I will show you how to do it for some of them.

Let's start with GetRight. Let's start it and proceed with the following steps: "Tools -> GetRight Configurations -> Options -> Internet ->Proxy -> Use Proxy Servers -> SOCKS Proxy".



Let's enter in the field the server 216.3.82.43, specify the port 80 and choose the type "SOCKS4". Now "GetRight" will be working through our proxy server.

Let's do the same for &RQ.

Start &RQ, choose "Preferences > Connection > Use Proxy"



Now define Host 216.3.82.43, Port 80, Protocol SOCKS4.
Now &RQ works through the proxy server.


How to start ICQ through a proxy?

To make ICQ work through the proxy it is necessary to start ICQ and proceed with the following steps: "Main -> Preferences -> Connections -> Server -> Using Firewall -> Using Proxy" and define proxy SOCKS4.



Now follow to "Firewall" and define type, address and port of the proxy:
Proxies/Firewall Socks4, Host 216.3.82.43, Port 80.



After these manipulations ICQ will start working through the proxy server.


PART 4. LET'S MAKE OUR LIVES EASIER!

There is a rescue!

When reading the previous article, one can think that programmers always hide settings of their programs. What shall we do if we want to change the proxy server? Shall we have to visit dozens of windows, typing addresses, port s and protocols? Many programs can not work with proxy servers. Well … it all is not very much encouraging…
No panic! There is a rescue! It is called "SocksCap"!


Why you need a SocksCap.

SocksCap is the program that helps any other program to work through the proxy server. Even if your program can't work with the proxy, SocksCap will teach it to do this!


How does SocksCap work?

It is the easiest you can do! You just can add programs into SocksCap window and they will start working through the proxies themselves! Let's do it and start with Internet Explorer. Start SocksCap:



Now click "New":



Now "Browse" and choose Internet Explorer (C:\Program Files\Internet Explorer\Iexplore.exe)



Click OK



With the same method we add other programs that must work through proxies to SocksCap. In my case it is The Bat, Outlook Express, ICQ.



And finally we will choose the proxy server these programs will be working with. Choose menu: "File > Settings"



In the appeared window we enter the address, port and type of our proxy (let it be the same proxy from the previous chapter, the address is 216.3.82.43, port 80 type SOCKS4).



Click OK.

From the window SocksCap we start Internet Explorer by double click.



All is done! Now the Internet Explorer will be working through the proxy. To start ICQ or Outlook Express through the proxy it will be enough to double click their symbols in the SocksCap window.

ATTN: You might have noticed that SocksCap can work only with SOCKS4 and SOCKS5 and it will not be able to work with HTTP and HTTPS.

To make the long story short we will take a general look at work with proxies through SocksCap and proceed to the following chapter. We will make our life even easier and will learn to work through the chain of proxy servers.

This is the way the program work looks without using SocksCap. Each program connects to the proxy itself.



And this is what is happening when we start programs through SocksCap.



Programs work with SocksCap and it works with the proxy server. The advantage is that we have to type the proxy data in the only place. Besides, SocksCap will teach the program to work with the proxy server.


The chain "SocksCap" - "Anonymous Guest" or how to change the proxy in 3 mouse clicks.

This chapter is for the most coward and the laziest, for those who want to change the proxy in 3 mouse clicks instead of working with settings and entering data on each proxy server in many windows. Let's get down to it if this all is about you! This chapter must be a jumping-off place for future work with chain of proxy servers.

This is what we have:



All programs work through SocksCap and SocksCap connects to the proxies.

Now we will change the chain a little bit. Let "SocksCap" connect to "Anonymous Guest" and let "Anonymous Guest" connect to the proxy server we need.



This is where the most interesting things start. First we set SocksCap to work with "Anonymous Guest". You can start SocksCap and choose menu: "File -> Settings".



This is the place where you must type the address of a proxy, its port and type.



We enter the address 127.0.0.1, port 5050 and type of proxy SOCKS4. Click OK.

127.0.0.1 is a pseudo IP of the computer you are sitting at. Certainly this IP is not real, but if I type 127.0.0.1 the system will understand that I want to work with the computer I am sitting at.

What we have as a result? SocksCap wants to get connected to your computer using port 5050. Let's help it. Start "Anonymous Guest" and proceed to "Service Manager".



Click "Add Service".



Enter the name of the service "SocksCap Service", define port 5050 and uncheck "Auto creating Proxy Chain". Make sure SOCKS4 Client is chosen and click "OK".

Now, from the window SocksCap we start Internet Explorer and try to visit any Internet site. I chose www.yahoo.com . This is the way "Anonymous Guest" looks:



In the field "Destination" "Anonymous Guest" shows IP-address and port of the computer to which we connect (here it is the IP-address for the search machine www.yahoo.com). In the field "Sent" the quantity of sent bites is marked for each connection. The field "Received" shows the quantity of received bites. "Time" stands for the time of connection and "Speed" - for the speed of connection.

There is also field "Proxy Chain" but it is empty as you have noticed. This field is empty now because "Anonymous Guest" is directly connected to www.yahoo.com.

Lets get connected to it through the proxy. To do it you have to double click the name of the service and drag any working proxy from the right window to the left one. I did it for the proxy undead number 6 (IP-address 210.153.68.60, port 3128).



Click OK and again type www.yahoo.com in the Internet Explorer. The address and the port of our proxy is now seeing in the field "Proxy Chain". It means that we connected to www.yahoo.com through it.



To change this proxy for another it will be enough to open the properties of the service. To delete the unnecessary proxy from the left window and fill with the proxy that you like from the right window. This is the way to change the working proxy in a couple of double clicks. When you need to change proxy servers too often, these steps will allow you to save your time and nerves. Besides, at "Log Window" in "Anonymous Guest", you will always see a detailed information on your present connection.

Here is the full description of the work of our programs:



Through SocksCap programs connect to "Anonymous Guest". Further, it connects to the computer (proxy) we have chosen and the latter connects to the computer we really need.


Working through the chain of proxy servers.

If you were attentive enough in the previous chapter, it won't be difficult for you to work through the chain of proxy servers. Just enter in the properties of the service in the "Anonymous Guest" and in the left window choose the chain of proxies that you want to use to work in the Internet:



In my example I made a chain of 3 proxy servers.



What is the purpose of working through the chain of proxy servers? You can read about it in the following chapter of the guide which explains a lot about the safety of your work in the Internet.


PART 5. YOUR SAFETY.

What is an anonymous proxy server?

When you get connected to any remote computer, be it a mail-server or a web-server, you always leave your steps. The remote computer can identify you and your connection to it and save your IP-address in own log files. We will now take a closer look at the processes taking place when we work through the proxy server. You get connected to the proxy server and the proxy, in its turn, makes connection to the computer you have chosen.



Under these circumstances the computer can identify only the IP-address of your proxy server and saves no information about your computer. But not all is so easy. You must know that many of the proxy servers save IP-addresses of the client computers that connect to them. The computer you are trying to connect to may ask the proxy to get the info about your computer and it will be done immediately.
There is a possibility to avoid it. There are lots of proxies that do not save your computer's data. These proxies are called anonymous.

ATTN: If you found the list of "anonymous" proxies in the open sources of the Internet, it is almost for sure that these proxies do save and do give information about your IP-address to the computers you are trying to connect to. The anonymity of the proxies can be checked only through the owner of the proxy.


Checking the anonymity of a proxy server.

To find out if your computer's IP-address is being given or not during the work with a proxy server you should start a browser through a proxy server and visit the following pages:

http://www.all-nettools.com/pr.htm
http://www.leader.ru/secure/who.html

These are the places to check if the IP of your computer is being given but it will not be a guarantee that the proxy does not save data about your IP-address in own log files. You will need to ask the owner of the proxy to find really anonymity of proxy.


Advantages of working through the chain of proxy servers.

If you can't sleep well, thinking that your computer is being watched, if you are afraid of national safety special agents each time you are sending an e-mail - you are a paranoiac! You have 2 choices in this case:

1. Call for a doctor
2. Work through the chain of proxy servers. The more computers will be in this chain, the harder it will be to determine your computer's IP

But there is another side of the medal also - the longer the chain is, the lower will be the speed to transfer the data.


PART 6. MISCELLANEOUS.

Finding lists of proxy servers.

The lists of proxy servers can be found here:
http://www.spszone.com/anguest/proxy_links.htm


Steps that you should take when the program is not working through the proxy server.

Test your proxy. Make sure it is "alive" and define its type. Give your program the right address, port and type of proxy. If you start trembling as a hare when you here anything about IP, port or a protocol, you should return to the beginning of this guide and read it once again.


Your actions if it still is not working.

Get down to the previous item.


This is where you can find the guide on proxy servers' work.

You can find this guide in the following sources:
http://www.spszone.com/articles/proxy_faq_en.htm
and if you want to download this material in the Microsoft Windows Help format, you can do it from here:
http://www.spszone.com/download/proxy_faq.zip


All rights reserved.

All rights of the document are reserved, Ma:)x Ba!amut (c) 2004

Reprint of this document is permitted in any cases and without any changes in the text of the document and with the direct reference to the site where the article is located
http://www.spszone.com/articles/