Я создаю приложение с архитектурой клиент-сервер на java. Я пытаюсь достичь простой клиент-серверной архитектуры, подключенной через локальную сеть с помощью коммутатора Ethernet, на сервере есть серверный модуль приложения, а также база данных MySQL, клиенты выполняют свою обработку и отправляют результаты в базу данных сервера, база данных также используется для аутентификации.
Сервер будет единственной машиной в сети, которая будет подключена к WAN через любого интернет-провайдера, IP-адрес серверной машины не может быть гарантированный быть статичным, в этом состоянии как клиенты могут подключаться к базе данных сервера? Поскольку IP-адрес сервера изменчив.
Еще одно сомнение в том, что мне нужно аутентифицировать клиентов также на основе их IP-адресов (или это также может быть физический MAC-адрес, если его просто реализовать), у меня есть таблица в базе данных, которую администратор сервера может обновлять и хранить IP-адреса действительных клиентов, теперь при подключении через LAN, какие IP-адреса будут назначены машинам, которые будут храниться в базе данных и они будут статичными? Я искал это в Google, но не нашел подходящих ответов ...
Во-первых, вы не сказали, что это Linux, Windows, ... сервер?
Статический IP-адрес можно заменить службой dynDNS, но вам нужно будет перенаправить порт 3306 (порт MySQL по умолчанию) с вашего маршрутизатора на IP-адрес сервера MySQL, и IP-адрес ваших серверов в вашей локальной сети всегда должен быть одинаковым (например, 192.168.1.2) и вне пула DHCP, поэтому маршрутизатор не может назначить тот же IP-адрес другим компьютерам.
Аутентификация на основе MAC - ничто, потому что MAC-адрес можно изменить, и вы не сможете видеть MAC-адрес от клиентов за пределами вашей сети. имя пользователя / пароль аутентификации в паре с ограничениями IP-адреса на сервере mysql достаточно.