Порты используются при выполнении программы

Как я могу узнать, какие порты использует программа для своего выполнения?

Я использую сервер Ubuntu 14.04 и программу "SMcli". Но программа показывает при каждом выполнении "Сетевые ошибки были обнаружены при подключении к системе хранения". Но до того, как мы сменили место, все работало нормально.

Теперь мне нужно знать, какие порты использует эта программа. Затем я могу посмотреть, какие порты слушает целевой объект.

2 ответа

Решение

Попробуй использовать netstat -tunap или же netstat -tunlp до запуска программы и после запуска программы.

Если ваша программа nc (например), вы можете сделать:

sudo netstat -tulpn | grep "nc" | grep -Po "(?<=:)[^ ]+(?=.*:)"

или же

sudo netstat -tulpn | grep "nc" | tr -s ' ' | cut -d' ' -f4 | cut -d: -f2

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

sudo netstat -tulpn | grep "nc"

замещать nc с названием сервиса, который вы хотите найти.

Пример:

$ sudo netstat -tulpn | grep "nc" | tr -s ' ' | cut -d' ' -f4 | cut -d: -f2
4567
$ sudo netstat -tulpn | grep "nc" | grep -Po "(?<=:)[^ ]+(?=.*:)"
4567
Другие вопросы по тегам