Come configurare smartphone e PC. Portale informativo
  • casa
  • notizia
  • Un server proxy da qualsiasi computer con qualsiasi sistema. Creazione del server proxy

Un server proxy da qualsiasi computer con qualsiasi sistema. Creazione del server proxy

Buon giorno amici, molti di voi stanno pensando a come configurare i propri server proxy individuali per lavorare nei social network, nei motori di ricerca o per qualche altro scopo. Molti potrebbero aver provato ad elevare le proprie deleghe, ma il risultato non è andato a buon fine, oggi voglio raccontarvi come, usando l'esempio di uno dei tanti servizi, è possibile impostare delle deleghe per uso personale, il cui costo varierà da 80 rubli, se aumenti almeno 5 proxy e con ogni nuovo proxy il prezzo per 1 proxy diminuirà solo. Quindi, se aumenti 20 proxy, il prezzo sarà di soli 58 rubli. Quindi iniziamo.

Registrazione di un server nel servizio Gigspace e ordinazione di IP aggiuntivi

Prima di tutto, dobbiamo affittare un server nel servizio Gigspace.ru, per questo seguiamo il >> link<< Нажимаем кнопку «Заказать» под VDS.

Successivamente, veniamo indirizzati alla pagina dell'ordine, ma poiché il sistema non è stato portato in mente, dobbiamo tornare alla pagina: http://gigspace.ru/vds_msk.php e selezionare un piano tariffario su questo pagina.

Dopo aver cliccato, verremo reindirizzati alla pagina di registrazione nel sistema, come nuovo cliente. Selezioniamo il tipo di cliente - "Nuovo cliente".

Compiliamo il modulo di registrazione, non dimostrerò come compilare il modulo, poiché lì devi solo inserire i tuoi dati, penso che chiunque possa farcela a compilare il modulo se sta cercando l'argomento di allevare il proprio proxy.

Dopo la compilazione, seleziona il primo piano tariffario, il cui nome GiGv-1 M1 (230 rubli / mese)

Di seguito indichiamo che il server sarà senza nome di dominio e premiamo il pulsante "Avanti".

Successivamente, seleziona il periodo di pagamento, pago sempre per un mese di utilizzo, poiché a volte non è necessario ordinare un proxy per un periodo più lungo, ma se paghi per un periodo più lungo, otterrai uno sconto. Mettiamo un segno di spunta davanti alla voce "IP aggiuntivo (50 rubli / mese)", indichiamo il numero di ip di cui abbiamo bisogno, questi ip saranno i nostri server proxy, indico il numero 5, poiché avrò abbastanza ip dati ora, puoi ordinare una quantità diversa. Non abbiamo bisogno di un backup. Successivamente, indichiamo il codice promozionale. se ricevuto. Per i miei abbonati fornisco un codice promozionale per uno sconto del 5%, ma solo dopo avermi contattato personalmente via mail: [e-mail protetta] con oggetto CODICE PROMO Gigspace... Quindi premiamo il pulsante "Avanti".

Al terzo passaggio dell'ordine, scriviamo nel commento: “ Buona giornata! Vorrei utilizzare indirizzi IP aggiuntivi come proxy per lavorare nei social network“, Beh, o qualcosa del genere. Se non scrivi che ip verrà utilizzato per il traffico proxy, dovrai eseguire ulteriori gesti per configurarli

Dopo aver cliccato sul pulsante, veniamo indirizzati alla pagina per la scelta di un metodo di pagamento, preferisco sempre pagare tramite WebMoney o Yandex Money, quindi scelgo WebMoney. E scegli già a tua discrezione, sono disponibili QIWI, Yandex Money, WebMoney e il pagamento tramite Roboxchange (Robokassa).

Quindi seguiamo la procedura standard per il pagamento della fattura tramite il sistema selezionato e aspettiamo circa 10 minuti - 24 ore, tutto dipende dal momento in cui si ordina il servizio. Gigspace a questo proposito è lento, ma i prezzi per i servizi non mordono. Non appena il tuo server virtuale viene creato, riceverai una notifica via e-mail sulla creazione del server.

Configurazione dei server proxy utilizzando il terminale putty

Ora passiamo alla parte divertente: configurare i server proxy. Abbiamo ricevuto un messaggio nella posta sulla corretta creazione del server, ora siamo interessati ai dati di accesso al server tramite il protocollo SSH, che è arrivato alla nostra posta.

E un programma per la connessione al server tramite protocollo SSH, che si chiama Putty, puoi scaricarlo al seguente >> link<<

Dopo aver scaricato l'archivio con il programma, estrai l'archivio ed esegui il file denominato "PUTTY.exe". Inserisci l'indirizzo IP nel campo "Nome host" e fai clic su "Apri".

Ora nella finestra di input inseriamo il login che è arrivato alla tua posta e la password, la password in Putty deve essere inserita premendo i tasti Maiusc + Inserisci, quando si inserisce la password, non verrà visualizzata affatto, tenerla in attenzione, dopo aver inserito la password, premere "Invio".

Se la password è stata inserita con successo, apparirà la riga #

Se non appare, reinserisci la password premendo Maiusc + Inserisci.

Ora dobbiamo scoprire i nostri indirizzi IP, per questo andiamo di nuovo alla posta e troviamo il seguente contenuto nel messaggio.

