Форум программистов, компьютерный форум, киберфорум
Администрирование Windows
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/88: Рейтинг темы: голосов - 88, средняя оценка - 4.76
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532

Как задать программе определённый порт?

28.02.2016, 10:22. Показов 17166. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте.
В общем есть софтина, которая имеет серверную и клиентскую части.
Так вот. Она использует один два порта. Я их пробросил через роутер и по локалке всё хорошо.
Но при попытке доступа к серверу из интернета, появилась трабла - коннекта нет.

Не долго думая, я запустил TCP View и увидел, что при попытке законнектиться к серверу, сервер открывает ещё один порт. А этот порт, что самое интересное, генерируется сервером автоматически из диапазона 50000-62000 (TCP).
В итоге софтина открывает один TCP порт на одно подключение.

Исходников сервера этого, естественно, нету.

Вопрос заключается в следующем... можно ли как-то на уровне Windows сделать так, чтобы софтина не открывала такой большой диапазон портов, а открывала хотя бы 100 портов?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2016, 10:22
Ответы с готовыми решениями:

Как задать программе время исполнения и время закрытия?
Подскажите пожалуйста как можно задать время исполнения и время закрытия программы допустим нужно запустить файл start 1.txt и через...

Как отследить адрес подключения на определённый порт?
Есть шлюз на дебиане, на нем стоит Squid3 и проброшен 3389 порт на комп в локалке. Подскажите пожалуйста как можно посмотреть, кто...

Забить IP на определённый порт
Добрый день. Возникла необходимость в том, чтобы через определённые порты на свитчах Cisco выдавались только определённые адреса, причём...

20
Эксперт по компьютерным сетям
 Аватар для insect_87
11438 / 7007 / 1903
Регистрация: 25.12.2012
Сообщений: 29,402
28.02.2016, 12:12
так это софтину и надо ковырять
какой диапазон портов дает пробросить роутер?
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.02.2016, 13:40
Цитата Сообщение от Vasek2 Посмотреть сообщение
В общем есть софтина, которая имеет серверную и клиентскую части.
Можно узнать её название?

Цитата Сообщение от Vasek2 Посмотреть сообщение
можно ли как-то на уровне Windows сделать так, чтобы софтина не открывала такой большой диапазон портов,
Нет, порты открывает само приложение. Это заложено в его настройках.

Цитата Сообщение от Vasek2 Посмотреть сообщение
я запустил TCP View и увидел, что при попытке законнектиться к серверу, сервер открывает ещё один порт. А этот порт, что самое интересное, генерируется сервером автоматически из диапазона 50000-62000 (TCP).
В итоге софтина открывает один TCP порт на одно подключение.
А вы случайно не путаете порт который "слушает" приложение на сервере, с удалённым клиентским портом, на который сервер отправляет ответы после установки с ним соединения (сокетом)?

Возьмём для примера Web-сервер:

К серверу протокола HTTP могут обращаться сразу несколько клиентов, следовательно должен быть механизм, который бы позволил распараллелить их обслуживание. Таким механизмом служит динамическое назначение портов. Происходит это назначение в момент установки соединения. Клиент, запрашивая обслуживание, обращается к сервису по номеру порта 80, но при этом сообщает, что принимать ответы он будет по номеру порта, отличному от 80. Таким образом, сервер может обслуживать запросы к одному и тому же порту http, используя разные порты при ответе. Образующаяся при этом пара (IP-адрес, номер порта) называется сокетом. Таким образом, можно сказать, что http-сервер для обслуживания использует сокет, например, 144.206.130.137:80, а клиент, который к нему обращается, сокет 144.206.130.138:52677.
Итого - к этому web-серверу нужно открывать/пробрасывать только 80-порт, а если запустить на нём netstat мы увидим множество сессий с пятизначными удалёнными портами и всё это ответы на клиентские запросы.

Добавлено через 6 минут
Цитата Сообщение от Vasek2 Посмотреть сообщение
из диапазона 50000-62000 (TCP)
Эти порты как раз относятся к динамическому диапазону...
0
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
28.02.2016, 14:06  [ТС]
Цитата Сообщение от insect_87 Посмотреть сообщение
так это софтину и надо ковырять
какой диапазон портов дает пробросить роутер?
Софтина в виде exe. Исходников нет. Через HEX редактор ничего не видно.
Диапазон любой роутер может пробросить, но это же костыльно..открывать 15000 портов UDP

