LINUX.ORG.RU

Raspbian: порт открывается только при наличии SSH соединения

 , ,


0

1

Началось все с того, что я не смог получить доступ к MPD серверу, который располагается на Raspberry Pi с установленным Raspbian, из Android-клиента, хотя еще сегодня утром все работало. На свое удивление, я обнаружил, что андроидный MPD клиент соединяется без проблем только если установлено SSH соединение с Raspberry Pi.
Попробовал на большом компе - та же самая ситуация. Пробовал перелопатить безупречно работающий до этого MPD конфиг, бесполезно. Пытался открыть нужный порт с помощью iptables:

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 6600 -j ACCEPT
Безрезультатно. От отчаяния вообще снес нафиг iptables. Не помогло. Пытался поиграть с /etc/hosts.allow:
ALL: 192.168.1.
Не помогло.
И наконец, дошел только до сути проблемы:
1. SSH соединение не установлено
2.
$ nmap 192.168.1.22 -p 6600
PORT     STATE  SERVICE
6600/tcp closed mshvlm
3. Устанавливаю SSH соединение
4.
$ nmap 192.168.1.22 -p 6600
PORT     STATE SERVICE
6600/tcp open  mshvlm
Что за хрень творится и как она может быть связана с SSH??? Я уже голову сломал. Как может быть закрытым порт, когда я даже iptables снес? И как может порт автоматически открываться, когда устанавливается SSH соединение?

★★★★★

Твою плату захавали. /0

mandala ★★★★★
()

Как может быть закрытым порт, когда я даже iptables снес?

дык, filtered /= closed

по сабжу можно попробовать посмотреть (в detached tmux сессии) слушает ли кто порт без ssh

anonymous
()

Проблема, кажется, решена. Все дело в systemd, с помощью которого я запускал mpd от юзера. Я не понимаю, почему, но он стал открывать порт, когда я заходил по SSH и закрывать его, когда я делал logout. Раньше он так себя не вел. Поэтому я сделал системный сервис systemd, который тем не менее запускает mpd от юзера. Вот он (может кому-нибудь пригодится и он будет страдать, пока не нагуглит эту тему):

[Unit]
Description=Music Player Daemon
Documentation=man:mpd(1) man:mpd.conf(5)
After=network.target sound.target

[Service]
User=rinaldus
Type=notify
ExecStart=/usr/bin/mpd --no-daemon

[Install]
WantedBy=default.target
Also=mpd.socket
Этот файл под названием mpd.service должен находиться в /etc/systemd/system. И поменяйте юзера после копипасты. После чего не забудьте сделать systemctl daemon-reload и стартануть сервис. Он возьмет конфиги из обычного для юзера места ~/.config/mpd и все должно запуститься нормально.

Rinaldus ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.