Ora, al contrario, dovrebbe apparire un elenco di tutti gli indirizzi IP che hai ordinato, se questo elenco non è presente, scrivi al ticket, a volte dimenticano di collegare un ip aggiuntivo, sebbene sia stato solo una volta durante il lavoro con spazio concerto. Dopo che l'IP aggiuntivo è stato collegato, verrà visualizzato l'elenco.

Visto che collego altri 5 ip, nella lista avrò 1 ip principale e 5 dei miei aggiuntivi, ovvero saremo in grado di raccogliere 6 proxy in totale.

Ora torniamo di nuovo alla console del mastice, prima di tutto inseriamo il comando ifconfig per determinare se indirizzi IP aggiuntivi sono collegati alla scheda NIC del server. Se vediamo dopo aver inserito il comando del dispositivo venet0: 0, venet0: 1, ecc., Allora l'hoster ha configurato gli indirizzi IP ordinati per essere collegati alla scheda di rete, in caso contrario, puoi connetterti manualmente usando il comando: ifconfig eth0: 1 xxx.xxx.xxx.xxx 255.255.255.0 up, dove xxx.xxx.xxx.xxx è uno dei tuoi indirizzi IP, allo stesso modo inviamo comandi per tutti gli ip disponibili, cambiando l'ultima cifra in eth0: 1 in eth0: 2, eth0: 3, ecc.

Dopo essersi assicurati che gli indirizzi IP siano collegati alla scheda di rete, è necessario installare il repository epel per l'ulteriore installazione del software 3proxy per configurare un server proxy, poiché questi hoster forniscono OS centos 5, il comando di installazione del repository sarà il seguente: rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm... Dopo l'installazione, la console visualizza quanto segue:

Ora installiamo il software per la configurazione del proxy del traffico 3proxy, per questo eseguiamo il comando: yum install 3proxy -y... Stiamo aspettando la fine dell'installazione.

Installa un comodo editor di testo nano, puoi usare quello standard, ma io preferisco l'editor nano. Eseguiamo il comando: yum installa nano.

Facciamo un backup della configurazione di 3proxy con il comando: mv /etc/3proxy.cfg /etc/3proxy.cfg.back.

Ora modifichiamo la configurazione di 3proxy, che sarà responsabile del funzionamento dei nostri proxy. Quindi, eseguiamo il comando: nano /etc/3proxy.cfg... Si aprirà davanti a noi un file vuoto. Preferisco configurare un proxy con autorizzazione login e password, quindi dimostrerò come configurare un proxy con autorizzazione login e password. Inserisci le seguenti righe all'inizio del file premendo i tasti Maiusc + Inserisci:

demone
auth forte
username utente: CL: pass
sciacquone
nserver 8.8.8.8
nscache 65536
timeout 1 5 30 60 180 1800 15 60

design auth forteè responsabile dell'autorizzazione tramite login e password, con l'ulteriore utilizzo del proxy, username e pass sono login e password con cui si desidera che il proxy sia disponibile. : CL: non c'è bisogno di toccare!

Se vuoi configurare l'autorizzazione tramite ip, invece di auth forte scriviamo: auth iponly... Eliminiamo la riga users ... e aggiungiamo gli indirizzi IP fidati per il proxy, scrivendo le righe: consenti * xxx.xxx.xxx.xxx... Dove xxx.xxx.xxx.xxx è l'indirizzo IP attendibile. Puoi anche impostare diversi indirizzi IP e accessi con password per il proxy.

Adesso passiamo alla configurazione dei proxy stessi, per te ho preparato un file excel, che puoi scaricare dal link >><<, чтобы упростить работы с прописыванием прокси в конфиге. Http прокси прописываются следующим образом в конфиге:

proxy -n -a -p8050 -i192.168.0.1 -e192.168.0.1

Dove puoi specificare qualsiasi porta, da 1 a 65535, prescrivi già la porta a tua discrezione, per motivi di sicurezza ti consiglio di utilizzare valori superiori a 10000. 192.168.0.1 è uno dei tuoi indirizzi IP collegati al server, che utilizzerai come proxy.

I proxy di calze sono scritti in questo modo:

calzini -p1000 -i192.168.0.1 -e192.168.0.1

Allo stesso modo, metti la tua porta, l'ip è anche tuo.

Utilizzando il file excel che hai scaricato sopra, puoi fare velocemente le costruzioni necessarie per la configurazione registrando i tuoi indirizzi IP invece di xxx.xxx.xxx.xxx, assicurati di sostituire le porte e specifica gli accessi e le password per il proxy, copia le strutture esistenti dalle colonne "risultato http" e "risultato socks" e incollale nel file config.

Alla fine, la configurazione completa sarà simile a questa:

Ora premi ctrl + x per salvare la configurazione e premi Y per confermare il salvataggio del file, quindi premi Invio.

Ecco fatto, la nostra configurazione è pronta, scriviamo le informazioni nel file di avvio eseguendo il comando: chkconfig 3proxy attivo

Esegui 3proxy con il comando: avvio del servizio 3proxy

Controlliamo se i nostri proxy funzionano, io uso il browser Mozilla Firefox per verificare, per questo apriamo il Browser, andiamo su "Impostazioni" -> "Ulteriori" -> "Rete" -> "Configura", seleziona "Server proxy manuale settings", inserisci uno dei nostri ip e porta che hai specificato, applica le impostazioni. Ora proviamo ad andare in qualsiasi sito. Quando appare la finestra di autorizzazione del proxy, mi congratulo con te, hai configurato tutto, la finestra dovrebbe apparire in questo modo.

Ora chiudi la console con il comando Uscita o semplicemente attraversa la finestra e accontentati dei proxy configurati, amici! ?

Conclusione

Oggi ho dimostrato come configurare i propri server proxy per la navigazione in Internet anonima. Devo dire subito che oltre a gigspace c'è un pozzo di hoster, ma mi sono piaciuti questi hoster proprio perché forniscono un prezzo ragionevole per IP aggiuntivi e server che funzionano stabilmente.

Se imposti i tuoi proxy con altri hoster, questo manuale ti soddisferà parzialmente, se hai domande sulle impostazioni, puoi fare riferimento ai commenti a questo post, penso di poterti aiutare a risolvere le tue domande.

Non dimenticare di iscriverti al blog e condividere questo post sui social network! Smetti di pagare intermediari, crea le tue deleghe a un prezzo più basso! E sul mercato i prezzi per le deleghe ormai sono pungenti, ve lo assicuro. ?

Molti utenti che vogliono navigare in sicurezza in Internet vogliono sapere come scoprire il loro server proxy: indirizzo IP e porta. Come si fa e a cosa serve? L'importanza e la non banalità della questione sollevata è spiegata dalla finalità della delega. Il suo compito principale è nascondere l'IP privato dell'utente sostituendolo con un indirizzo diverso.

Molto spesso, questo servizio è richiesto nel campo di SMM, in cui è necessario accedere con diversi account sui social network da un computer. Ciò riduce al minimo il rischio di blocco dell'account e non desta sospetti da parte dei moderatori. A volte lo usano. Per illustrare il problema sollevato, ricorda i casi in cui sei andato su un sito straniero con il desiderio di guardare un video o utilizzare servizi, ma è apparso un avviso che la visualizzazione era limitata per la tua regione. Tali situazioni si verificano sempre, ma a causa della mancanza di conoscenza nella domanda su come scoprire il tuo server proxy e la tua porta, questi problemi possono sembrare insolubili. Inoltre, ciò impoverisce notevolmente la capacità dell'utente di ottenere informazioni utili che potrebbero essere ottenute con un'adeguata conoscenza.

I proxy dedicati sono utilizzati da molte persone. Gli obiettivi possono essere molto diversi: dall'utilizzo individuale e visualizzazione di risorse web bloccate, al segmento aziendale, dove l'utilizzo di un numero enorme di proxy è considerato la norma. Ma, allo stesso tempo, non tutti riescono a trovare la risposta: come scoprire il server proxy attualmente in uso. Proviamo a considerare le opzioni più efficaci con le quali puoi facilmente scoprire tutte le informazioni necessarie.

Come scoprire l'indirizzo del server proxy - il primo modo

Secondo modo

In senso figurato, non devi sempre "arrampicare" per raggiungere la destinazione desiderata. A volte è necessario essere intelligenti e aggirare la "montagna" con tatto. La risposta su come scoprire l'indirizzo proxy può essere ottenuta nel modo più semplice. Tutto ciò che serve è contattare l'amministratore di sistema che serve la rete locale. Ha abbastanza competenza per guardare la delega e trasferirla a te. La difficoltà è che non tutti possono scoprire come contattare l'amministratore di sistema. Per risolvere questo problema, consigliamo di contattare persone più esperte. Ti diranno dove chiamare per contattare l'amministratore.

Il terzo modo

Nel pannello di controllo del tuo computer, trova e apri la voce "Risorse di rete". In esso, fai clic su "visualizza connessioni di rete" e quindi su "connessioni alla rete locale". Fare clic destro su di esso e selezionare proprietà. Nella finestra che si apre, devi trovare il protocollo Internet TPC\IP. Seleziona nuovamente "proprietà". Se è presente un segno di spunta accanto a "ottieni automaticamente un indirizzo IP", non viene utilizzato alcun proxy dedicato, se sono presenti numeri (ad esempio, 10.0.0.20), questo sarà l'indirizzo del proxy desiderato.

Come scoprire la porta proxy

Oltre all'indirizzo e alla password, molti utenti potrebbero essere interessati alla domanda su come scoprire la porta proxy. Questo è un altro parametro che viene utilizzato quando si lavora con il proprio. Di norma vengono utilizzati i valori standard per la porta: 8080, 80, ecc. Solo in rari casi il valore differisce. L'indirizzo della porta può essere visualizzato in un browser seguendo i passaggi precedenti. Il suo valore si adatta all'indirizzo IP. La porta di lavoro attraverso la quale il tuo proxy si connette effettivamente deve corrispondere al valore dichiarato nelle impostazioni di sistema o del browser, altrimenti la tua connessione Internet non funzionerà.

Ti permetteranno di velocizzare il tuo lavoro con software SEO e social network.

Ora esploriamo come è possibile creare un server proxy HTTP. Un server proxy è un intermediario tra l'utente e Internet. Supponiamo che la tua rete locale disponga di un server connesso a Internet tramite un canale dedicato. Affinché tutti i computer possano accedere, è necessario installare un intermediario sul server attraverso il quale i computer locali accederanno alla rete globale.