Цитата Сообщение от KDE777 Посмотреть сообщение
Можно узнать её название?
Kaillera Server.
Цитата Сообщение от KDE777 Посмотреть сообщение
Нет, порты открывает само приложение. Это заложено в его настройках.
Ну я всё же решил поинтересоваться.
Цитата Сообщение от KDE777 Посмотреть сообщение
А вы случайно не путаете порт который "слушает" приложение на сервере, с удалённым клиентским портом, на который сервер отправляет ответы после установки с ним соединения (сокетом)?
Тогда вопрос... почему роутер блокирует исходящее подключение?
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.02.2016, 14:35
Цитата Сообщение от Vasek2 Посмотреть сообщение
Тогда вопрос... почему роутер блокирует исходящее подключение?
Помимо проброса порта, вы разрешили его на фаерволе роутера?

Проверьте с помощью [netstat -ano] какие порты слушает ваше приложение - смотрите PID (id процесса этого приложения) и колонку "Локальный адрес"

Добавлено через 9 минут
Вот здесь пишут, что для Kaillera Server настраивают проброс диапазона UPD портов: 27888-27999

Enter your Starting Port as "27888" and your Ending Port as "27999".

Protocol should be "UDP".
0
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
28.02.2016, 15:29  [ТС]
KDE777, я через TCP View смотрел. Сам сервер слушает 27888 UDP. Как только кто-то коннектит к нему, то он начинает слушать ещё и один из портов в диапазоне 50000-65000 UDP (один порт на одного человека).
Я открыл 50000:60000. Соответственно, если игрок при коннекте получит порт больше (>) чем 60000, то его не пустит и ему нужно реконнектиться, пока он не получит порт нормальный.
Сейчас попробую открыть диапазон 27888:27999.

Добавлено через 3 минуты
KDE777, нет, не проходит коннект по внешнему адресу. Но по внутреннему 192.168.1.х проходит коннект всегда. Даже если порты не пробрасываю.
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.02.2016, 16:08
Цитата Сообщение от Vasek2 Посмотреть сообщение
я через TCP View смотрел. Сам сервер слушает 27888 UDP. Как только кто-то коннектит к нему, то он начинает слушать ещё и один из портов в диапазоне 50000-65000 UDP (один порт на одного человека)
Вот ещё одно руководство:

Some info for anyone that's behind a router. To host a game in Open Kaillera P2P you need port 27886 forwarded under UDP protocol (TCP not needed) in your router's firewall. You may also need to make a rule in your PC's anti-virus/firewall to allow connection to take place.
Здесь тоже пишут, что ничего кроме одного UPD порта пробрасывать не нужно.

Проверьте из Интернета, что у вас действительно открыт нужный UDP порт - https://pentest-tools.com/netw... nline-nmap

Цитата Сообщение от Vasek2 Посмотреть сообщение
Но по внутреннему 192.168.1.х проходит коннект всегда. Даже если порты не пробрасываю.
Внутренних клиентов проброс портов не касается, т.к. они не ходят на сервер через WAN-интерфейс
0
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
28.02.2016, 17:18  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
Здесь тоже пишут, что ничего кроме одного UPD порта пробрасывать не нужно.
Конечно не нужно. Вы мне сейчас показываете не тот клиент и не тот сервер. Это p2p версия. Это не общий сервер.
С p2p версией всё предельно ясно то как раз
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.02.2016, 17:55
Vasek2, ок пусть это настройки не от того сервера. До этого была ссылка, где писали что достаточно пробросить около 100 портов...

Вы проверили из вне - хотя бы 27888 UDP доступен?
0
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
28.02.2016, 18:17  [ТС]
KDE777, естественно 27888 доступен. И если открыто, допустим, одна треть из того диапазона 15ти тысяч портов, то мой шанс зайти на сервер из вне равен 1 к 3, соответственно. Ладно, если бы было хотя бы 100 портов. Но 15000...
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
28.02.2016, 19:26
Цитата Сообщение от Vasek2 Посмотреть сообщение
Ладно, если бы было хотя бы 100 портов. Но 15000...
Получается, что так написан этот сервер. Тут вообще предлагают открыть почти 65000 портов

