mhd |
|
Темы:
28
Сообщения:
99
Участник с: 23 октября 2012
|
Приветствую всех. Это вопрос новичка в сетях. Вопросу послужила следующая ситуация. Есть серверная прога на хосте HostA, которая открывает порт (может быть любым, например 13000) по адресу 127.0.0.1, к ней обращается клиент либо на этом же хосте либо с другого хоста HostB. Хостов всего два и они подключены к роутеру. В /etc/hosts хоста B прописан адрес: когда клиент на хосте 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? Но мне кажется это вопрос в правильной настройке сети. |
akorop |
|
Темы:
111
Сообщения:
1755
Участник с: 29 февраля 2012
|
Неплохо бы указать протокол (вероятно, TCP или UDP), там есть особенности.mhdЯ не специалист по сетям, но IMHO окрывать входной порт на заведомо локальном 127.0.0.1 - это искать себе приключений. Нормальная серверная программа, не помешанная на безопасности, открывает порт на адресе 0.0.0.0, то есть допускает приём запроса с любого адреса. По крйней мере, так делается для UDP. Перенаправлять с 192.168.1.100 на 127.0.0.1, наверно, возможно, но это сильно напоминает удаление миндалин через задний проход. А вообще, странный вопрос. Если это чужая программа, то к ней должна быть документация, где сетевые настройки расписаны, а если это Вы осваиваете сетевое программирование, то лучше бы начать с изучения готовых примеров, где опять таки всё расписано. |
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
Все что нужно для соединения двух компов в сеть через роутер или без (клиент-сервер) - это NFS. |
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
если это локальная сеть то просто запусти серверную прогу по адресу этого самого хоста(HostA) 192.168.1.100, уверен где-то в настройках этой проги можно сменить локальный адрес 127.0.0.1 на адрес в локальной сети |
mhd |
|
Темы:
28
Сообщения:
99
Участник с: 23 октября 2012
|
akoropВсе верно - осваиваю сетевое программирование и начал изучение с готового примера из книги Брюса Моли. В примере получается адрес хоста по его имени. Логично что этот адрес - 127.0.0.1 из /etc/hosts Я уже проверил - если порт открыть по 0.0.0.0 (как делает ssh) то к моему серверу с другого хоста можно подключиться. Это подключение идет по 192.168.1.100 (как показывает tcpdump) Но меня поставило в тупик, что в книге показано как в терминале клиент на другом хосте подключился к серверу. Поэтому я подумал, что у автора правильно настроена сеть и поэтому его пример работает, даже когда берется адрес хоста по имени. Поэтому и возник вопрос - это задача проги по надлежащему адресу открыть порт или это задача настройки сети? Интересует - какой наиболее правильный подход. В сетях и в сетевом программировании я новичок. akoropЯ не знаю какой - в сервере задаётся протокол по умолчанию. |
vinc |
|
Темы:
12
Сообщения:
180
Участник с: 13 июня 2015
|
Если вы хотите, чтобы сервер слушал пакеты с любого интерфейса, то запускайте его на 0.0.0.0 адресе. Ничего перенаправлять не нужно. |
ghost |
|
Темы:
26
Сообщения:
632
Участник с: 07 мая 2013
|
vincну или на интерфейс смотрящий в сеть: 192.100.1.100. В этом случае сервер будет доступен и с хоста А (по адресу 192.168.1.100) и со всей подсети (при стандартной маске: 255.255.255.0 доступ появится у 192.168.1.ХХХ хостов). |
mhd |
|
Темы:
28
Сообщения:
99
Участник с: 23 октября 2012
|
Дополнительный вопрос по теме. В /etc/hosts пишутся адреса хостов, но роутер их назначает динамически, поэтому записи в этом файле могут быть недостоверными. Что нужно делать в самом простом случае, чтобы хосты гарантированно могли подключаться друг к другу по имени? Насколько я понял статический IP - специфический случай. Сети в основном строятся при помощи dhcp. |
mhd |
|
Темы:
28
Сообщения:
99
Участник с: 23 октября 2012
|
Для решения этого вопроса я добавил статический профайл в /etc/dhcpcd.conf и запустил сервис dhcpcd Но теперь у меня на eth0 два адреса: адрес 192.168.1.100 , который я назначил в /etc/dhcpcd.conf и адрес, который назначает роутер. Насколько я правильно сделал? Мне кажется адрес от роутера теперь лишний. Это нормально когда несколько адресов назначено на интерфейсе? С другой стороны, наверно, соединение с роутером идет через его адрес а не через мой? |
Dimushonok |
|
Темы:
2
Сообщения:
56
Участник с: 26 июля 2018
|
Простите что влез, не стал создавать отдельно тему, раз похожее есть. Я совсем не шарю в сетях и перед началом мучений решил удостовериться в правильности своих намерений. Так как роутер имеет адрес 192.168.0.1 На компе 1 указать 192.168.0.2 ? На компе 2 указать 192.168.0.3 ? и маску обоим компам 255.255.255.0 ? Я правильно понимаю что для локалки меж двух компов на линуксах мне нужно будет установить пакеты nfs, расшарить папки и раздать права? Возможно ли на базовой установке арча+plasma-desktop обойтись без дополнительного софта??? |