Как прослушать новый порт сервера Ubuntu из командной строки?

Я хочу прослушать новый порт на сервере Ubuntu.

У меня есть root-доступ.

netstat -an | grep "LISTEN "

Возвращает:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:1270            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:29130         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::8080                 :::*                    LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN      

Я хочу запустить свой файл .js на порту 3000. Итак, я запустил команду:

nc -l 3000

Но потом нет выхода.

Я новичок в Ubuntu. Кто-нибудь может мне помочь с этим?

РЕДАКТИРОВАТЬ:

Я хочу прослушивать новый порт 3000 так же, как следующий порт:

    tcp6       0      0 :::8080                 :::*                    LISTEN     
2
задан 6 July 2017 в 14:15

2 ответа

Если Вы выполняете команду nc -l 3000 nc будет работать на переднем плане, и Вы не сможете сделать что-либо еще без остановки nc

таким образом, необходимо работать nc как фоновая задача:

nc -l 3000 &

0
ответ дан 2 December 2019 в 08:50

Сам сервер Ubuntu не будет прослушивать ни один порт. Службы приложений, установленные и запущенные на сервере, прослушивают порты. Например, по умолчанию:

  • sshd слушать по адресу 22,
  • apache2/nginx слушать по адресам 80 и 443 и т. д.

Если вы хотите получить имена из служб, которые прослушивают порты в вашей системе, используйте netstat с правами root через sudo следующим образом:

$ sudo netstat -pna | grep "LISTEN " | grep '\<tcp\>'    
tcp   0   0 0.0.0.0:6951      0.0.0.0:*   LISTEN   8976/aria2c         
tcp   0   0 127.0.0.1:3306    0.0.0.0:*   LISTEN   1589/mysqld         
tcp   0   0 127.0.0.1:6379    0.0.0.0:*   LISTEN   32285/redis-server  
tcp   0   0 127.0.0.1:11211   0.0.0.0:*   LISTEN   1279/memcached      
tcp   0   0 127.0.0.1:8142    0.0.0.0:*   LISTEN   1482/nodejs         
tcp   0   0 127.0.0.1:6800    0.0.0.0:*   LISTEN   8976/aria2c         
tcp   0   0 127.0.0.1:81      0.0.0.0:*   LISTEN   3286/docker-proxy   
tcp   0   0 127.0.0.53:53     0.0.0.0:*   LISTEN   1218/systemd-resolv 
tcp   0   0 127.0.0.1:4822    0.0.0.0:*   LISTEN   1445/guacd          
tcp   0   0 0.0.0.0:80        0.0.0.0:*   LISTEN   77768/apache2
tcp   0   0 0.0.0.0:22        0.0.0.0:*   LISTEN   1339/sshd: /usr/sbi 
tcp   0   0 0.0.0.0:25        0.0.0.0:*   LISTEN   2805/master
tcp   0   0 0.0.0.0:443       0.0.0.0:*   LISTEN   77768/apache2

примечание:

  • 127.0.0.1 означает loopback interface (localhost),
  • 0.0.0.0 означает все доступные интерфейсы (localhost, сетевые адаптеры и т.д.),
  • некоторые сервисы могут прослушивать определенные интерфейсы, т.е. 192.168.1.100 или это может быть какой-то адрес IPv6.

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


При использовании nc -l 3000 команда nc сама начнет прослушивать порт 3000. ИМО, эта опция предназначена для тестовых целей, т. е. вы настраиваете брандмауэр или около того. .

Скажем, в терминале, который вы запустили:

$ nc -l 3000

Затем в другом терминале вы можете проверить, прослушивает ли что-то порт 3000:

$ nc -vz 0.0.0.0 3000
Connection to 0.0.0.0 3000 port [tcp/*] succeeded!

И все.


В качестве заключения:

Вы должны разработать свою службу (программу, скрипт, команду) для прослушивания на желаемом порту 3000, и когда этот порт не используется какой-либо другой службой, когда вы запускаете свою службу, она начнет прослушивать в порт.


С другой стороны, если вам нужно что-то постоянно слушать на :::3000 для проведения тестов, самый простой способ, на мой взгляд, это создать модуль systemd. Для этого:

  • Создайте /etc/systemd/system/listen-3000.service:

    sudo nano /etc/systemd/system/listen-3000.service
    
  • Как содержимое /etc/systemd/system/listen-3000.service место:

    [Единица измерения]
    Description=Постоянное прослушивание в :::3000
    After=network-online.target
    
    [Услуга]
    Пользователь=корень
    ExecStart=/usr/bin/nc -l6 3000
    ExecStop=/usr/bin/killall -s KILL nc
    Перезапустить = всегда
    Рестартсек=1
    
    [Установить]
    WantedBy=многопользовательская.цель
    
  • Включите и запустите listen-3000.service:

    sudo systemctl daemon-reload
    sudo systemctl включить прослушивание-3000.service
    sudo systemctl начать прослушивание-3000.service
    sudo systemctl статус прослушивания-3000.услуга
    
  • Отключить и остановить listen-3000.service:

    sudo systemctl stop listen-3000.service
    sudo systemctl отключить прослушивание-3000.service
    
1
ответ дан 20 June 2020 в 06:10

Другие вопросы по тегам:

Похожие вопросы: