5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
1 |
|
Как задать программе определённый порт?28.02.2016, 10:22. Показов 12941. Ответов 20
Всем здравствуйте. Не долго думая, я запустил TCP View и увидел, что при попытке законнектиться к серверу, сервер открывает ещё один порт. А этот порт, что самое интересное, генерируется сервером автоматически из диапазона 50000-62000 (TCP). Исходников сервера этого, естественно, нету. Вопрос заключается в следующем… можно ли как-то на уровне Windows сделать так, чтобы софтина не открывала такой большой диапазон портов, а открывала хотя бы 100 портов?
__________________
0 |
10933 / 6788 / 1815 Регистрация: 25.12.2012 Сообщений: 28,719 |
|
28.02.2016, 12:12 |
2 |
так это софтину и надо ковырять
0 |
1882 / 1106 / 426 Регистрация: 22.01.2016 Сообщений: 3,050 |
|
28.02.2016, 13:40 |
3 |
В общем есть софтина, которая имеет серверную и клиентскую части. Можно узнать её название?
можно ли как-то на уровне Windows сделать так, чтобы софтина не открывала такой большой диапазон портов, Нет, порты открывает само приложение. Это заложено в его настройках.
я запустил TCP View и увидел, что при попытке законнектиться к серверу, сервер открывает ещё один порт. А этот порт, что самое интересное, генерируется сервером автоматически из диапазона 50000-62000 (TCP). А вы случайно не путаете порт который «слушает» приложение на сервере, с удалённым клиентским портом, на который сервер отправляет ответы после установки с ним соединения (сокетом)? Возьмём для примера Web-сервер: К серверу протокола HTTP могут обращаться сразу несколько клиентов, следовательно должен быть механизм, который бы позволил распараллелить их обслуживание. Таким механизмом служит динамическое назначение портов. Происходит это назначение в момент установки соединения. Клиент, запрашивая обслуживание, обращается к сервису по номеру порта 80, но при этом сообщает, что принимать ответы он будет по номеру порта, отличному от 80. Таким образом, сервер может обслуживать запросы к одному и тому же порту http, используя разные порты при ответе. Образующаяся при этом пара (IP-адрес, номер порта) называется сокетом. Таким образом, можно сказать, что http-сервер для обслуживания использует сокет, например, 144.206.130.137:80, а клиент, который к нему обращается, сокет 144.206.130.138:52677. Итого — к этому web-серверу нужно открывать/пробрасывать только 80-порт, а если запустить на нём netstat мы увидим множество сессий с пятизначными удалёнными портами и всё это ответы на клиентские запросы. Добавлено через 6 минут
из диапазона 50000-62000 (TCP) Эти порты как раз относятся к динамическому диапазону…
0 |
5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
28.02.2016, 14:06 [ТС] |
4 |
так это софтину и надо ковырять Софтина в виде exe. Исходников нет. Через HEX редактор ничего не видно.
Можно узнать её название? Kaillera Server.
Нет, порты открывает само приложение. Это заложено в его настройках. Ну я всё же решил поинтересоваться.
А вы случайно не путаете порт который «слушает» приложение на сервере, с удалённым клиентским портом, на который сервер отправляет ответы после установки с ним соединения (сокетом)? Тогда вопрос… почему роутер блокирует исходящее подключение?
0 |
1882 / 1106 / 426 Регистрация: 22.01.2016 Сообщений: 3,050 |
|
28.02.2016, 14:35 |
5 |
Тогда вопрос… почему роутер блокирует исходящее подключение? Помимо проброса порта, вы разрешили его на фаерволе роутера? Проверьте с помощью [netstat -ano] какие порты слушает ваше приложение — смотрите PID (id процесса этого приложения) и колонку «Локальный адрес» Добавлено через 9 минут Enter your Starting Port as «27888» and your Ending Port as «27999». Protocol should be «UDP».
0 |
5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
28.02.2016, 15:29 [ТС] |
6 |
KDE777, я через TCP View смотрел. Сам сервер слушает 27888 UDP. Как только кто-то коннектит к нему, то он начинает слушать ещё и один из портов в диапазоне 50000-65000 UDP (один порт на одного человека). Добавлено через 3 минуты
0 |
1882 / 1106 / 426 Регистрация: 22.01.2016 Сообщений: 3,050 |
|
28.02.2016, 16:08 |
7 |
я через 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
Но по внутреннему 192.168.1.х проходит коннект всегда. Даже если порты не пробрасываю. Внутренних клиентов проброс портов не касается, т.к. они не ходят на сервер через WAN-интерфейс
0 |
5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
28.02.2016, 17:18 [ТС] |
8 |
Здесь тоже пишут, что ничего кроме одного UPD порта пробрасывать не нужно. Конечно не нужно. Вы мне сейчас показываете не тот клиент и не тот сервер. Это p2p версия. Это не общий сервер.
0 |
1882 / 1106 / 426 Регистрация: 22.01.2016 Сообщений: 3,050 |
|
28.02.2016, 17:55 |
9 |
Vasek2, ок пусть это настройки не от того сервера. До этого была ссылка, где писали что достаточно пробросить около 100 портов… Вы проверили из вне — хотя бы 27888 UDP доступен?
0 |
5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
28.02.2016, 18:17 [ТС] |
10 |
KDE777, естественно 27888 доступен. И если открыто, допустим, одна треть из того диапазона 15ти тысяч портов, то мой шанс зайти на сервер из вне равен 1 к 3, соответственно. Ладно, если бы было хотя бы 100 портов. Но 15000…
0 |
1882 / 1106 / 426 Регистрация: 22.01.2016 Сообщений: 3,050 |
|
28.02.2016, 19:26 |
11 |
Ладно, если бы было хотя бы 100 портов. Но 15000… Получается, что так написан этот сервер. Тут вообще предлагают открыть почти 65000 портов Очень важное примечание, для того кто создает сервер недостаточно открыть на firewall’е или сделать port forwarding в настройках роутера для TCP/UDP порта указанного в настройках роутера. Сервер для каждого подключающегося клиента открывает свой UDP порт, поэтому на firewall’е или в правилах port forwarding’а надо разрешать входящие соединения на все UDP порты — 1025-65535.
1 |
5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
29.02.2016, 00:05 [ТС] |
12 |
KDE777, ну…тогда зачем вообще брандмауэр?
0 |
1882 / 1106 / 426 Регистрация: 22.01.2016 Сообщений: 3,050 |
|
29.02.2016, 00:38 |
13 |
ну…тогда зачем вообще брандмауэр? Ну вы писали, что «генерируется сервером автоматически из диапазона 50000-62000» — пробросить только эти порты (динамический диапазон, на них ничего важного нет) к определённому IP всё же намного безопаснее, чем вообще отсутствие брандмауэра или правило [allow any to any]…
0 |
5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
29.02.2016, 21:08 [ТС] |
14 |
KDE777, тему можно закрывать, т.к. вопрос мой решился весьма удачно. В общем весьма удачно. Тему можно закрывать.
0 |
3 / 3 / 0 Регистрация: 14.07.2012 Сообщений: 85 |
|
04.08.2017, 20:21 |
15 |
Подниму тему, задался целью поднять сервер kaillera, и как всегда все через одно место, у кого есть опыт работы с kaillerой, прошу помощи.
0 |
10933 / 6788 / 1815 Регистрация: 25.12.2012 Сообщений: 28,719 |
|
05.08.2017, 08:12 |
16 |
Мой товарищ цепляется к моему серверу через интернет, а я сам не могу сам откуда не можешь? так же из интернета? или из локальной сети?
0 |
3 / 3 / 0 Регистрация: 14.07.2012 Сообщений: 85 |
|
05.08.2017, 22:12 |
17 |
По локальной сети по локалхосту подключаюсь, не могу подключиться с использованием внешнего адреса выданного провайдером. Добавлено через 2 минуты Добавлено через 45 секунд
0 |
5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
05.08.2017, 22:55 [ТС] |
18 |
dnscheb, kaillera — сплошной рассинхрон. Есть критические дыры, через которые можно сервер накрыть. Советую Emulinker Server. У него есть много настроек и дыр не обнаружено.
0 |
3 / 3 / 0 Регистрация: 14.07.2012 Сообщений: 85 |
|
05.08.2017, 23:12 |
19 |
Vasek2, Я хочу играть с друзьями в ретроигрушки с использованием эмуляторов, всякие mame уже по умолчанию используют каиллеру, можно ли использовать эмулинкер для mame и других эмуляторов.(хотя судя по названию программы склоняюсь что наверно можно)))
0 |
5 / 5 / 0 Регистрация: 17.11.2013 Сообщений: 241 |
|
06.08.2017, 00:28 [ТС] |
20 |
dnscheb, я пробовал эмуляторы денди и сони первой, всё работало. Но рассинхроны всё равно бывают.
0 |
Если для какой-то программы или игры требуется подключение через определенный порт, может оказаться что по умолчанию в системе этот порт закрыт и соединение не выполняется. При необходимости порты в Windows 11, Windows 10 и предыдущих версиях системы сравнительно легко открыть.
В этой инструкции подробно о том, как открыть порты в Windows 11 или Windows 10, посмотреть список открытых портов и дополнительная информация, которая может пригодиться, если при подключении всё равно возникают проблемы.
Открытие портов в брандмауэре Windows
Основной способ открытия портов в Windows 11 и 10 — настройка соответствующих правил в брандмауэре.
Прежде всего, откройте настройки Windows в режиме повышенной безопасности. Для этого можно использовать следующие способы:
Следующий шаг — настроить правила для нужных портов:
- Нажмите правой кнопкой мыши по «Правила для входящих подключений» и выберите пункт «Создать правило» в контекстном меню.
- В мастере создания правил выберите пункт «Для порта» и нажмите «Далее».
- Выберите тип протокола — TCP или UDP (если вам не известен нужный тип, уточните в справке по конкретной программе).
- Укажите порты: конкретный порт или их диапазон, можно использовать запятые для перечисления нескольких портов, или знак дефиса для указания их диапазона. Нажмите «Далее».
- Выберите пункт «Разрешить подключение».
- Укажите, для каких типов сетей (сетевых профилей) следует открыть порты.
- Укажите имя правила и, при желании, его описание. Затем нажмите кнопку «Готово».
- Выполните действия 1-7, но уже для исходящего подключения.
Готово, порт открыт и, если что-то ещё не мешает его работе, соединения должны будут устанавливаться.
Возможные проблемы и дополнительные необходимые действия
Если вы открыли требуемые порты в Windows, но несмотря на это соединение не устанавливается, следует учитывать, проверить или выполнить следующие действия:
- VPN может влиять не возможность обмена данными по определенным портам. Решение: отключить VPN, либо посмотреть, есть ли возможность открыть порты в ПО для VPN.
- Роутеры имеют собственные функции файрволла/брандмауэра и порты может потребоваться открыть (пробросить) и в настройках роутера. В зависимости от марки и модели Wi-Fi роутера, это выполняется в разных разделах: перенаправление портов (port forwarding), брандмауэр (firewall), межсетевой экран, виртуальные серверы. Логика настройки везде одна и та же: добавляются обычно совпадающие внешний порт и внутренний порт (нужный вам порт), указывается внутренний IP (локальный IP компьютера, к которому нужно пробросить порт), тип протокола — TCP или UDP, иногда требуется указать интерфейс, для соединений из «внешней сети» — WAN.
- Если само приложение заблокировано в брандмауэре, оно не сможет устанавливать соединения: можно добавить правила, разрешающие подключения для программы тем же способом, которым это выполнялось выше для портов.
- Наличие сторонних файрволлов и антивирусов с функциями защиты сети также может влиять на возможность установки соединений по определенным портам: следует проверить их настройки, при наличии такого ПО, чтобы открыть соответствующие порты или отключить защиту для них.
Как посмотреть открытые порты в Windows и какие программы их используют
В Windows постоянно открыты многие порты, требующиеся как для работы системных служб, программ (в том числе сторонних), браузеров. Вы можете посмотреть список открытых портов одним из следующих способов:
- Запустить командную строку и ввести команду (порты указаны после двоеточия в IP-адресе)
netstat -a
- Если требуется посмотреть, какие процессы используют определенные порты, используйте команду (требует запуска от имени администратора)
netstat -ab
- Для просмотра открытых портов с ИД (PID) процесса (по которому в диспетчере задач можно увидеть конкретный процесс):
netstat -aon
- Есть сторонние программы, позволяющие получить сведения об открытых портах и использующих их процессах, например, бесплатная NirSoft CurrPorts.
Список «стандартных» и наиболее часто используемых портов доступен в Википедии, но многие игры и программы могут использовать свои собственные, не указанные в списке порты для работы.
Проводя время в онлайн-играх или программах, скачивая файлы или работая в интернете, можно столкнуться с тем, что система попросит добавить порт. Но перед тем как порт можно будет использовать, его необходимо создать. Также иногда необходимо вручную пробросить порты на роутере.
Зачем нужен порт
При работе с интернетом вы как отдаёте, так и получаете данные из сети. Образно говоря, создаются туннели между вашим компьютером и модемом или роутером, отвечающим за передачу и приём информации. Чтобы создать новый туннель, нужно открыть порт. У каждого туннеля свои особенности и характеристики, зависящие от того, какой порт развернут.
В системе заранее определены номера портов. С помощью них определяется, за что отвечает данный порт. Например, увидев номер 443, система поймёт, что используется протокол повышенной безопасности. Порт с номером 80 отвечает за HTTP-соединение, а оно используется при каждом подключении к интернету, так как практически все сайты работают по HTTP-протоколу. Более полный список наиболее часто пригождающихся портов вы можете изучить в пункте «Список портов и их задач».
Проверка состояния портов
Чтобы узнать, в каком состоянии находятся все порты (открыты, закрыты, используются или отключены), можно использовать встроенные средства Windows 10.
- Используя системную поисковую строку, отыщите и разверните командную строку с правами администратора.
Открываем командную строку - Пропишите запрос netstat –aon | more и выполните его.
Выполняем запрос netstat –aon | more - Через несколько секунд развернётся список. Вас интересуют два последних столбца: в последнем указан номер порта, а в предпоследнем — его состояние.
Появился список портов и состояний
Есть четыре вида состояния:
- listening — порт слушается, то есть система следит за ним, опрашивает, проверяет, есть ли запросы на соединение. Если они появятся, начнётся установка соединения по данному порту;
- established — порт используется успешно, сквозь него текут данные;
- time wait — произошла ошибка, связанная со временем ожидания. Она может появиться из-за того, что во время соединения или прослушивания порт долго не отвечал;
- close wait — соединение разрывается, то есть в скором времени порт перестанет использоваться и передавать информацию.
Есть два способа, позволяющих открыть порт: использовать встроенные возможности Windows или стороннюю программу. Неважно, какой из них вы используете, результат будет один. Если какой-то из способов не работает, воспользуйтесь другим методом.
При помощи брандмауэра (firewall)
Брандмауэр (второе название — Firewall) – антивирус в мире интернета. Эта программа защищает компьютер от вторжений, исходящих со стороны сети. Поскольку порты передают данные по интернету, брандмауэр обязан следить за ними.
Стандартный брандмауэр встроен в Windows и является частью защитника — антивируса, по умолчанию вшитого в операционную систему. Если у вас установлен сторонний антивирус, то у него, скорее всего, будет свой брандмауэр. Но не всегда у внешних брандмауэров есть функция, позволяющая открыть порт, поэтому воспользуемся стандартным.
Учтите, сторонний интернет-защитник может перекрывать действия встроенного. Отключите его на время использования порта. Если порт нужен долгое время, выполните нижеописанные действия через сторонний, а не встроенный брандмауэр (смотреть пункт «При помощи антивируса»).
- Используя системную поисковую строку, отыщите и разверните панель управления.
Открываем панель управления - Воспользуйтесь встроенной поисковой строкой, расположенной в верхнем правом углу окна, чтобы отыскать раздел «Брандмауэр защитника Windows». Перейдите к нему.
Открываем раздел «Брандмауэр защитника Windows» - Раскройте дополнительные параметры.
Открываем раздел «Дополнительные параметры» - В зависимости от того, какой порт вы хотите создать (для входящих или исходящих соединений), перейдите в нужный подпункт, а после выберите функцию «Создать правило».
Нажимаем кнопку «Создать правило» - Укажите, что правило создаётся для порта.
Указываем, что правило для порта - Выберите подходящий тип протокола, а после укажите номер порта, который хотите открыть. Если не знаете, какой номер вам нужен, обратитесь к пункту «Список портов и их задач».
Указываем протокол и порт - Поскольку мы хотим открыть порт, выберите вариант, позволяющих разрешить подключение.
Указываем тип «Разрешить подключение» - Прочитайте описание профилей и выберите тот из них, который подходит в вашей ситуации. Можно выбрать и все сразу.
Указываем подходящий профиль - Придумайте произвольное название и небольшое описание, чтобы в будущем вы или люди, работающие с компьютером, могли понять, зачем был открыт данный порт.
Указываем имя и описание порта
Готово, после окончания операции в списке правил появится новый пункт, имеющий имя, придуманное вами. Порт открыт, можно начинать им пользоваться.
Для программы или игры
Если вам нужно открыть порт для приложения или игры, но вы не знаете, какой именно порт вам нужен, то выполните нижеописанные действия:
- Пройдите все шаги, описанные в инструкции «При помощи брандмауэра», до момента создания правила. В типе генерируемого правила укажите вариант «Для программы».
Указываем тип «Для программы» - Пропишите путь до exe-файла, запускающего игру или приложение. Перейдите к следующему шагу и выполните действия 7–9 из инструкции «При помощи брандмауэра».
Указываем путь до exe-файла
При помощи антивируса
Если у вас установлен сторонний антивирус, вы можете открыть порт через него. Некоторые компании не встраивают функции по работе с портами в свой антивирус, некоторые делают её платной. Но вы можете проверить, есть ли данная возможность в вашем антивирусе, выполнив нижеописанные действия, приведённые на примере антивируса Kaspersky:
- Разверните программу антивируса и перейдите к блоку настроек. Раскройте дополнительные настройки и перейдите к параметрам сети.
Выбираем блок «Сеть» - В блоке «Контролируемые порты» кликните по кнопке «Выбрать».
Нажимаем кнопку «Выбрать» - Вы увидите список активированных портов. Также здесь можно получить некоторую информацию о них и закрыть ненужные, используя кнопку «Удалить». Для перехода к открытию нового порта используйте кнопку «Добавить».
Кликаем по кнопке «Добавить» - Пропишите произвольное название и точный номер порта. Укажите статус «Активен» и сохранение изменения.
Указываем имя, статус и номер
Готово, порт открыт. Можно начинать проброс при помощи настроек роутера.
При помощи сторонней программы
Существует множество программ, упрощающих процесс открытия портов. Например, можно воспользоваться бесплатным и максимально простым приложением UPnP Wizard. Скачать его можно с официального сайта разработчика — https://www.xldevelopment.net/upnpwiz.php.
- Как только программа будет загружена и установлена, откройте её. Вы увидите список используемых портов и некоторую информацию о них. Чтобы закрыть порт, выберите его в списке и кликните по большому красному крестику. Чтобы добавить порт, нажмите на зелёный плюсик.
Удалям или добавляем порты через UPnP Wizard - Укажите произвольное название порта, выберите локальный IP-адрес из списка. Пропишите номер порта для входящих и исходящих данных или забейте только один из них. Выберите протокол, по которому будет работать порт, и сохраните данные, нажав кнопку OK.
Вводим все необходимые данные
Готово, порт открыт и готов к пробросу через настройки роутера. Если он не откроется или откажется передавать данные, стоит проверить, не заблокирован ли он встроенным или сторонним брандмауэром.
Видео: открываем порт в Windows 10
Пробрасываем порт
Проброс порта — это соединение роутера и компьютера по открытому порту. Вышеописанные способы позволяли открыть порт на компьютере. После того как вы это сделаете, можно указать роутеру, что порт готов к работе и к нему можно подключиться. Есть два способа, позволяющих это сделать: автоматический и ручной. Первый потребует от вас минимум усилий: выбрать устройство для подключения и назначить имя виртуального сервера. Второй способ позволит выполнить настройку более детально.
На роутерах от разных производителей установлены различные прошивки. Также прошивки могут отличать в зависимости от их версии и модели роутера. В основном различие заключается во внешнем виде, то есть пункты и разделы в вашем случае могут располагаться и называться немного по-другому. Несмотря на это, процесс проброса порта на любом роутере выполняется практически одинаково.
Автоматический способ
Если вам не нужны дополнительные настройки, то выполните нижеописанные шаги. В примере используется прошивка роутера TP-Link.
- Войдите в свою локальную учётную запись по настройке роутера. Обычно для этого используется адрес 192.168.0.1 или 192.168.1.1, но он может отличаться. Переверните роутер, на нём будет наклейка с правильным адресом. Если её нет, перейдите на официальный сайт компании, создавшей роутер, и найдите корректные данные о входе в учётную запись настройки там. Также вам понадобится логин и пароль. По умолчанию многие производители устанавливают значение admin и admin для обоих полей.
Вводим логин и пароль - В блоке «Переадресация» выберите подпункт «Виртуальные серверы». Начните добавление нового сервера.
В блоку «Виртуальные серверы» нажимаем кнопку «Добавить» - Заполните все необходимые поля. Порт сервиса — необходимый порт для подключения или диапазон портов. Чтобы ввести номер одного порта, используйте формат XX. Чтобы ввести диапазон (от такого-то номера до такого-то), используйте формат XX — XX. Внутренний порт вводить необязательно, если в предыдущем поле вы указали только один порт. Если же был указан диапазон, пропишите номер определённого порта. В поле IP пропишите адрес компьютера, на котором открыты вышеуказанные порты. Укажите наиболее подходящий протокол и состояние «Включено».
Заполняем поля портов и IP адресов
Как только вписанные данные будут сохранены, начнётся проброс порта. После окончания процесса можно начинать пользоваться портом.
Ручной способ
Для более детальной настройки необходимо выполнить нижеописанные действия. Для примера взята прошивка роутера D-Link:
- Войдите в учётную запись управления роутером, используя адрес, логин и пароль. Перейдите к расширенным настройкам, кликнув по кнопке в правом нижнем углу.
Нажимаем кнопку «Расширенные настройки» - В блоке «Межсетевой экран» выберите подпункт «Виртуальные серверы».
Выбираем блоку «Виртуальные серверы» в расширенных настройках - Начните добавление нового сервера, нажав на соответствующую кнопку. Выберите произвольный шаблон и пропишите любое имя. В интерфейсе выберите интернет-соединение из списка. Укажите протокол и внутренний IP-адрес из списка. Внешний порт — порт устройства, с которого будет забираться трафик и отправляться на внутренний порт. Если вам нужен не один порт, а диапазон, заполняйте поля и начального, и конечного внутреннего и внешнего порта. Удалённый IP — адрес устройства, расположенного не в локальной сети, а во внешней (чаще всего поле остаётся пустым).
Заполняем поля внутреннего и внешнего порта
Сохранив настройки, вы пробросите порт. Им можно будет начинать пользоваться.
Таблица: список портов и их задач
Порт | Задача |
53 | Обеспечение DNS |
110 | Приём почты |
123 | Синхронизация времени |
443 | HTTPS-соединение |
5900 | Virtual Network Computing (VNC) |
5432 | PostgreSQL |
119 | (Network News Transfer Protocol) — используется для отправки сообщений новостных рассылок |
Полный список портов, осуществляющих интернет-соединение, можно увидеть в Wikipedia — https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP.
Открывать порт необходимо для того, чтобы создать новый туннель передачи и получения данных через интернет. Каждый порт имеет свои характеристики и работает по своему протоколу. Открыть порт можно как через стандартный брандмауэр Windows, так и через сторонний антивирус или специальную программу. Проброс порта осуществляется через учётную запись настройки роутера.
- Распечатать
Оцените статью:
- 5
- 4
- 3
- 2
- 1
(7 голосов, среднее: 3.3 из 5)
Поделитесь с друзьями!
Как поменять порт
При создании нового подключения может оказаться, что используемый порт уже занят другим приложением. Чтобы исключить конфликты, следует поменять порт (цифровой код) на другое значение.
Вам понадобится
- Программа Regedt32, встроенный калькулятор Windows.
Инструкция
Запускаем программу Regedt32. Для этого активируйте кнопку «Пуск», затем «Выполнить» и введите команду Regedt32.
В открывшемся редакторе реестра находим папку HKEY_LOCAL_MACHINE, затем папку SYSTEM, выбираем подраздел CurrentControlSet, в нем активируем Control, затем папку Terminal Server. Выбираем требуемое подключение в папке WinStations в подпапке RDP-Tcp. Только здесь можно поменять порт.
С правой стороны меню ищем PortNumber. Кликаем мышкой на нем и выбираем «Изменить». В открывшемся окне «Изменение параметра DWORD» видим установленное значение d3d и шестнадцатеричную систему исчисления данного кода.
Запускаем калькулятор. Для этого активируем кнопку «Пуск», затем выбираем папку «Стандартные», а в ней активируем «Калькулятор». В закладке «Вид» выбираем функцию «Инженерный». На экране появится развернутый калькулятор со множеством функций.
Устанавливаем переключатель (галочку) в положение Hex. Это шестнадцатеричный режим. Вводим значение порта, например 3389 и в окошке высвечивается D3D.
Рассчитываем значение для порта 3390. Для этого вводим с помощью калькулятора м мышки числа, путем нажатия клавиш на калькуляторе. В окне появляется значение D3E, соответствующее порту 3390.
Входим в редактор реестра, чтобы произвести замену порта, используя следующий путь: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp. Кликаем на значении PortNumber и выбираем «Изменить». В открывшемся окне устанавливаем новое значение — D3E и нажимаем ОК. Перезагружаем компьютер.
Видео по теме
Полезный совет
Следует соблюдать осторожность при переключении режимов исчисления для замены порта. Поскольку такие слова, как Hex, Dec, Oct и Bin не часто встречаются в повседневной жизни, пользователи могут не знать, за что эти переключатели отвечают в калькуляторе.
Источники:
- Описание способа изменения порта на различных операционных системах
Войти на сайт
или
Забыли пароль?
Еще не зарегистрированы?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
How do I configure the TCP/IP port listened on by a Spring Boot application, so it does not use the default port of 8080.
Tung
1,5194 gold badges15 silver badges32 bronze badges
asked Jan 13, 2014 at 2:59
Paul VerestPaul Verest
58.3k47 gold badges197 silver badges323 bronze badges
4
As said in docs either set server.port
as system property using command line option to jvm -Dserver.port=8090
or add application.properties
in /src/main/resources/
with
server.port=8090
For a random port use:
server.port=0
Similarly add application.yml
in /src/main/resources/
with:
server:
port: 8090
blacktide
9,9707 gold badges32 silver badges51 bronze badges
answered Jan 13, 2014 at 3:14
Paul VerestPaul Verest
58.3k47 gold badges197 silver badges323 bronze badges
16
There are two main ways to change the port in the Embedded Tomcat in a Spring Boot Application.
Modify application.properties
First you can try the application.properties file in the /resources folder:
server.port = 8090
Modify a VM option
The second way, if you want to avoid modifying any files and checking in something that you only need on your local, you can use a vm arg:
Go to Run -> Edit Configurations -> VM options
-Dserver.port=8090
Additionally, if you need more information you can view the following blog post here: Changing the port on a Spring Boot Application
answered May 14, 2015 at 23:57
1
Since Spring Boot provides various configuration externalization mechanism (through various PropertySource
implementations and/or processors wired into Environment
object in order), you can set any property outside of your jar archive through following methods:
-
Pass property through command line argument as application argument
java -jar <path/to/my/jar> --server.port=7788
-
From property in
SPRING_APPLICATION_JSON
(Spring Boot 1.3.0+)-
Define environment variable in U*IX shell:
SPRING_APPLICATION_JSON='{"server.port":7788}' java -jar <path/to/my/jar>
-
By using Java system property:
java -Dspring.application.json='{"server.port":7788}' -jar <path/to/my/jar>
-
Pass through command line argument:
java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
-
-
Define JVM system property
java -Dserver.port=7788 -jar <path/to/my/jar>
-
Define OS environment variable
-
U*IX Shell
SERVER_PORT=7788 java -jar <path/to/my/jar>
-
Windows
SET SERVER_PORT=7788 java -jar <path/to/my/jar>
-
-
Place property in
./config/application.properties
configuration fileserver.port=7788
and run:
java -jar <path/to/my/jar>
-
Place property in
./config/application.yaml
server: port: 7788
and run:
java -jar <path/to/my/jar>
-
Place property in
./application.properties
server.port=7788
and run:
java -jar <path/to/my/jar>
-
Place property in
./application.yaml
server: port: 7788
and run:
java -jar <path/to/my/jar>
You can combine above methods all together, and the former configuration in the list take precedence over the latter one.
For example:
SERVER_PORT=2266 java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7788
The server will start and listen on port 7788.
This is very useful providing default properties in PropertySources with lower precedence (and usually packaged in the archive or coded in the source), and then override it in the runtime environment. And it is the design philosophy of Spring Boot:
Be opinionated out of the box, but get out of the way quickly as requirements start to diverge from the defaults.
SERVER_NAME
to server.name
conversion was done by Relaxed Binding.
answered Nov 29, 2016 at 17:39
tan9tan9
3,3302 gold badges17 silver badges21 bronze badges
0
Also, you can configure the port programmatically.
For Spring Boot 2.x.x:
@Configuration
public class CustomContainer implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
public void customize(ConfigurableServletWebServerFactory factory){
factory.setPort(8042);
}
}
For older versions:
@Configuration
public class ServletConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
container.setPort(8012);
});
}
}
answered Nov 3, 2015 at 18:29
makerjmakerj
2,0992 gold badges18 silver badges27 bronze badges
8
If you would like to run it locally, use this —
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'
As of Spring Boot 2.0, here’s the command that works (clues were here):
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
answered Apr 15, 2016 at 23:00
itwarilalitwarilal
1,2249 silver badges16 bronze badges
1
You can set port in java code:
HashMap<String, Object> props = new HashMap<>();
props.put("server.port", 9999);
new SpringApplicationBuilder()
.sources(SampleController.class)
.properties(props)
.run(args);
Or in application.yml:
server:
port: 9999
Or in application.properties:
server.port=9999
Or as a command line parameter:
-Dserver.port=9999
answered Mar 17, 2016 at 16:58
ayurchukayurchuk
1,8291 gold badge15 silver badges13 bronze badges
2
In case you are using application.yml
add the Following lines to it
server:
port: 9000
and of course 0 for random port.
Paul Verest
58.3k47 gold badges197 silver badges323 bronze badges
answered Dec 3, 2014 at 19:30
gatolgajgatolgaj
1,1717 silver badges12 bronze badges
2
As explained in Spring documentation, there are several ways to do that:
Either you set the port in the command line (for example 8888)
-Dserver.port=8888
or --server.port=8888
Example : java -jar -Dserver.port=8888 test.jar
Or you set the port in the application.properties
server.port=${port:4588}
or (in application.yml with yaml syntax)
server:
port: ${port:4588}
If the port passed by -Dport (or -Dserver.port) is set in command line then this port will be taken into account. If not, then the port will be 4588 by default.
If you want to enforce the port in properties file whatever the environment variable, you just have to write:
server.port=8888
answered Jan 21, 2017 at 13:21
OlivierTerrienOlivierTerrien
2,3611 gold badge19 silver badges31 bronze badges
Include below property in application.properties
server.port=8080
answered Oct 18, 2016 at 18:22
1
When you need a programatically way of doing it, you can set it during startup:
System.getProperties().put( "server.port", 80 );
SpringApplication.run(App.class, args);
This might help for things like environment dependent port.
Have a nice day
answered Apr 3, 2016 at 16:21
2
if you are using gradle as the build tool, you can set the server port in your application.yml file as:
server:
port: 8291
If you are using maven then the port can be set in your application.properties file as:
server.port: 8291
answered Oct 24, 2019 at 9:20
VSharmaVSharma
4714 silver badges8 bronze badges
2
To extend other answers:
There is a section in the docs for testing which explains how to configure the port on integration tests:
- 41.3 Testing Spring Boot applications
- 41.3.3 Working with random ports
At integration tests, the port configuration is made using the annotation @SpringBootTest
and the webEnvironment
values.
Random port:
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
You can inject the value using @LocalServerPort
which is the same as @Value("${local.server.port}")
.
- Example:
Random port test configuration:
@RunWith(SpringRunner.class
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ExampleTest {
...
@LocalServerPort //to inject port value
int port;
}
Defined port:
@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)
It takes the value from server.port
if is defined.
- If is defined using
@TestPropertySource(properties = "server.port=9192")
, it overrides other defined values. - If not, it takes the value from
src/test/resources/application.properties
(if exists). - And finally, if it is not defined it starts with the default
8080
.
Example:
Defined port test configuration:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=9192")
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
andi
9311 gold badge12 silver badges17 bronze badges
answered May 29, 2017 at 18:40
PauPau
14.3k13 gold badges64 silver badges90 bronze badges
You can specify port by overriding EmbeddedServletContainerFactory
bean within your configuration (java based or xml). There you can specify port for used embedded servlet container. Please, see Spring Boot — Core «Embedded Servlet Container Support» paragraph and example there. Hope this helps.
Will
6,4613 gold badges32 silver badges41 bronze badges
answered Jan 13, 2014 at 10:20
nndrunndru
2,03721 silver badges15 bronze badges
2
In application.properties
file present in resources:
server.port=8082
FelixSFD
5,94210 gold badges46 silver badges115 bronze badges
answered Apr 24, 2017 at 7:57
Amit GujarathiAmit Gujarathi
1,0601 gold badge12 silver badges25 bronze badges
There are three ways to do it depending on the application configuration file you are using
a) If you are using application.properties file set
server.port = 8090
b) If you are using application.yml file set server port property in YAML format as given below
server:
port: 8090
c) You can also Set the property as the System property in the main method
System.setProperty("server.port","8090");
LukeSolar
3,7574 gold badges29 silver badges39 bronze badges
answered Oct 15, 2018 at 17:52
PraneethPraneeth
5195 silver badges8 bronze badges
Add this in your application.properties
file
server.port= 8080
answered Jun 17, 2016 at 9:57
2
-
As everyone said, you can specify in application.properties
server.port = 9000 (could be any other value) -
If you are using spring actuator in your project, by default it points to
8080, and if you want to change it, then in application.properties mention
management.port = 9001 (could be any other value)
answered Sep 29, 2015 at 6:01
RakeshRakesh
1,3341 gold badge14 silver badges22 bronze badges
In the application.properties
file, add this line:
server.port = 65535
where to place that fie:
24.3 Application Property Files
SpringApplication loads properties from application.properties files
in the following locations and adds them to the Spring Environment:A /config subdirectory of the current directory The current directory A classpath /config package The classpath root
The list is ordered by precedence (properties defined in locations
higher in the list override those defined in lower locations).
In my case I put it in the directory where the jar
file stands.
From:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-application-property-files
answered Dec 20, 2018 at 1:28
ZhaoGangZhaoGang
4,29324 silver badges36 bronze badges
By default spring boot app start with embedded tomcat server start at default port 8080. spring provides you with following different customization you can choose one of them.
NOTE – you can use server.port=0 spring boot will find any unassigned http random port
for us.
1) application.properties
server.port=2020
2) application.yml
server:
port : 2020
3) Change the server port programatically
3.1) By implementing WebServerFactoryCustomizer interface — Spring 2.x
@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// customize the factory here
factory.setPort(2020);
}
}
3.2) By Implementing EmbeddedServletContainerCustomizer interface — Spring 1.x
@Component
public class CustomizationBean implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
// customize here
container.setPort(2020);
}
}
4) By using command line option
java -jar spring-boot-app.jar -Dserver.port=2020
answered Apr 26, 2019 at 14:09
Indeed, the easiest way is to set the server.port property.
If you are using STS as IDE, from version 3.6.7 you actually have Spring Properties Editor for opening the properties file.
This editor provides autocomplete for all Spring Boot properties. If you write port and hit CTRL + SPACE, server.port will be the first option.
answered Dec 15, 2015 at 9:11
1
By default, spring-web module provides an embedded tomcat server that is running under the port number 8080. If you need to change the port number of the application then go to application.properties
file and configure the port number by using server.port
property.
server.port= 9876
then your application is running under the port 9876.
answered May 14, 2020 at 9:46
Nafaz M N MNafaz M N M
1,4232 gold badges17 silver badges36 bronze badges
Hope this one help
application.properties=> server.port=8090 application.yml=> server port:8090
answered May 18, 2018 at 13:14
1
Using property server.port=8080 for instance like mentioned in other answers is definitely a way to go. Just wanted to mention that you could also expose an environment property:
SERVER_PORT=8080
Since spring boot is able to replace «.» for «_» and lower to UPPER case for environment variables in recent versions.
This is specially useful in containers where all you gotta do is define that environment variable without adding/editing application.properties
or passing system properties through command line (i.e -Dserver.port=$PORT
)
answered Jul 29, 2016 at 21:25
UlisesUlises
8,8452 gold badges29 silver badges27 bronze badges
1
You can add the port in below methods.
-
Run -> Configurations section
-
In
application.xml
addserver.port=XXXX
answered Feb 2, 2016 at 15:45
gkarthiksgkarthiks
4466 silver badges17 bronze badges
1
Just have a application.properties
in src/main/resources
of the project and give there
server.port=****
where ****
refers to the port number.
gawi
2,7934 gold badges32 silver badges44 bronze badges
answered Jul 2, 2017 at 7:07
1.1 Update via a properties file.
/src/main/resources/application.properties
server.port=8888
Update via a yaml file.
server:
port: 8888
EmbeddedServletContainerCustomizer
@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8888);
}
}
answered Aug 28, 2017 at 10:01
Providing the port number in application.properties file will resolve the issue
server.port = 8080
«port depends on your choice, where you want to host the application»
answered Oct 15, 2018 at 12:52
AshwiniAshwini
74110 silver badges5 bronze badges
You can set that in application.properties under /src/main/resources/
server.port = 8090
answered May 13, 2016 at 22:54
AbhijeetAbhijeet
5,4405 gold badges41 silver badges46 bronze badges
By Default Spring-web module provides an embedded tomcat server runs on port number 8080.
You can change it as follows —
A) If you are using gradle then use can set the property in your application.yml :
server:
port: 8042
B) If you are using maven then you can set the property in your application.properties :
server.port: 8042
C) When you have port in your own config file and want to set it during runtime.
By implementing WebServerFactoryCustomizer interface — Spring 2.x
@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// customize the factory here
factory.setPort(8042);
}
}
By Implementing EmbeddedServletContainerCustomizer interface — Spring 1.x
@Component
public class CustomizationBean implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
// customize here
container.setPort(8042);
}
}
answered May 16, 2021 at 18:39
Ishan GargIshan Garg
5414 silver badges12 bronze badges
1
How do I configure the TCP/IP port listened on by a Spring Boot application, so it does not use the default port of 8080.
Tung
1,5194 gold badges15 silver badges32 bronze badges
asked Jan 13, 2014 at 2:59
Paul VerestPaul Verest
58.3k47 gold badges197 silver badges323 bronze badges
4
As said in docs either set server.port
as system property using command line option to jvm -Dserver.port=8090
or add application.properties
in /src/main/resources/
with
server.port=8090
For a random port use:
server.port=0
Similarly add application.yml
in /src/main/resources/
with:
server:
port: 8090
blacktide
9,9707 gold badges32 silver badges51 bronze badges
answered Jan 13, 2014 at 3:14
Paul VerestPaul Verest
58.3k47 gold badges197 silver badges323 bronze badges
16
There are two main ways to change the port in the Embedded Tomcat in a Spring Boot Application.
Modify application.properties
First you can try the application.properties file in the /resources folder:
server.port = 8090
Modify a VM option
The second way, if you want to avoid modifying any files and checking in something that you only need on your local, you can use a vm arg:
Go to Run -> Edit Configurations -> VM options
-Dserver.port=8090
Additionally, if you need more information you can view the following blog post here: Changing the port on a Spring Boot Application
answered May 14, 2015 at 23:57
1
Since Spring Boot provides various configuration externalization mechanism (through various PropertySource
implementations and/or processors wired into Environment
object in order), you can set any property outside of your jar archive through following methods:
-
Pass property through command line argument as application argument
java -jar <path/to/my/jar> --server.port=7788
-
From property in
SPRING_APPLICATION_JSON
(Spring Boot 1.3.0+)-
Define environment variable in U*IX shell:
SPRING_APPLICATION_JSON='{"server.port":7788}' java -jar <path/to/my/jar>
-
By using Java system property:
java -Dspring.application.json='{"server.port":7788}' -jar <path/to/my/jar>
-
Pass through command line argument:
java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
-
-
Define JVM system property
java -Dserver.port=7788 -jar <path/to/my/jar>
-
Define OS environment variable
-
U*IX Shell
SERVER_PORT=7788 java -jar <path/to/my/jar>
-
Windows
SET SERVER_PORT=7788 java -jar <path/to/my/jar>
-
-
Place property in
./config/application.properties
configuration fileserver.port=7788
and run:
java -jar <path/to/my/jar>
-
Place property in
./config/application.yaml
server: port: 7788
and run:
java -jar <path/to/my/jar>
-
Place property in
./application.properties
server.port=7788
and run:
java -jar <path/to/my/jar>
-
Place property in
./application.yaml
server: port: 7788
and run:
java -jar <path/to/my/jar>
You can combine above methods all together, and the former configuration in the list take precedence over the latter one.
For example:
SERVER_PORT=2266 java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7788
The server will start and listen on port 7788.
This is very useful providing default properties in PropertySources with lower precedence (and usually packaged in the archive or coded in the source), and then override it in the runtime environment. And it is the design philosophy of Spring Boot:
Be opinionated out of the box, but get out of the way quickly as requirements start to diverge from the defaults.
SERVER_NAME
to server.name
conversion was done by Relaxed Binding.
answered Nov 29, 2016 at 17:39
tan9tan9
3,3302 gold badges17 silver badges21 bronze badges
0
Also, you can configure the port programmatically.
For Spring Boot 2.x.x:
@Configuration
public class CustomContainer implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
public void customize(ConfigurableServletWebServerFactory factory){
factory.setPort(8042);
}
}
For older versions:
@Configuration
public class ServletConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
container.setPort(8012);
});
}
}
answered Nov 3, 2015 at 18:29
makerjmakerj
2,0992 gold badges18 silver badges27 bronze badges
8
If you would like to run it locally, use this —
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'
As of Spring Boot 2.0, here’s the command that works (clues were here):
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
answered Apr 15, 2016 at 23:00
itwarilalitwarilal
1,2249 silver badges16 bronze badges
1
You can set port in java code:
HashMap<String, Object> props = new HashMap<>();
props.put("server.port", 9999);
new SpringApplicationBuilder()
.sources(SampleController.class)
.properties(props)
.run(args);
Or in application.yml:
server:
port: 9999
Or in application.properties:
server.port=9999
Or as a command line parameter:
-Dserver.port=9999
answered Mar 17, 2016 at 16:58
ayurchukayurchuk
1,8291 gold badge15 silver badges13 bronze badges
2
In case you are using application.yml
add the Following lines to it
server:
port: 9000
and of course 0 for random port.
Paul Verest
58.3k47 gold badges197 silver badges323 bronze badges
answered Dec 3, 2014 at 19:30
gatolgajgatolgaj
1,1717 silver badges12 bronze badges
2
As explained in Spring documentation, there are several ways to do that:
Either you set the port in the command line (for example 8888)
-Dserver.port=8888
or --server.port=8888
Example : java -jar -Dserver.port=8888 test.jar
Or you set the port in the application.properties
server.port=${port:4588}
or (in application.yml with yaml syntax)
server:
port: ${port:4588}
If the port passed by -Dport (or -Dserver.port) is set in command line then this port will be taken into account. If not, then the port will be 4588 by default.
If you want to enforce the port in properties file whatever the environment variable, you just have to write:
server.port=8888
answered Jan 21, 2017 at 13:21
OlivierTerrienOlivierTerrien
2,3611 gold badge19 silver badges31 bronze badges
Include below property in application.properties
server.port=8080
answered Oct 18, 2016 at 18:22
1
When you need a programatically way of doing it, you can set it during startup:
System.getProperties().put( "server.port", 80 );
SpringApplication.run(App.class, args);
This might help for things like environment dependent port.
Have a nice day
answered Apr 3, 2016 at 16:21
2
if you are using gradle as the build tool, you can set the server port in your application.yml file as:
server:
port: 8291
If you are using maven then the port can be set in your application.properties file as:
server.port: 8291
answered Oct 24, 2019 at 9:20
VSharmaVSharma
4714 silver badges8 bronze badges
2
To extend other answers:
There is a section in the docs for testing which explains how to configure the port on integration tests:
- 41.3 Testing Spring Boot applications
- 41.3.3 Working with random ports
At integration tests, the port configuration is made using the annotation @SpringBootTest
and the webEnvironment
values.
Random port:
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
You can inject the value using @LocalServerPort
which is the same as @Value("${local.server.port}")
.
- Example:
Random port test configuration:
@RunWith(SpringRunner.class
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ExampleTest {
...
@LocalServerPort //to inject port value
int port;
}
Defined port:
@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)
It takes the value from server.port
if is defined.
- If is defined using
@TestPropertySource(properties = "server.port=9192")
, it overrides other defined values. - If not, it takes the value from
src/test/resources/application.properties
(if exists). - And finally, if it is not defined it starts with the default
8080
.
Example:
Defined port test configuration:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=9192")
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
andi
9311 gold badge12 silver badges17 bronze badges
answered May 29, 2017 at 18:40
PauPau
14.3k13 gold badges64 silver badges90 bronze badges
You can specify port by overriding EmbeddedServletContainerFactory
bean within your configuration (java based or xml). There you can specify port for used embedded servlet container. Please, see Spring Boot — Core «Embedded Servlet Container Support» paragraph and example there. Hope this helps.
Will
6,4613 gold badges32 silver badges41 bronze badges
answered Jan 13, 2014 at 10:20
nndrunndru
2,03721 silver badges15 bronze badges
2
In application.properties
file present in resources:
server.port=8082
FelixSFD
5,94210 gold badges46 silver badges115 bronze badges
answered Apr 24, 2017 at 7:57
Amit GujarathiAmit Gujarathi
1,0601 gold badge12 silver badges25 bronze badges
There are three ways to do it depending on the application configuration file you are using
a) If you are using application.properties file set
server.port = 8090
b) If you are using application.yml file set server port property in YAML format as given below
server:
port: 8090
c) You can also Set the property as the System property in the main method
System.setProperty("server.port","8090");
LukeSolar
3,7574 gold badges29 silver badges39 bronze badges
answered Oct 15, 2018 at 17:52
PraneethPraneeth
5195 silver badges8 bronze badges
Add this in your application.properties
file
server.port= 8080
answered Jun 17, 2016 at 9:57
2
-
As everyone said, you can specify in application.properties
server.port = 9000 (could be any other value) -
If you are using spring actuator in your project, by default it points to
8080, and if you want to change it, then in application.properties mention
management.port = 9001 (could be any other value)
answered Sep 29, 2015 at 6:01
RakeshRakesh
1,3341 gold badge14 silver badges22 bronze badges
In the application.properties
file, add this line:
server.port = 65535
where to place that fie:
24.3 Application Property Files
SpringApplication loads properties from application.properties files
in the following locations and adds them to the Spring Environment:A /config subdirectory of the current directory The current directory A classpath /config package The classpath root
The list is ordered by precedence (properties defined in locations
higher in the list override those defined in lower locations).
In my case I put it in the directory where the jar
file stands.
From:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-application-property-files
answered Dec 20, 2018 at 1:28
ZhaoGangZhaoGang
4,29324 silver badges36 bronze badges
By default spring boot app start with embedded tomcat server start at default port 8080. spring provides you with following different customization you can choose one of them.
NOTE – you can use server.port=0 spring boot will find any unassigned http random port
for us.
1) application.properties
server.port=2020
2) application.yml
server:
port : 2020
3) Change the server port programatically
3.1) By implementing WebServerFactoryCustomizer interface — Spring 2.x
@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// customize the factory here
factory.setPort(2020);
}
}
3.2) By Implementing EmbeddedServletContainerCustomizer interface — Spring 1.x
@Component
public class CustomizationBean implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
// customize here
container.setPort(2020);
}
}
4) By using command line option
java -jar spring-boot-app.jar -Dserver.port=2020
answered Apr 26, 2019 at 14:09
Indeed, the easiest way is to set the server.port property.
If you are using STS as IDE, from version 3.6.7 you actually have Spring Properties Editor for opening the properties file.
This editor provides autocomplete for all Spring Boot properties. If you write port and hit CTRL + SPACE, server.port will be the first option.
answered Dec 15, 2015 at 9:11
1
By default, spring-web module provides an embedded tomcat server that is running under the port number 8080. If you need to change the port number of the application then go to application.properties
file and configure the port number by using server.port
property.
server.port= 9876
then your application is running under the port 9876.
answered May 14, 2020 at 9:46
Nafaz M N MNafaz M N M
1,4232 gold badges17 silver badges36 bronze badges
Hope this one help
application.properties=> server.port=8090 application.yml=> server port:8090
answered May 18, 2018 at 13:14
1
Using property server.port=8080 for instance like mentioned in other answers is definitely a way to go. Just wanted to mention that you could also expose an environment property:
SERVER_PORT=8080
Since spring boot is able to replace «.» for «_» and lower to UPPER case for environment variables in recent versions.
This is specially useful in containers where all you gotta do is define that environment variable without adding/editing application.properties
or passing system properties through command line (i.e -Dserver.port=$PORT
)
answered Jul 29, 2016 at 21:25
UlisesUlises
8,8452 gold badges29 silver badges27 bronze badges
1
You can add the port in below methods.
-
Run -> Configurations section
-
In
application.xml
addserver.port=XXXX
answered Feb 2, 2016 at 15:45
gkarthiksgkarthiks
4466 silver badges17 bronze badges
1
Just have a application.properties
in src/main/resources
of the project and give there
server.port=****
where ****
refers to the port number.
gawi
2,7934 gold badges32 silver badges44 bronze badges
answered Jul 2, 2017 at 7:07
1.1 Update via a properties file.
/src/main/resources/application.properties
server.port=8888
Update via a yaml file.
server:
port: 8888
EmbeddedServletContainerCustomizer
@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8888);
}
}
answered Aug 28, 2017 at 10:01
Providing the port number in application.properties file will resolve the issue
server.port = 8080
«port depends on your choice, where you want to host the application»
answered Oct 15, 2018 at 12:52
AshwiniAshwini
74110 silver badges5 bronze badges
You can set that in application.properties under /src/main/resources/
server.port = 8090
answered May 13, 2016 at 22:54
AbhijeetAbhijeet
5,4405 gold badges41 silver badges46 bronze badges
By Default Spring-web module provides an embedded tomcat server runs on port number 8080.
You can change it as follows —
A) If you are using gradle then use can set the property in your application.yml :
server:
port: 8042
B) If you are using maven then you can set the property in your application.properties :
server.port: 8042
C) When you have port in your own config file and want to set it during runtime.
By implementing WebServerFactoryCustomizer interface — Spring 2.x
@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// customize the factory here
factory.setPort(8042);
}
}
By Implementing EmbeddedServletContainerCustomizer interface — Spring 1.x
@Component
public class CustomizationBean implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
// customize here
container.setPort(8042);
}
}
answered May 16, 2021 at 18:39
Ishan GargIshan Garg
5414 silver badges12 bronze badges
1
Статья
При присоединении абсолютно нового COM устройства или USB устройства, Windows обнаруживает благодаря Plug-n-Play и присваивает ему номер COM порта в диапазоне от 1 до 255. Если же вы подключаете устройство еще раз, ему прикрепляется тот же, зарезервированный за ним ранее COM порт. Если же вы подключаете еще одно новое устройство, то ему назначается другой незанятый номер COM порта.
Некоторые программы (чаще старые), способны работать только на двухзначных номерах COM портов, и не работают с COM100 и более. Некоторые очень древние программы работают только портами с COM1-COM9. Как поступить, если устройство получило не нужный COM порт? Можно ли удалить номер зарезервированного COM порта?
Смена номера COM порта для приложения или устройства
В первую очередь стоит попробовать вручную переопределить номер COM порта для определенного COM-устройства. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить.
- Запустим диспетчер устройств (Device Manager) таким образом: set devmgr_show_nonpresent_devices=1
start devmgmt.msc - В меню консоли выберем View->Show Hidden Devices.
- Разверните ветку Ports (COM &LPT) и в списке найдите устройство, которому назначен нужный COM порт (бледная иконка означает, что данный COM порт назначен, но в настоящий момент это устройство не подключено). Щелкните по нему ПКМ и выберите Uninstall
- Освобожденный COM порт может быть назначен другому устройству. Найдите в этой же ветке свое устройство, откройте окно его свойств (Properties). Затем перейдите на вкладку PortSettings и нажмите кнопку Advanced. В выпадающем списке выберите неиспользуемый COM порт.
Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.
Сброс привязок COM портов через реестр
Информация об используемых COM портах хранится в ключе реестра CommDB в разделеHKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter
- Откройте редактор реестра (regedit) и перейдите в указанную ветку.
Как проверить чем занят com порт
Требования.
Статья применима для Windows 2000/XP/Vista/7.
Информация.
При установке некоторых программ иногда возникает проблема с доступностью порта. Т.е. вы устанавливаете программу, а она вам говорит: «Извините, но предпочитаемый порт номер занят!». И самое интересное программа не говорит чем или кем занят порт.
Как определить каким процессом (программой) занят порт.
1. В меню «Пуск» выберите пункт «Выполнить«;
2. В поле «Открыть» наберите команду cmd и нажмите кнопку «ОК»;
Откроется окно командной строки, примерно такого вида:
3. Наберите команду netstat -ano и нажмите кнопку «Ввод» (Enter) на клавиатуре;
Результатом выполнения данной команды, должен быть список всех активных подключений, с ip-адресами и номерами портов.
4. Теперь в колонке «Локальный адрес», находим нужный нам порт и записываем его идентификатор в колонке «PID»;
Например порт номер 80, его идентификатор 440.
5. Снова открываем меню «Пучк» и выбираем пункт «Выполнить«;
6. В поле «Открыть» вводим команду taskmgr и нажимаем кнопку «ОК»;
7. В окне «Диспетчер задач Windows» переходим на вкладку «Процессы«;
8. В главном меню открываем пункт «Вид» и выбираем пункт «Выбрать столбцы. «;
9. В окне «Выбор столбцов» находим пункт «Идентиф. процесса (PID)» и ставим рядом с ним галочку;
10. Нажимаем кнопку «ОК»;
11. Теперь в окне «Диспетчер задач Windows«, нажимаем на заголовок столбца «PID», для сортировки процессов по возрастанию;
12. Находим номер нашего процесса 440 и в столбце «Имя образа«, смотрим какой процесс занимает наш порт;
Каждый раз при подключении нового COM устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).
Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.
Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).
Смена номера COM порта для конкретного устройства
В первую очередь стоит попробовать вручную переопределить номер COM порта для определенного COM-устройства. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить.
Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.
Сброс привязок COM портов через реестр
Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter
- Откройте редактор реестра (regedit) и перейдите в указанную ветку.
Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)
Однако именно забитость портов является одной из первостепенных причин некорректной работы сети: зависаний, торможений, «лагов». Каждая из программ хоть и использует свой порт, но порой несколько программ пересекаются в одном из них, и случается своего рода «затык». Как обнаружить пресловутый «затык» – расскажем далее.
Самая распространённая проблема занятости порта встречается именно с портом номер 80 – одним из самых основных маршрутов у многих программ.
Итак, нам нужна наша любимая командная строка. Вызывается она через меню «Выполнить», которое, в свою очередь, вызывается комбинацией горячих клавиш Windows+R. В меню «Выполнить» вводим cmd – мы в командной строке.
Здесь нам необходима команда netstat -ano (прописываем именно так, с пробелом перед дефисом и без пробела без него!).
Мы увидим множество локальных адресов. все они имеют примерный вид xxx.xxx.x.xxx:PORT. Да, порт прописывается после двоеточия.
Выбираем конкретный порт, проводим пальцем до последнего столбца и узнаем ID процесса. Запоминаем число ID. На этом работа с командной строкой закончена.
Запускаем диспетчер задач (как его вызвать, знают все: Ctrl+Alt+Del или Ctrl+Shift+ESC).
Если вы используете систему Windows 8/8.1, то ID прописываются изначально во вкладке «Подробности». Если же Ваша OS – Windows 7 или ниже, то для начала идём в меню «Вид», выбираем пункт «Выбрать столбцы» и ставим галочку напротив PID.
Подтвердив изменения, мы увидим столбец с ID. Ищем число ID из командной строки, и тем самым легко узнаём, какой процесс, а следовательно – какая программа использует тот или иной порт. Итак, теперь Вы знаете, как проверить порты на предмет забитости, а это очень даже полезное умение в условиях большого количества программ, работающих в сети Интернет. Удачи!
Com порт занят другим приложением штрих м
Каждый раз при подключении нового COM устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).
Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.
Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).
Смена номера COM порта для конкретного устройства
В первую очередь стоит попробовать вручную переопределить номер COM порта для определенного COM-устройства. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить.
Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.
Сброс привязок COM портов через реестр
Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter
- Откройте редактор реестра (regedit) и перейдите в указанную ветку.
Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)
Нет связи с фискальником, аппарат не найден. И другие порой драматические сообщения вашей кассовой программы.
Итак, постараемся раскрыть наиболее часто встречающиеся проблемы (мой практический опыт) – разберем главные проблемы и способы их решения в случае если это возможно сделать собственными силами.
1) Просто включите на 5-7 секунд кассовый аппарат, и включите его заново.
2) Перегрузите кассовый компьютер и загрузите заново кассовую программу именно так как вы это делаете обычно.
3) Обычно фискальный аппарат просто отвалился от компьютера, т.е или его забыли включить (проверьте что бы горел соответствующий светодиод как правило зеленого цвета, красный обычно загорается при ошибке в работе ккм – бумага закончилась, датчик не отработал нужным образом, и тд)
При этом в подавляющем большинстве случаев даже в случае с красным светодиодом – т.е. в случае если аппарат висит в ошибке связь будет – и программа просто напишет в информационном сообщении что либо о конкретной ошибке – что не нравиться аппарату или что вы сделали не правильно – закончилась бумага, или ошибка такая.. да бывают тяжелые случае как например залили аппарат водой, или от перепада напряжения – скакнуло напряжение и погорела половины приборов в магазине в том числе и касса, в таких случаях понятное дело касса с красным светодиодом не найдется. Т.е кассовая программа напишет, нет связи ККТ ШТРИХ, АТОЛ, ПРИМ, но это из разрядов тяжелых случаев с которыми в любом случае самостоятельно не справиться.
4) Проверьте кабель соединяющий com-порт компьютера или юзб порт компьютера с соответствующем разъемом кассового аппарат, а при использовании переходника и надежность фиксации разъемов самого переходника USB-COM.
При использовании разъема USB – важно вставить соединительный провод именно в тот разъем в котором и был подключен аппарат. Так как фискальные аппараты работают все равно в эмуляции com-порта, и каждому гнезду USB присваиваться свой номер – который в конечном итоге фигурирует во всех настройках кассовой программы. Но об этом еще по говорим ниже…
Вообще подавляющее большинство вариантов такой ошибки решается именно таким способом – ПРОВЕРЯЕМ СМОТРИМ КАБЕЛИ – простой проверкой надежности контактов соединительного кабеля.
Однако что же делать если аппарат включен – горит зеленым, провода проверили, компьютер перегрузили, а связи по прежнему нет?
Здесь подход такой, как правило, в большинстве случаев на кассовом компьютере стоит установленным не только кассовая программа, но и заводской драйвер-утилита для настройки и проверки аппарата от производителя кассы.
Рассмотрим простой случай у нас кассовая программа работает под операционной системой Windows – не важно какой версии и/или поколения.
Проще всего выйти из программы – закрыть ее полностью (не гося – не закрывая смены если она отрыта конечно). Просто выходим (!Не сворачиваем, а выходим – закрываем – завершаем программу кассира).
Затем в зависимости от производителя кассы- (чаще всего из фискальников встречаются ШТРИХ и АТОЛ – в силу обратно же легкости их настройки и подключения к большинству существующих кассовых программ) заходим в меню Пуск –Все программы – АТОЛ технологии или Штрих затем в подпунктах находим «Драйвер ККМ –ФР любой версии – с любыми циферками»
Запускаем утилиту.
Затем в правой части программы с низу находим кнопочку «Свойства» нажимаем ее. Открывается под-окно, в нем ищем справа кнопочку «Поиск» – «Поиск оборудования». Нажимает ее.
Кассовые аппараты порт
Открывается третье подокно. В нем нажимаем кнопочку «Поиск» или «Начать поиск». Здесь мы видим все com-порты компьютера, в том числе и виртуальные. В случае если оборудование – фискальник найден – высвечивается номер ком-порта, скорость работы ком порта фискальника, и модель аппарата.
Запомнив эти данные мы закрываем наше крайнее окно и в преведущем устанавливаем соответствующие запомненные нами значения. Жмем кнопку «Проверки связи».
Если в «Строке состоянии:» или строке «Код ошибки:» в нижней части высветился номер и название кассового аппарата, то все сделано правильно, и в случае с 1С-кой достаточно часто этого достаточно. Так как данные настройки драйвера автоматически берутся многими 1с –ками.
В случае с другими кассовыми программами мы лишь выяснили, что аппарат находится компьютером, и проблема в кассовой программе. Иногда достаточно просто зайти под администраторам в программу и поменять на соответствующей настроечной вкладке – в соответствующем разделе настройки кассового оборудования – программы на наши найденные значения. После чего по логике вещей аппарат найдется. Но здесь возникаем вопрос, а почему поменялся косм-порт и скорость?
Здесь продолжим уже рассмотренные выше капризи юзб.. В случае с USB – это может объясняться тем что шнурок от кассы просто о вынули – или он сами вывалился из разъема и его воткнули по ошибки в соседний не заметив этого. НЕ смотря на то, что разъемы одинаковые, но в случае с кассами каждому их юзби разъемов присваивается виртуальный com-порт. И у каждого гнезда он свой. И если в случае с обычным принтером иногда виндовс прощает это, в случае с кассой такой номер не пройдет. Поэтому просто пометьте какое гнездо USB вы отвели под кассовый аппарат (к прикручивать ЮЗБ не возможности ).
В случае с родным com – портом, нумерация поменяться не могла, но комп-порт с данным номером может занять другое приложение. (существует два вида реализации программных продуктов – порт занимается лишь во время выполнения операции или он занимается конкретным приложением в момент его загрузки и не освобождается – становиться не доступным для других до момента завершения -закрытия данного приложения).
Иногда по невнимательности вы можете просто запустить дважды например 1-ку, при этом вторая с значительной долей вероятности может уже не найти фискальник, так как порт занят первым (в 1c – ке– вариантов реализации работы с компортом столько же сколько и программистов))).
Подробно с принсринами каждого шага о том как первоначально настроить кассу ФР для работы с компьютером (запуск, выбор портов, скорости, и тд) написано здесь:
В случае с другой скоростью аппарата: варианты скорее всего будут такими:
1) Аппарат забирали в ремонт, или просто перенастраивали – и не вернули его старые параметры обмена –т.е. скорость работы его интерфейса – com порта.
Т.е. любой фискальник может работать на следующих скоростях: 4800, 9600, 19200, 57000, 115000. Наиболее распространенные: 111500, и 9600, а так еже иногда 4800. В случае с использованием последнего – при пробитии кассового чека с значительной дополнительной информацией – длинным чеком с длинным полным наименованием товаров – может наблюдаться увеличение времени пробития чека в 2-3 раза в сравнении с использованием скорости ком-порта в 115 200 Бит. Т.е пробитие простого чего без дополнительной текстовой информации (в виде наименований товара, большого длинного клише – логотипа, просто рекламной информации) по скорости исполнения проводиться практически одинаково, так как сами суммы чека передаются при любой скорости почти мгновенно, а вот в случае если необходимо передать дополнительную информации в случае с 4800 наблюдается явное заметное снижение производительности – скорости работы аппарата. Хотя конечно не смертельное, и не всегда как уже писалось выше многими заметное.
Однако мы отвлеклись, описывая влияние скорости печати чеков от скорости обмена. Т.е. в фискальнике можно установить любую из указанных скоростей, но точно такую же скорость нужно устанавливать и в кассовой программе. В противном случае программа его не найдет.
2)Так же сброситься на 4800 скорость может по следующим причинам:
В случае продукцией Штрих – был сделан селф-тест – проверочный тест –т.е. аппарат переключили с зажатой кнопкой протяжки – аппарат прошел тест – распечатал техническую информацию и тестовый символы для проверки качества печати термоголовки, после переключения он вышел из данного состояния теста, но скорость его останется на 4800. В случае с продукцией Штрих М или (ПТК) – ФР из-за не совсем удачного расположения кнопки протяжки – данное явление периодически наблюдается в виде самопроизвольного перехода аппарата в данный режим за счет недооджима кнопки протяжки в следствии слишком малого места между корпусом и самой кнопкой.
3) Третий вариант более плачевен, аппарат обнулился, т.е. исчез заголовок- вместо названия вашей фирмы печатается например слово «Торговый объект», улетела дата на несколько лет назад (к году выпуска прошивки аппарата). В таком случае просто выключите аппарат и вызовите мастера, и лучше обойтись без попыток пробития или закрытия смены. А проверяется все просто снимаем х-отчет – документа который ни чего не делает, ни чего не двигает, а просто снимает оперативную сводку по кассе без каких либо изменений в содержании счетчиков оной.
Однако мы обратно отвлеклись..
4) слетели настройки в программы или в драйвере – очень редко, но все же не исключен и здесь вариант с вирусами на компьютере или самовольном обновлении например с операционной системой Window 8 (где для разрешения работы драйвера после стандартного обновления необходимо перегружаться по F8, и разрешать конкретному приложению работу.. безопасность мля..).
Вариант с вирусами которые до такой степени «съели систему» призрачен. Так как кроме данной проблемы обычно начинаются проблемы в работе кассовой программы и операционной системы в целом, а не только в проблемах с связью аппарата и компьютера.
Уф, устал, наверное пока хватит.. Вообще конечно сложно вот так запихнуть в одну статью не «..хнуемое» однако если будет время и желание подраскоем тему и дальше..
Каждый раз при подключении нового COM устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).
Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.
Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).
Смена номера COM порта для конкретного устройства
В первую очередь стоит попробовать вручную переопределить номер COM порта для определенного COM-устройства. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить.
Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.
Сброс привязок COM портов через реестр
Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter
- Откройте редактор реестра (regedit) и перейдите в указанную ветку.
Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)