Очень важное примечание, для того кто создает сервер недостаточно открыть на firewall'е или сделать port forwarding в настройках роутера для TCP/UDP порта указанного в настройках роутера. Сервер для каждого подключающегося клиента открывает свой UDP порт, поэтому на firewall'е или в правилах port forwarding'а надо разрешать входящие соединения на все UDP порты - 1025-65535.
1
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
29.02.2016, 00:05  [ТС]
KDE777, ну...тогда зачем вообще брандмауэр?
Я там пару ссылочек нашел. Аналогов сервера kaillera. Надо заценить завтра будет!
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
29.02.2016, 00:38
Цитата Сообщение от Vasek2 Посмотреть сообщение
ну...тогда зачем вообще брандмауэр?
Ну вы писали, что "генерируется сервером автоматически из диапазона 50000-62000" - пробросить только эти порты (динамический диапазон, на них ничего важного нет) к определённому IP всё же намного безопаснее, чем вообще отсутствие брандмауэра или правило [allow any to any]...
0
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
29.02.2016, 21:08  [ТС]
KDE777, тему можно закрывать, т.к. вопрос мой решился весьма удачно.
Побродив по инету, я нашел замену стандартному серверу, я нашел сервер на Java, в котором предусмотрено всё (даже администрирование комнат), в т.ч. список открываемых портов, в т.ч. защита от флуда, защита от DDoS.

В общем весьма удачно.
Может кому понадобится, называется сие чудо: emulinker. Оф сайт закрыт давно, нашел сервер на просторах.
Сутки уже работает без сбоев. И мало того, играть стало лучше, стало всё более плавное. В общем молодца тот чел, кто допилил сервер.

Тему можно закрывать.
0
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 86
04.08.2017, 20:21
Подниму тему, задался целью поднять сервер kaillera, и как всегда все через одно место, у кого есть опыт работы с kaillerой, прошу помощи.
Сервер на своем компьютере. Мой товарищ цепляется к моему серверу через интернет, а я сам не могу. Пишет logging in, потом таймаут и все.
0
Эксперт по компьютерным сетям
 Аватар для insect_87
11438 / 7007 / 1903
Регистрация: 25.12.2012
Сообщений: 29,402
05.08.2017, 08:12
Цитата Сообщение от dnscheb Посмотреть сообщение
Мой товарищ цепляется к моему серверу через интернет, а я сам не могу
сам откуда не можешь? так же из интернета? или из локальной сети?
по какому порту? протоколу?
0
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 86
05.08.2017, 22:12
По локальной сети по локалхосту подключаюсь, не могу подключиться с использованием внешнего адреса выданного провайдером.
Порт выбрал произвольный 3232 TCP/UDP, не знаю точно какой протокол использует каиллера, так же открыл все динамические порты UDP на роутере.

Добавлено через 2 минуты
В консоли каиллеры при попытке коннекта вижу сообщение что мой адрес с динамическим портом пытается подключиться, но потом бесконечный коннект и тайм аут.

Добавлено через 45 секунд
В брандмаузере открыл все порты UDP
0
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
05.08.2017, 22:55  [ТС]
dnscheb, kaillera - сплошной рассинхрон. Есть критические дыры, через которые можно сервер накрыть. Советую Emulinker Server. У него есть много настроек и дыр не обнаружено.
А по поводу того, что нет коннекта в своей же локальной сети по внешнему ip адресу - так и будет, подключаться из локальной сети можно только по внутреннему адресу (типа 192.168.ххх.ххх).
0
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 86
05.08.2017, 23:12
Vasek2, Я хочу играть с друзьями в ретроигрушки с использованием эмуляторов, всякие mame уже по умолчанию используют каиллеру, можно ли использовать эмулинкер для mame и других эмуляторов.(хотя судя по названию программы склоняюсь что наверно можно)))
0
12 / 12 / 2
Регистрация: 17.11.2013
Сообщений: 532
06.08.2017, 00:28  [ТС]
dnscheb, я пробовал эмуляторы денди и сони первой, всё работало. Но рассинхроны всё равно бывают.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.08.2017, 00:28
Помогаю со студенческими работами здесь

Как задать порт отправителя (Udp протокол)
Имеем: Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint iep = new IPEndPoint(ip...

Как правильно задать порт работы сервера
Доброго времени суток ! В функции socket_connect($socket,$address,$port) нужно передать параметр порт($port), но я не знаю правило...

[Mono] Вывести список IP, подключенных на определённый порт. Аналог netstat
Нужно получить список IP подключенных на определённый порт программно средствами C# Mono под Ubuntu. Например, на Ubuntu есть такая...

Как задать определённый номер на отправку смс и приём смс
Подскажите, что нужно добавить или переделать чтобы можно было принимать смс строго с определённого номера, а так же как задать...

Как на клиенте задать ip и порт сервера для подключения?
Как на клиенте задать ip и порт сервера для подключения? Я имею ввиду из C# кода, а не в конфиге. Просто чтобы можно было подключаться по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru