alister
и rss67
в этой статье представляют самый стабильный, совместимый и самый легкий путь. Я никогда замечаемый лучший путь, чем это прежде.
RELPATH=./../
cd $RELPATH
ABSPATH=`pwd`
Если Вы хотите вернуться к исходному местоположению,
ORGPATH=`pwd`
RELPATH=./../
cd $RELPATH
ABSPATH=`pwd`
cd $ORGPATH
или
RELPATH=./../
cd $RELPATH
ABSPATH=`pwd`
cd -
Я желаю, чтобы это помогло. Это было самым большим решением для меня.
Для TCP (хотя тот же подход работал бы на SCTP1 или любой транспортный протокол с установлением соединения), то же что касается поиска слушания:
lsof -nPi tcp:the-port
Сообщат процессы, которые имеют сокет TCP, открытый на том порте. Если Вы знаете исходный порт (Ваше серверное приложение может знать об этом и зарегистрировать его), можно использовать это вместо этого для точного определения клиента жулика.
Для UDP или Неструктурированных сокетов, это было бы более хитро, хотя я предполагаю, что это - куда что-то как systemtap или dtrace может прибыть удобное. Возможно auditd также.
1, Хотя SCTP поддерживают (только на Linux) был добавлен к lsof
в версии 4.86 Вы не можете использовать -i
попросить SCTP снабжает сокетом явно. Здесь может использовать lsof -nP | grep -w 'SCTP.*:the-port'
как эвристика вместо этого.
В зависимости от типа соединения это устанавливает для отправки данных, один из этих подходов получит Вас где-нибудь.
Использовать tcpdump port 1234
получать данные, отправляемые в этот порт. Можно использовать программу как Wireshark для анализа его на другой машине (полученный в файл с помощью -w
опция). С другой стороны, используйте Wireshark непосредственно.
В случае, если это устанавливает и сохраняет открытым tcp/udp соединение, Вы могли использовать netstat
найти удаленный IP соединения.
Список открытые сокеты процесса как в ответе, предоставленном @StephaneChazelas.
Можно использовать sockstat
управляйте для нахождения процесса, который инициировал соединение с сервисом на локальный хост.
DESCRIPTION
The sockstat command lists open Internet or UNIX domain sockets.
Просто соответствуйте всем исходным соединениям со своим местом назначения. Это хорошо работает для TCP/UDP/UNIXsockets.
На Солярисе, работая pfiles на всех процессах должен показать, который имеют процессы, какие соединения открываются. Будет требоваться некоторый осторожный filering, вероятно, с помощью-A ggrep,-B опции...
На Linux, netstat -anp --inet
будет работать, даже без установленного lsof. (отбросьте --inet
получить сокеты домена Unix также)