Общий вопрос по объединению 2 компьютеров в сеть

Приветствую всех. Это вопрос новичка в сетях.
Вопросу послужила следующая ситуация. Есть серверная прога на хосте HostA, которая открывает порт (может быть любым, например 13000) по адресу 127.0.0.1, к ней обращается клиент либо на этом же хосте либо с другого хоста HostB. Хостов всего два и они подключены к роутеру. В /etc/hosts хоста B прописан адрес:
192.168.1.100 HostA
когда клиент на хосте HostB пытается соединиться по адресу 192.168.1.100 и порту 13000 то получает отказ т.к. порт 13000 открыт по адресу 127.0.0.1
Вопрос как отобразить адрес 192.168.1.100 на 127.0.0.1 на хосте HostA чтобы перенаправлять запросы по адресу 192.168.1.100 на порты на 127.0.0.1
Т.е. как построить простую работоспособную сеть из двух хостов чтобы локальные порты соответствовали адресам IP из роутера?
Я читал про iptables, route, DNS server на основе systemd-resolved, но запутался.
Может это проблема серверной проги и она должна открывать порт по адресам 127.0.0.1 и 192.168.1.100? Но мне кажется это вопрос в правильной настройке сети.
Неплохо бы указать протокол (вероятно, TCP или UDP), там есть особенности.
mhd
перенаправлять запросы по адресу 192.168.1.100 на порты на 127.0.0.1
Я не специалист по сетям, но IMHO окрывать входной порт на заведомо локальном 127.0.0.1 - это искать себе приключений. Нормальная серверная программа, не помешанная на безопасности, открывает порт на адресе 0.0.0.0, то есть допускает приём запроса с любого адреса. По крйней мере, так делается для UDP.
Перенаправлять с 192.168.1.100 на 127.0.0.1, наверно, возможно, но это сильно напоминает удаление миндалин через задний проход.
А вообще, странный вопрос. Если это чужая программа, то к ней должна быть документация, где сетевые настройки расписаны, а если это Вы осваиваете сетевое программирование, то лучше бы начать с изучения готовых примеров, где опять таки всё расписано.
Все что нужно для соединения двух компов в сеть через роутер или без (клиент-сервер) - это NFS.
если это локальная сеть то просто запусти серверную прогу по адресу этого самого хоста(HostA) 192.168.1.100, уверен где-то в настройках этой проги можно сменить локальный адрес 127.0.0.1 на адрес в локальной сети
akorop
если это Вы осваиваете сетевое программирование, то лучше бы начать с изучения готовых примеров
Все верно - осваиваю сетевое программирование и начал изучение с готового примера из книги Брюса Моли. В примере получается адрес хоста по его имени. Логично что этот адрес - 127.0.0.1 из /etc/hosts Я уже проверил - если порт открыть по 0.0.0.0 (как делает ssh) то к моему серверу с другого хоста можно подключиться. Это подключение идет по 192.168.1.100 (как показывает tcpdump) Но меня поставило в тупик, что в книге показано как в терминале клиент на другом хосте подключился к серверу. Поэтому я подумал, что у автора правильно настроена сеть и поэтому его пример работает, даже когда берется адрес хоста по имени. Поэтому и возник вопрос - это задача проги по надлежащему адресу открыть порт или это задача настройки сети? Интересует - какой наиболее правильный подход. В сетях и в сетевом программировании я новичок.
akorop
Неплохо бы указать протокол (вероятно, TCP или UDP), там есть особенности.
Я не знаю какой - в сервере задаётся протокол по умолчанию.
Если вы хотите, чтобы сервер слушал пакеты с любого интерфейса, то запускайте его на 0.0.0.0 адресе. Ничего перенаправлять не нужно.
vinc
Если вы хотите, чтобы сервер слушал пакеты с любого интерфейса, то запускайте его на 0.0.0.0 адресе. Ничего перенаправлять не нужно.
ну или на интерфейс смотрящий в сеть: 192.100.1.100. В этом случае сервер будет доступен и с хоста А (по адресу 192.168.1.100) и со всей подсети (при стандартной маске: 255.255.255.0 доступ появится у 192.168.1.ХХХ хостов).
Дополнительный вопрос по теме. В /etc/hosts пишутся адреса хостов, но роутер их назначает динамически, поэтому записи в этом файле могут быть недостоверными. Что нужно делать в самом простом случае, чтобы хосты гарантированно могли подключаться друг к другу по имени? Насколько я понял статический IP - специфический случай. Сети в основном строятся при помощи dhcp.
Для решения этого вопроса я добавил статический профайл в /etc/dhcpcd.conf и запустил сервис dhcpcd Но теперь у меня на eth0 два адреса: адрес 192.168.1.100 , который я назначил в /etc/dhcpcd.conf и адрес, который назначает роутер. Насколько я правильно сделал? Мне кажется адрес от роутера теперь лишний. Это нормально когда несколько адресов назначено на интерфейсе? С другой стороны, наверно, соединение с роутером идет через его адрес а не через мой?
Простите что влез, не стал создавать отдельно тему, раз похожее есть.
Я совсем не шарю в сетях и перед началом мучений решил удостовериться в правильности своих намерений.

Так как роутер имеет адрес 192.168.0.1
На компе 1 указать 192.168.0.2 ?
На компе 2 указать 192.168.0.3 ?
и маску обоим компам 255.255.255.0 ?

Я правильно понимаю что для локалки меж двух компов на линуксах мне нужно будет установить пакеты nfs, расшарить папки и раздать права?
Возможно ли на базовой установке арча+plasma-desktop обойтись без дополнительного софта???
 
Зарегистрироваться или войдите чтобы оставить сообщение.