Un server proxy può mascherare gli indirizzi IP e solo l'indirizzo del server sarà visibile su Internet, perché le richieste proverranno dal suo conto. Inoltre, i server moderni possono memorizzare nella cache le informazioni e quindi salvare il traffico in entrata.

In questo capitolo creeremo un server proxy che maschererà l'indirizzo (tutte le richieste arriveranno per conto del server), ma senza la possibilità di memorizzare nella cache. Pertanto, la connessione sarà trasparente, per così dire.

Quindi mettiamoci alla pratica ed esploriamo come tutto funziona dall'interno. Per prima cosa devi decidere la tecnologia utilizzata. Devo scegliere i blocchi, attendere la selezione o gli eventi di Windows? Nel nostro programma, quando un utente richiede di scaricare un sito, dovremo ottenere questo sito dal server e trasferirlo all'utente. Ciò richiederà molto tempo e, quando si utilizzano gli eventi, altri utenti non saranno in grado di lavorare al momento.

Per svolgere un lavoro parallelo, dobbiamo utilizzare i thread e creare la nostra istanza per ogni connessione. A prima vista, questo sembra complicato, ma ora faremo in modo che tutto sia molto più semplice di quanto sembri.

Passiamo ora alla realizzazione. Crea un nuovo progetto. Abbiamo bisogno di tre campi di input nel modulo:

La porta su cui verrà eseguito il nostro server e attende le connessioni dal lato client; porta del server proxy esterno, se il nostro dovrà reindirizzare le richieste ad un altro server. Quindi, saremo in grado di costruire una catena di diversi server proxy;

Indirizzo del server proxy esterno.

Inoltre, è necessario un pulsante, premendo il quale verrà avviato il server proxy. Non includeremo la possibilità di fermarsi, sebbene questa operazione consista semplicemente nel fermare il flusso del server.

Un esempio della forma principale di un programma futuro è mostrato in Fig. 5.9.

Riso. 5.9. La forma del futuro server proxy

Posizionare il carico della libreria di rete WinSock sull'evento OnCreate per il modulo principale:

procedura THTTPProxyForm.FormCreate (Sender-TObject). var wData- WSADATA: inizia se WSAStartup (MAKEWORDd.l). wDati)<>0 quindi inizia MessageBox (0. "Impossibile caricare WinSock". "Errore". 0): esci:

Fine: fine:

Dopo aver fatto clic sul pulsante Start, è necessario avviare il server proxy. Per fare ciò, creeremo un thread separato e in esso aspetteremo una connessione dal client in modo da non ritardare il lavoro del modulo principale. Non ci saranno blocchi nel programma.

Procedura THTTPProxyForm.bnStartClick (mittente: TObject). var st: TServerThread: inizio st: = TServerThread.Create (true). st iLocal Port: "StrToIntDef (edPort.Text. 8088): st.iExtProxyPort - = StrToIntDef (edExtProxyPort Text. 8080): st.sExtProxyAddr: = edExtProxyAddr.Text: st.Resume: end:

Il thread del server avrà bisogno di informazioni su quale porta eseguire e dove si trova il server successivo. Ecco perché scriviamo queste informazioni nelle variabili del server pubblico in modo che vengano archiviate localmente. Non ha senso accedere al modulo principale dallo stream, perché in futuro puoi eseguire due server proxy su porte diverse con poche o nessuna modifica del codice.

Ora diamo un'occhiata all'implementazione del thread del server. Per crearlo, esegui il comando di menu File Nuovo Altro (per Delphi 6 e versioni precedenti, seleziona semplicemente File Nuovo). Vedrai una finestra di dialogo per specificare l'elemento che stai creando. Selezionare Oggetto thread e fare clic su OK. Dovrebbe apparire una finestra di dialogo per inserire il nome del flusso. Immettere TServerThread e fare clic su OK.

Puoi vedere il codice sorgente completo (solo senza le familiari procedure per controllare i messaggi TestFuncError e TestWinSockError) nel Listato 5.10.

Listato 5.10. Codice thread TServerThread

Unit ServerThreadUnit. l'interfaccia utilizza Classi, winsock, windows; tipo TServerThread = classe (TThread) private (dichiarazioni private) procedura protetta Eseguire: override: public i Local Port. i ExtProxyPort: numero intero; sExtProxyAddr: String: end: l'implementazione utilizza ClientThreadUnit:

procedure TestWinSockError (S: String): begin // Il codice di questa procedura ci è familiare, quindi viene troncato per risparmiare spazio

function TestFuncErrordErr: Intero: FuncName: String): Boolean; begin // Il codice di questa funzione ci è familiare, quindi viene troncato per risparmiare spazio

Fine; procedura TServerThread.Execute;

Listato 5.10 continua var sServerListen. stClientSocket: TSOCKET: local-addrs- sockaddMn: ct: TCIientThread; inizio

// Crea socket

SServerListen: = socket (AF_INET. SOCK_STREAM, 0);

se SServerListen = INVALID_SOCKET allora inizia MessageBox (0. "Errore durante la creazione del socket." "Errore". 0): exit:

// Compilando la struttura dell'indirizzo localaddr.sin_addr.s_addr: = htonl (INADDR_ANY): localaddr.sin_family: = AF_INET; localaddr.sin_port: = htonsdPorta locale):

// Associa il socket all'indirizzo locale

Se TestFuncError (bind (sServerListen. Localaddr. Sizeof (localaddr)) "bind"), esci:

// Inizia ad ascoltare

Se TestFuncError (listen (sServerListen. 4), "Listen") quindi esci:

// Connessioni di elaborazione loop dal client

mentre true inizia // Accetta la connessione

StClientSocket: = accept (sServerListen, nil.nil): se StClientSocket = INVALID.S0CKET quindi continuare: i

// Crea un thread per comunicare con il client ct: = TClientThread.Create (true): ct.stClient: "StClientSocket: ct iExtProxyPort: = iExtProxyPort: ct sExtProxyAddr: = sExtProxyAddr; ct Resume:

Fine: fine; fine.

Al pub! i con tre variabili aggiunte: i Local Port, iExtProxyPort di tipo Integer e sExtProxyAddr di tipo String. Abbiamo già utilizzato queste variabili quando abbiamo esaminato il codice per la creazione di uno stream, qui puoi vedere come vengono dichiarate.

Il codice del thread del server principale si trova nella procedura Execute. Innanzitutto, viene creato un socket e viene avviato l'ascolto delle connessioni sulla porta specificata dall'utente.

In un ciclo while infinito, vengono accettate le connessioni in entrata. Se viene ricevuto un socket valido, viene creato un altro TClientThread. La comunicazione diretta tra il client e il server avverrà in questo thread. Il flusso fungerà da intermediario per consentire al client di accedere alle pagine Web. Il codice per TClientThread è mostrato nel Listato 5-11.

Listato 5.11. Stream che media tra il client e il web

Unità ClientThreadUnit.

l'interfaccia utilizza

Classi, Winsock. sysutils. windows: tipo TClientThread = class (TThread) private (dichiarazioni private) procedura protetta Execute: override; iExtProxyPort pubblica: numero intero; sExtProxyAddr: String: stClient: TSocket: end:

implementazione (TClientThread) funzione LookupName (nome: String): TInAddr; begin // Funzione per determinare il nome, con cui abbiamo familiarità

// Funzione per inviare una stringa

Procedura SendStr (s: TSocket: str: String): begin TempStr: = str + # 13 + # 10: CopyMemory (@sRecvBuff. PCharCTempStr). Lunghezza (TempStr)); send (s. sRecvBuff. Length (TempStr). 0); fine; procedura TClientThread.Execute: var Buff: array di char: iPort: Integer: sRequest. sHost: String: server_addr: sockaddMn: continua &

Listato 5.11 (continua) sock_server-TSocket: iMode. iSize: Intero-rfds: TFDSET. inizio /////////////////////////// // Leggere l'intestazione //////////////// / /////////// RecvCstClient. In forma. 1024.0):

SRequest: = Stringa (potenziamento).

// Nessuna intestazione se sRequest = "" quindi inizia CIoseSocket (stCl i ent). uscita, fine:

////////////////////////////

// Determina l'indirizzo e la porta del server

//////////////////////////// sHost: = Copia (sRequest. PosCHost: ". sRequest). 255): Elimina (sHost. Pos. (# 13. SHost), 255); Elimina (sHost. 1, 6); iPort: = St rToIntDef (Copia (sHost. PosC: ". SHost) + l. 255). 80): Elimina (sHost. PosC: ". SHost). 255):

// Se l'host non viene trovato, allora errore

Se sHost = "" allora. begin SendStr (stClient. "HTTP / 1.0 400 Intestazione ricevuta dal browser non valida"); CIoseSocket (stCli ent); uscita: fine;

// Se c'è un "proxy" esterno, reindirizza ad esso

Se sExtProxyAddr<>"quindi inizia iPort: = iExtProxyPort; sHost: = SExtProxyAddr; fine:

sock_server -: = socket (AF_INET. S0CK_STREAM. 0): // Alla ricerca di un server proxy

Server_addr.sin_addr.s_addr: = htonl (INADDR_ANY): server_addr sin_family: = AF_INET: server_addr.sin_port = Htons (iPort): server_addr.sin_addr: = LookupName (sHost); 1

// Connettiti al server

Se connect (sock_server. Server_addr. Sizeof (server_addr)) = SOCKETJRROR allora inizia SendStr (stClient. "404 Host Not Found"); Uscita; fine; iMode: = 1: setsockopt (sock_server. IPPR0T0_TCP. TCPJODELAY. @iMode. sizeof (intero)).

// Reindirizza la richiesta al server o ad un altro invio "proxy" (sock_server. Buff, strlen (buff) .0):

// Ora lavoriamo come intermediari tra il client e il server. // passare i dati richiesti mentre true do begin // Aggiunge socket al set per attendere FD_ZERO (rfds): FD_SET (stClient, rfds): FD_SET (sock_server.rfds); if (selezionare (0. Orfds. nil. nil. ml)< 0) then exit; // Если пришел запрос от клиента. // то перенаправляем серверу if (FD_ISSET(stClient. rfds)) then begin iSize = recv(stClient. buff, sizeof(buff). 0); if iSize=-l then break; Send(sock_server. buff. iSize. 0); continue: end:

// Se i dati provengono dal server.

// quindi reindirizza al client

If (FD_ISSET (sock_server, rfds)) allora inizia iSize: = recv (sock_server, buff.sizeof (buff). 0):

// Il server ha già inviato tutto se iSize = 0 quindi esci:

Listato 5.11 (continua) SencKstClient. in forma. iSize. 0): continua:

Fine; end: CloseSocket (stClі ent): CloseSocket (sock_server): end: end.

Per il server proxy, la cosa più interessante è nascosta nel TClientThread, e ora daremo un'occhiata più da vicino. L'unica cosa che manca in questo elenco è la funzione LookupName con cui abbiamo già familiarità.

Quindi, quando il client si connette al server proxy, invia una richiesta HTTP standard per ottenere alcuni file. Leggiamo questa intestazione usando la funzione recv. L'intestazione ha questo aspetto:

GET http://VAAo.vr-onl1ne.rU/HTTP/l.0 Accetta: immagine / gif. immagine / x-xbitmap. immagine / jpeg. * / * Accept-Language: ru User-Agent: Mozilla / 4.0 (compatibile: MSIE 6.0: windows NT 5.2: .NET CLR 1.1.4322) Host: www.vr-online.ru Proxy-Connection- Keep-Alive

Anche se non approfondiremo l'essenza della richiesta e dei comandi qui contenuti, la cosa principale per noi ora è la linea host. Contiene l'indirizzo del server da cui si desidera ricevere i dati e restituirli al client. In questo caso, è www.vr-onlin.ru. L'indirizzo è noto, resta da scoprire la porta. Per impostazione predefinita, i server Web vengono eseguiti sulla porta 80, ma in caso contrario, l'indirizzo del server Web verrà specificato come segue: www.vr-online.ru:Port. Dopo i due punti, viene indicato il numero della porta e dobbiamo tenere conto di questa sfumatura.

Quindi, dopo aver ricevuto l'intestazione, iniziamo a selezionare il nome host da essa:

