Как узнать, какие порты использует программа при его выполнении?
Я использую сервер Ubuntu 14.04 и программу «SMcli». Но программа показывает при каждом выполнении «Сетевые ошибки были обнаружены при подключении к системе хранения». Но прежде чем мы изменили местоположение, все было нормально.
Теперь мне нужно знать, какие порты использует эта программа. Затем я могу посмотреть, какие порты прослушивает цель.
Если ваша программа 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