Как изменить правило прослушивания с помощью netcat? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть сервер, у которого есть такое правило, когда я проверяю netstat -tulpn:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -

Это было хорошо, так как используемой нами базе данных mysql необходим только локальный доступ,но теперь я хочу удаленное подключение к нему тоже.Мне нужно, чтобы мой netstat -tulpn читался так:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      -

Как мне обновить это?Я просматривал nc, но все, кажется, говорит только о настройке прослушивания в первый раз.Всякий раз, когда я пытаюсь назначить новое правило, я получаю сообщение, подобное этому:

(base) ct@do-not-touch:/$ sudo nc -l 0.0.0.0 3306   
nc: Address already in use

Как обновить правило 127.0.0.1:3306 для 0.0.0.0:3306?Я здесь как-то совершенно не в себе?

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Хорошо, так что если вы столкнетесь с этим в будущем, вы должны убить процесс, использующий любой порт, но сначала вы должны знать этот порт.

sudo lsof -t -i:3306

Затем kill любой идентификатор.

0 голосов
/ 28 июня 2019

Вы не можете иметь два процесса, прослушивающих один и тот же IP-адрес и порт. Поскольку 0.0.0.0 означает прослушивание всех IP-адресов, вы не можете привязать его, если к этому порту привязан какой-либо IP-адрес. Остановите прослушивание существующего процесса на 127.0.0.1:3306, и тогда вы сможете запустить одно прослушивание на 0.0.0.0:3306.

.

*: Технически, флаг с именем SO_REUSEPORT существует, и разветвление после привязки позволяет вам сделать это, но ни один из них не полезен в вашей ситуации.

...