SHost: = Copia (sRequest, Pos ("Host:". SRequest). 255): Elimina (sHost. Pos (# 13. SHost). 255); Elimina (sHost. 1.6);

Ora separiamo il numero di porta, se specificato:

IPort: = StrToIntDef (Copia (sHost. PosC: ". SHost) + l. 255). 80); Elimina (sHost. PosC:". SHost), 255):

Se la porta non è specificata, la funzione StrToIntDef genererà un errore e restituirà il valore predefinito, che è 80.

Assicurati di controllare: se la variabile sHost dopo aver analizzato l'intestazione è uguale a una stringa vuota, l'indirizzo del server non è specificato o è specificato in modo errato. In questo caso, dobbiamo restituire un errore. Questo può essere fatto come segue:

SendStr (stClі ent. "HTTP / 1.0 400 Intestazione ricevuta dal browser non valida");

Dopo aver inviato l'errore, chiudi il socket ed esci dallo stream.

Ora controlliamo: se viene specificato un "proxy" esterno, sostituiamo l'indirizzo e la porta del server con i parametri del server proxy esterno. In questo caso non ci resta che inoltrare a questo server la richiesta ricevuta dal client.

Fondamentalmente, se esiste un server proxy esterno, non aveva senso determinare l'indirizzo del server. Ma lo faccio comunque, e ti consiglio, perché in futuro potresti aver bisogno di un reindirizzamento. Ad esempio, se un utente richiede una pagina dal sito www.sex.ru, il nostro server proxy lo determinerà e sarà in grado di reindirizzare la richiesta a un altro server. Per fare ciò è sufficiente modificare il valore della variabile sHost e correggere leggermente la richiesta proveniente dal client.

Definiti i parametri richiesti, creiamo un nuovo socket, attraverso il quale avverrà la comunicazione con il server esterno (indipendentemente dal fatto che si tratti di un altro server proxy o del server web stesso).

Creato un nuovo socket e connesso al server, lo mettiamo subito in modalità asincrona in questo modo:

IMode: = 1: setsockopt (sock_server. IPPROTOJCP. TCP_NODELAY. OiMode. Sіzeof (intero)):

La funzione setsockopt in questo caso è simile nello scopo al socket іoctl discusso nel Capitolo 4. Mette il socket in una modalità operativa più veloce, che consente di non aspettare o accumulare dati, ma di riceverli e inviarli immediatamente. Pertanto, riduciamo al minimo i ritardi e il server o il client è responsabile dell'accumulo.

Dopo aver commutato il socket nella modalità richiesta, reindirizziamo la richiesta dal client al server web (o al server proxy successivo) e avviamo un ciclo infinito. Questo ciclo sarà il mediatore. È qui che i dati dal client e dal server sono attesi e inviati l'uno all'altro. Se vengono ricevuti dati vuoti, significa che la connessione è completata e il ciclo viene interrotto. Tutti i socket aperti vengono chiusi all'uscita dalla procedura.

Come puoi vedere, il proxy è solo un intermediario che inoltra i pacchetti tra il client e il server. Prova ad aggiungere la possibilità di visualizzare ciò che viene inviato tra il client e il server e vedrai che su richiesta del client il server trasmette solo il contenuto testuale del documento. Successivamente, il browser analizza il documento ricevuto e, se trova immagini o altre informazioni aggiuntive (file audio, clip flash, ecc.), C'è un'ulteriore richiesta per ricevere questi dati. Pertanto, il browser riceve solo i dati di cui ha bisogno e può risparmiare traffico.

Vorrei anche attirare la vostra attenzione sul fatto che i numeri di porta nel codice sorgente sono impostati per impostazione predefinita su 8080. Questo perché la mia rete è configurata tramite un server proxy. Se si utilizza DialUp, le righe vuote devono essere specificate come porta del "proxy" esterno e indirizzo.

Per testare l'esempio, esegui il nostro programma e server. Quindi apri Internet Explorer (o un altro browser) e configuralo per utilizzare un server proxy. Per fare ciò, esegui il comando di menu Strumenti Opzioni Internet e nella finestra di dialogo che appare (Fig. 5.10) vai alla scheda Connessione.

Riso. 5.10. Impostazioni del browser

Fare clic sul pulsante Impostazioni di rete e si aprirà una nuova finestra di dialogo (Fig. 5.11).


Riso. 5.11. Configurazione di un server proxy

Nell'area Server proxy, selezionare la casella di controllo Usa un server proxy e specificare l'indirizzo e la porta. Se stai eseguendo il server sul tuo computer locale, puoi specificare 127.0.0.1, ma ti consiglio di specificare un indirizzo reale affinché l'esempio funzioni.

NOTA --- 1 Il codice sorgente per l'esempio mostrato qui si trova sul CD-ROM nella directory 5ogce5 \ cn05 \ H "GTRProxy.

Se hai bisogno di un proxy, di seguito troverai, secondo me, il modo migliore per creare un proxy. A cosa serve un server proxy? Molto semplicemente, ecco alcune possibili risposte a questa domanda:

1. Immagina di essere seduto in un hotel o in un bar con WiFi gratuito. Dov'è la garanzia che il WiFi non venga utilizzato da truffatori che stanno aspettando che qualche idiota inizi a trasmettere i dati della propria carta di credito tramite WiFi o che inserisca login e password nelle proprie pagine personali. Ci sono due modi qui: o non utilizzare il WiFi gratuito per lavoro e shopping, oppure utilizzare un proxy, con l'aiuto del quale i dati verranno trasmessi in forma crittografata.

2. Nascondere il tuo vero indirizzo IP. A volte è necessario mantenere l'anonimato.

3. Hai un blocco del motore di ricerca a causa di frequenti richieste. Ad esempio, se Yandex chiede spesso se sei un robot o un essere umano.

Ci sono 2 opzioni per trovare un server proxy: trovare un servizio (a pagamento o gratuito) o creare il proprio server proxy. Non prenderemo in considerazione la prima opzione qui, poiché non vi è alcuna garanzia che un log non venga scritto sul server (probabilità di perdere dati personali, dati della carta di credito, login e password). Di seguito considereremo la seconda opzione: creare il tuo server proxy.

1. Trova hosting con supporto SSH

Se sei un webmaster, forse hai già un hosting con supporto SSH. In caso contrario, cerca in Internet un hosting economico che supporti SSH. Ci sono provider di hosting pronti ad offrire l'hosting di cui abbiamo bisogno per circa $ 1 al mese. Puoi anche trovare hosting all'estero, ma sarà un po' più costoso. Se guardi meglio, puoi trovare opzioni gratuite, ma penso che quelle a pagamento funzioneranno in modo più affidabile.

2. Avvia il programma PuTTY

Una volta ottenuto il tuo hosting SSH, hai bisogno di PuTTY per creare un server proxy locale. Puoi scaricare il programma gratuitamente dal sito ufficiale del programma: www.putty.org.

3. Configurazione del programma PuTTY

Dopo aver avviato il programma, vedrai una finestra con le impostazioni. Nel campo Nome host, inserisci il dominio o l'indirizzo IP del tuo server. Nel campo Porta, specifica la porta, solitamente 22.

Ora vai alla categoria Connessione-> SSH-> Tunnel. Qui è necessario aggiungere una porta. Per fare ciò, nel campo Porta di origine, inserire la porta per il futuro server proxy locale, ad esempio 8888. Selezionare l'opzione Dinamica e fare clic sul pulsante Aggiungi. Successivamente, la porta apparirà nel campo Porte inoltrate - riga D8888.

Per non eseguire questa procedura dispendiosa in termini di tempo ogni volta che si avvia, è necessario salvare le impostazioni correnti. Per fare ciò, torna alla categoria Sessione, inserisci un nome per le tue impostazioni nel campo Sessioni salvate, ad esempio "proxy myhost.ru" e fai clic sul pulsante Salva. Successivamente, le tue impostazioni appariranno nell'elenco sottostante. Ora, la prossima volta che avvii il programma, puoi selezionare le tue impostazioni in questo elenco e fare clic sul pulsante Carica.

4. Apertura di una sessione

Dopo aver configurato il programma, è possibile aprire una sessione. Questo creerà un server proxy locale. Per fare ciò, fare clic sul pulsante Apri.

Se ti connetti a un server per la prima volta, PuTTY ti avviserà che non ha informazioni su questo server. Ti consiglio caldamente di connetterti al tuo server per la prima volta attraverso una rete affidabile e conosciuta, in questo caso clicca sul pulsante Sì. Se viene visualizzato un messaggio di questo tipo durante la connessione tramite un hotspot gratuito sconosciuto, è meglio non continuare la connessione e fare clic sul pulsante Annulla.



5. Il server proxy è pronto!

Dopo aver inserito il nome utente e la password, sullo schermo verranno visualizzate le informazioni sul server e il proxy sarà disponibile a 127.0.0.1:8888 o localhost: 8888. Al termine del lavoro, la finestra nera del programma PuTTY può essere chiusa accettando l'avviso.

6. Configurazione del browser e di altri programmi

Per utilizzare il server proxy locale creato nel browser, è necessario configurare la connessione tramite il server proxy SOCKS5 specificando le impostazioni 127.0.0.1:8888 o host locale: 8888 ... Altri programmi sono configurati in modo simile. Ad esempio, prendi in considerazione la configurazione del browser Internet Explorer 10.

Seleziona "Opzioni browser" dal menu.


Nella finestra che appare, seleziona la scheda "Connessioni" e fai clic sul pulsante "Impostazioni di rete" su di essa.

Nella finestra "Configura impostazioni di rete locale", seleziona la casella di controllo "Utilizza un server proxy ..." (in inoltre, per attivare e disattivare rapidamente il proxy, puoi semplicemente rimuovere o installare questa casella di controllo) e fare clic sul pulsante "Avanzate".

Nella finestra "Impostazioni server proxy", specificare solo l'elemento 4. Cancellare il resto dei campi in modo che il browser non venga confuso.

Ora chiudi tutte le finestre facendo clic sui pulsanti "OK". Il tuo browser è pronto per funzionare tramite un proxy.

7. Verifica

Per verificare e assicurarti di accedere effettivamente a Internet tramite il server, vai sul tuo browser alla pagina di uno dei servizi che determinano il tuo indirizzo IP. Ad esempio, internet.yandex.ru o il servizio 2IP più dettagliato. Confronta l'indirizzo IP con il server proxy disabilitato e abilitato.

Hai bisogno di un proxy? Dove ottenerlo, sorge spesso una tale necessità. Gli utenti di Internet spesso lo notano nel loro lavoro quotidiano. Perché potresti aver bisogno di nascondere l'indirizzo IP:

Mantenimento dell'anonimato. (Questo è utile se si utilizza Internet per determinati settori.)

Analizzando il motore di ricerca hai ottenuto un ban. Ad esempio, "Sei un robot, una domanda frequente dal motore di ricerca Yandex?". Oppure Rapidshara.com interferisce con il facile utilizzo dei suoi servizi.

Esistono diverse opzioni per trovare un server proxy (socks): effettuare un acquisto, analizzare il server da soli o crearlo da soli. Le prime 2 opzioni non sono particolarmente adatte perché quando acquisti un proxy, non sappiamo se il login è scritto (puoi anche perdere i tuoi dati personali, icq o mail).

I proxy di dominio pubblico - pubblici, di solito non durano più di un giorno. Quindi penso che l'opzione 3 sia più preferibile, o meglio, creeremo semplicemente il nostro server gratuitamente. Per completare questa attività, è necessario completare alcuni semplici passaggi.

1) Apriamo un motore di ricerca conveniente per te e stiamo cercando hosting con supporto ssh - non costoso. Nel segmento russo, puoi facilmente trovare una dozzina di hoster che venderanno hosting con supporto ssh per soli $ 1. Indirizzo IP d'oltremare, costerà più di circa $ 5 al mese. Ma se hai bisogno di un omaggio, ci sono molti provider di hosting che ti forniranno una versione di prova gratuitamente. Hai solo bisogno di guardare bene.

2) Di conseguenza, hai un account con ssh, per ora ce ne dimentichiamo. Per il passaggio successivo, abbiamo bisogno di diversi software per lavorare con ssh. Se hai mai usato la riga di comando su sistemi nix, conosci il mastice, ma se non l'hai incontrato, allora va bene, scarica il programma.

