Делаем зеркало сервера на udp-proxy |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Делаем зеркало сервера на udp-proxy |
Fire
|
7.7.2015, 22:14
Сообщение
|
![]() ![]() |
Собственно, для линей.
Качаем архив, извлекаем бинарник:
udp.zip ( 3,18 килобайт )
Кол-во скачиваний: 310Закачиваем на вдс\сервер, делаем Код chmod +x udp Запускаем: Код ./udp LOCAL_IP LOCAL_PORT DST_IP DST_PORT Пример: Код ./udp 77.220.187.255 27015 91.218.255.255 27030 Код quakestat -hls 77.220.187.255 ADDRESS PLAYERS MAP RESPONSE TIME NAME 77.220.187.255 0/10 cs_747 2 / 0 cstrike Новый сервер Как на это все отреагируют бусты, не знаю. Из минусов - на сервере игроки будут с IP Proxy Из плюсов - можно сделать зеркало даже для сервера на хостинге. Исходники: Скрытый текст Код /* http://www.brokestream.com/udp_redirect.html Build: gcc -o udp_redirect udp_redirect.c udp_redirect.c Version 2013-05-30 Copyright (C) 2007 Ivan Tikhonov 2015 added multi-hosts */ #include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> int bindsocket( char* ip, int port ); int main( int argc, char* argv[] ); int bindsocket( char* ip, int port ) { int fd; struct sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr( ip ); addr.sin_port = htons( port ); fd = socket( PF_INET, SOCK_DGRAM, IPPROTO_IP ); if( -1 == bind( fd, (struct sockaddr*)&addr, sizeof( addr ) ) ) { fprintf( stderr, "Cannot bind address (%s:%d)\n", ip, port ); exit( 1 ); } return fd; } int main( int argc, char* argv[] ) { int i, listen, output; char *inip, *inpt, *srcip, *dstip, *dstpt; struct sockaddr_in src; struct sockaddr_in dst; struct sockaddr_in ret; if( 3 != argc && 5 != argc && 6 != argc ) { fprintf( stderr, "Usage: %s <listen-ip> <listen-port> [[source-ip] <destination-ip> <destination-port>]\n", argv[ 0 ] ); exit( 1 ); } i = 1; inip = argv[ i++ ]; /* 1 */ inpt = argv[ i++ ]; /* 2 */ if( 6 == argc ) srcip = argv[ i++ ]; /* 3 */ if( 3 != argc ) { dstip = argv[ i++ ]; /* 3 or 4 */ dstpt = argv[ i++ ]; /* 4 or 5 */ } listen = bindsocket( inip, atoi( inpt ) ); if( 6 == argc ) { output = bindsocket( srcip, atoi( inpt ) ); } else { output = listen; } if( 3 != argc ) { dst.sin_family = AF_INET; dst.sin_addr.s_addr = inet_addr( dstip ); dst.sin_port = htons( atoi( dstpt ) ); } ret.sin_addr.s_addr = 0; while( 1 ) { char buffer[65535]; unsigned int size = sizeof( src ); int length = recvfrom( listen, buffer, sizeof( buffer ), 0, (struct sockaddr*)&src, &size ); if( length <= 0 ) continue; if( 3 == argc ) { sendto( listen, buffer, length, 0, (struct sockaddr*)&src, size ); } else if( ( src.sin_addr.s_addr == dst.sin_addr.s_addr ) && ( src.sin_port == dst.sin_port ) ) { if( ret.sin_addr.s_addr ) then return them to the original sender */ sendto( output, buffer, length, 0, (struct sockaddr*)&ret, sizeof( ret ) ); } else { sendto( output, buffer, length, 0, (struct sockaddr*)&dst, sizeof( dst ) ); ret = src; } } } ![]() |
Поблагодарили 21 раз
|
|
Safety1st
|
7.7.2015, 22:20
Сообщение
|
|
|
Цитата Из минусов - на сервере игроки будут с IP Proxy Огромный минус Ждём логическое продолжение: вторую статью |
|
|
|
ETO_BYLO_LETOM
|
7.7.2015, 22:46
Сообщение
|
![]() ![]() |
Нормально отреагируют , метод без потери реального ип игрока ещё бы )
![]() 😄 MasterServer.su прозрачнее чем твои окна дома |
|
|
|
Tet
|
7.7.2015, 22:48
Сообщение
|
![]() |
|
|
|
|
tobin
|
7.7.2015, 22:51
Сообщение
|
|
|
+ в карму
|
|
|
|
Safety1st
|
7.7.2015, 23:00
Сообщение
|
|
|
|
|
|
|
ykpon
|
7.7.2015, 23:08
Сообщение
|
![]() |
|
Поблагодарили 2 раз
|
|
Tet
|
7.7.2015, 23:14
Сообщение
|
![]() |
|
|
|
|
Fire
|
7.7.2015, 23:38
Сообщение
|
![]() ![]() |
Не удалось ссылку на сообщение скопировать Ну это скорее для тех, кто держит основной сервер на хостинге, там тебе туннель никто не сделает. ![]() |
|
|
|
ykpon
|
8.7.2015, 0:40
Сообщение
|
![]() |
|
|
|
|
Tet
|
8.7.2015, 0:53
Сообщение
|
![]() |
Почему объединили темы "проксируем " и вторую часть статьи Fire в одну? Потерялся смысл.
Модераторы, посмотрите...
Отредактировал: Tet, - 8.7.2015, 0:54
|
|
|
|
ykpon
|
8.7.2015, 1:01
Сообщение
|
![]() |
|
Поблагодарили 1 раз
|
|
kasIIep
|
8.7.2015, 5:22
Сообщение
|
|
|
В чем соль зеркала? Как это повлияет на пинг?
|
|
|
|
georgeml
|
8.7.2015, 5:46
Сообщение
|
|
|
|
|
|
|
mazdan
|
8.7.2015, 10:16
Сообщение
|
![]() ![]() |
у меня по этой инструкции наполовину заработало ) но потом за ненадобностью не доделал.
![]() Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
|
|
|
|
ykpon
|
8.7.2015, 11:16
Сообщение
|
![]() |
|
|
|
|
![]() ![]() |