3) Avvia putty e configura il nostro server: In HostName, inserisci l'indirizzo IP del tuo server o dominio. Il campo Porta è solitamente 21, che è l'impostazione predefinita per ssh. Nella scheda Connessione -> Ssh -> Tunnel, (Aggiungi nuova porta inoltrata) - è necessario aggiungere una nuova porta (. Porta di origine, selezionare la porta che il proxy utilizzerà sul nostro computer. Dinamica deve essere selezionata con tutti i mezzi e fare clic sul pulsante Aggiungi. Di conseguenza, in Porta inoltrata, dovresti vedere una voce D81.

4) Trova e fai clic sul pulsante Apri. Nella finestra nera, per cominciare, inserisci il tuo nome utente, quindi, ovviamente, la password (se non appare nulla durante il processo di immissione della password, allora è normale).

5) Bene, in linea di principio è fatto: il proxy a 127.0.0.1:81 è tuo. Puoi raccogliere i frutti del tuo lavoro. Inoltre il metodo, se non in tutti i casi è gratuito, almeno sempre economico.

E un'altra cosa: non appena apri una sessione ssh, nelle impostazioni proxy del browser, devi inserire localhost (127.0.0.1) e la porta, e non nel proxy HTTP, ma in SOCKS5.

Principali articoli correlati